PL/SQL 使用变量调用游标
PL/SQL calling a cursor with a variable
我有 9 个不同的游标,带有不同的 sql 语句。
但是循环游标总是相同的。有没有可能不为循环写 9 个游标?
我的想法是
一个用于增加存储在变量中的游标名称的for循环
和游标 for 循环,变量 insteat 为游标名称。
但是没用
那是我的循环光标:
FOR rec IN abgl2_cur LOOP
utl_file.putf(vFileHandle,
'<s3>\n<%s> %s</%s>\n<%s>%s',
c_grem,rec.gremium,c_grem,c_name,rec.name);
utl_file.putf(vFileHandle,
'</%s><%s>%s</%s>\n</s3>\n',
c_name,c_id,rec.id,c_id);
utl_file.fflush(vFileHandle);
END LOOP;
您需要将循环部分包装到一个 procedure/function 中,其中的参数将指向需要 运行 的光标。
然后只需使用不同的参数调用该过程 9 次。
如果您需要更多细节,您应该在此处添加一些代码。
我有 9 个不同的游标,带有不同的 sql 语句。
但是循环游标总是相同的。有没有可能不为循环写 9 个游标?
我的想法是
一个用于增加存储在变量中的游标名称的for循环
和游标 for 循环,变量 insteat 为游标名称。
但是没用
那是我的循环光标:
FOR rec IN abgl2_cur LOOP
utl_file.putf(vFileHandle,
'<s3>\n<%s> %s</%s>\n<%s>%s',
c_grem,rec.gremium,c_grem,c_name,rec.name);
utl_file.putf(vFileHandle,
'</%s><%s>%s</%s>\n</s3>\n',
c_name,c_id,rec.id,c_id);
utl_file.fflush(vFileHandle);
END LOOP;
您需要将循环部分包装到一个 procedure/function 中,其中的参数将指向需要 运行 的光标。 然后只需使用不同的参数调用该过程 9 次。
如果您需要更多细节,您应该在此处添加一些代码。