我是PL / SQL的新手,我正在尝试了解如何为此问题编写代码。
我需要使用130个不同的表空间在130个不同的模式中创建130个相同的表。我可以随时运行代码,然后对下一个模式进行全局搜索/替换,运行代码,然后重复。
我想要做的是用
写一个匿名块declare n number(3);
Begin
for n in 1..130
Loop
(run my statements)
End Loop;
End;
/
目前我使用的语句是一个直接的SQL:
CREATE TABLE xyz_101.... Tablespace xyz_101
我在想我应该创建变量来保存所有Create Table,Alter Table,Create Index,Create Synonym语法,然后立即执行这些变量。我不完全确定如何做到这一点,因为我需要在每次执行时传递“n”。
有更好的方法吗?我应该编写“创建表”,“创建索引”,“创建同义词”语句作为游标,然后执行游标吗?
我确信其他人已经解决了这个问题,并感谢任何指导或见解。 谢谢!
答案 0 :(得分:0)
使用EXECUTE IMMEDIATE。
for n in 1 .. 130 loop
execute immediate 'create table t'||n||' ( dummy char(1) )';
end loop;