由于您必须使用大量表来执行此操作,因此我会编写一个 pl/sql 过程,围绕以下内容构建:
声明 v_sql varchar2(1024);
begin
for x in (select owner, table_name from dba_tables where .....)
v_sql := 'created table '||
table_name ||
'@mssql a select * from '||
x.owner || '.' || x.table_name || ';';
exec immediate v_sql;
end loop;
end;
/
或者,如果您想在启动前查看它,请使用 sql 编写 sql. 在 sqlplus 中:
set echo off feedback off verify off trimsp on pages 0
spool doit.sql
select 'create table '||
table_name ||
'@mssql as select * from '||
owner || '.' || table_name || ';'
from dba_tables
where .....
;
spool off
然后在运行前检查假脱机 sql 文件是否有任何问题。
上面的所有代码都在我脑海中。可能存在轻微的语法问题。