Oracle sql拼接问题

2024年11月22日 07:27
有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;