是否可以跨数据库中的每个模式创建表? 特别是在Oracle中。
我不想为所有现有模式运行完全相同的查询。
我一直在使用的解决方案是,
使用以下查询获取所有模式名称
select distinct owner FROM all_tables;
获取结果并使用正则表达式追加/添加表创建查询。
^ - create table
$ - .tablename \( column1 varchar2(10)\);
在oracle工作表中运行所有生成的查询。
答案 0 :(得分:0)
您可以使用一些 PL / SQL 和立即执行来执行此操作。 例如,如果以SYS用户身份连接并执行以下脚本,则可以在所有模式中创建表:
begin
for cUsers in (select * from dba_users where account_status ='OPEN')
loop
execute immediate 'create table '||cUsers.username||'.myTable ( id number )';
end loop;
end;