一次创建所有架构的表

时间:2017-09-22 00:01:30

标签: database oracle schema

是否可以跨数据库中的每个模式创建表? 特别是在Oracle中。

我不想为所有现有模式运行完全相同的查询。

我一直在使用的解决方案是,

使用以下查询获取所有模式名称

select distinct owner FROM all_tables;

获取结果并使用正则表达式追加/添加表创建查询。

^ - create table
$ - .tablename \( column1 varchar2(10)\);

在oracle工作表中运行所有生成的查询。

1 个答案:

答案 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;