我正在尝试通过数据库链接调用存储过程。 代码大致如下:
当我在包所属的相同数据库实例和架构中运行时,我能够成功运行它。然而,当我在数据库链接上运行它时(需要修改存储过程名称等),我会收到一个Oracle错误:ORA-24338:语句句柄未执行。
在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;
当我在包所属的相同数据库实例和架构中运行时,我能够成功运行它。然而,当我在数据库链接上运行它时(需要修改存储过程名称等),我会收到一个Oracle错误:ORA-24338:语句句柄未执行。
在DBlink上修改后的代码如下:
declare
symbol_cursor package_name.record_cursor@db_link_name;
symbol_record package_name.record_name@db_link_name;
begin
symbol_cursor := package_name.function_name@db_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;