3,491
社区成员
发帖
与我相关
我的任务
分享
CREATE OR REPLACE PACKAGE PKG_temp is
TYPE T_CURSOR IS REF CURSOR;
procedure pro_get_all(CUR_OUT OUT T_CURSOR);
END PKG_temp;
CREATE OR REPLACE PACKAGE BODY PKG_temp
is
procedure pro_get_all(CUR_OUT OUT T_CURSOR) is
v_col_list varchar2(500):='';
v_tab_str varchar2(500):='';
begin
FOR tb IN (SELECT table_name FROM user_tables) LOOP
v_tab_str:=tb.table_name||','||v_tab_str;
v_col_list:='';
FOR col IN (select column_name from user_tab_cols where table_name =tb.table_name ) LOOP
v_col_list:=col.column_name||','||v_col_list;
END LOOP;
/*dbms_output.put_line(v_col_list);*/
execute immediate 'insert into '||tb.table_name||'@dblink_sjl select * from '|| tb.table_name;
commit;
open CUR_OUT for 'select 1 from dual';
END LOOP;
end;
END PKG_temp;
好吧,大致代码我是这么写的。。。结贴送分。。。