Oracle sql拼接问题

2024-11-22 07:27:17
推荐回答(2个)
回答1:

ddl 不能直接在存储过程中执行.

用execute immediate 你拼出的语句

回答2:

不是拼接不对,在无命名块或存储过程中,不能直接执行ddl语句.下面请参考!
DECLARE
i NUMBER;
file_name varchar2(100);
sql_str varchar2(500);
BEGIN
i:= 1;
FOR i IN REVERSE 1..5 LOOP
file_name = '/u01/oradata/tb_Space1' || i || '.dbf';
sql_str = 'CREATE bigfile tablespace tb_Space1' || i|| 'DATAFILE '||
'''' || file_name || '''' || ' size 50m autoextend on extent management local; ';
EXECUTE IMMEDIATE sql_str;
END LOOP;
END;