alter table tyjh001_1 add 'DAY'||to_char(number1) float(126);
=>
execute immediate 'alter table tyjh001_1 add day'||to_char(number1)||' float(126)';
=>
execute immediate 'alter table tyjh001_1 add day'||to_char(number1)||' float(126)';
解决方案 »
- oracle如何查对范围进行多条查询
- SQL 里的 UNICODE字符 N
- 求写一基础函数
- 什么是ORACLE的数据库实例?
- 我想学ORACLE,但是......!!!!
- 请教:用PL/SQL Develop工具从Excel中导入数据记录到Oracle9i下出错(ORA-00928)
- 立刻给分:请问Oracle9i的表最多可以有多少列?
- 请问在Linux下访问oracle9i,oci和pro*c哪个更好?
- 表空间是什么概念?创建数据库时如何规划表空间?
- 诡异的 Oracle 远程连接,求大神帮忙,同一样的连接代码,Form程序通过,web程序报错,
- 如何在硬盘上安装oracle9.2.04 for linux
- 用命令符格式 导数据
改为以下:
v_syntax := ‘alter table tyjh001_1 add DAY'|| to_char(number1) || ’ float(126)‘;
EXECUTE IMMEDIATE v_syntax ;
呵呵.zealot_zk(风中追风) 的说法全面:
在存储过程中不能直接执行ddl以及dcl语句,
需要使用execute immediate或者使用存储过程来调用
i integer:=0;
number1 integer:=39;
strsQL varchar(2000);
begin
for i in 33..200 loop
strsQL := alter table tyjh001_1 add 'DAY'||to_char(number1) float(126);
execute immediate strsQL;
number1:=number1+1;
end loop;
end;--必须把这些SQL语句拼好SQL,然后执行它。
--不需要commit,你试试drop table temp_a表时,用commit的吗,
--因为drop,alter,create 都是ddl,在这里必须用execute immediate来执行