データベースリンクを介してストアドプロシージャを呼び出そうとしています。コードは次のようになります。dblinkでストアドプロシージャを呼び出す
declare
symbol_cursor package_name.record_cursor;
symbol_record package_name.record_name;
begin
symbol_cursor := package_name.function_name('argument');
loop
fetch symbol_cursor into symbol_record;
exit when symbol_cursor%notfound;
-- Do something with each record here, e.g.:
dbms_output.put_line(symbol_record.field_a);
end loop;
CLOSE symbol_cursor;
これを同じDBインスタンスとschema_nameから実行すると、うまく実行できます。しかし、これをデータベース・リンク(ストアド・プロシージャ名などの変更が必要です)で実行すると、Oracleエラーが発生します。ORA-24338:文ハンドルは実行されません。私はREFカーソル・タイプであることを覚えてpackage_name.record_cursorご質問の他から
declare
symbol_cursor [email protected]_link_name;
symbol_record [email protected]_link_name;
begin
symbol_cursor := [email protected]_link_name('argument');
loop
fetch symbol_cursor into symbol_record;
exit when symbol_cursor%notfound;
-- Do something with each record here, e.g.:
dbms_output.put_line(symbol_record.field_a);
end loop;
CLOSE symbol_cursor;
重複したhttp://stackoverflow.com/questions/1119306/execute-immediate-over-databse-link – skaffman
私はこれがその質問の重複であることに同意しません。これはダイナミック*コードの実行に関するものですdblink。 –