在一个存储过程里面,我想先进行一个判断之后,根据判断的信息决定是否创建一个表,应该怎么执行呢?比如:
Begin
Select count(*) into n from t1 where name = 'dd';
if n > 0 then
create table v_BackTableName as select * from table_name where rownum < 2;
delete from v_BackTableName;
end if;
End;但是上面会报错,说什么:
PROCEDURE LZDP1104.PRO_HX_BACKTRACK_TO_TABLE 编译错误错误:PLS-00103: 出现符号 "CREATE"在需要下列之一时:
( begin case declare
else elsif end exit for goto if loop mod null pragma raise
return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
continue close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe purge
行:69
文本:create table v_BackTableName as select * from table_name where rownum < 2;
Begin
Select count(*) into n from t1 where name = 'dd';
if n > 0 then
create table v_BackTableName as select * from table_name where rownum < 2;
delete from v_BackTableName;
end if;
End;但是上面会报错,说什么:
PROCEDURE LZDP1104.PRO_HX_BACKTRACK_TO_TABLE 编译错误错误:PLS-00103: 出现符号 "CREATE"在需要下列之一时:
( begin case declare
else elsif end exit for goto if loop mod null pragma raise
return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
continue close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe purge
行:69
文本:create table v_BackTableName as select * from table_name where rownum < 2;
解决方案 »
- 如何从ORACE 11G RAC中彻底清除DISKG ROUP信息
- 急,咨询一个查询语句
- 提问:在同一个表中怎么批量复制数据?
- 请教一个同步table记录的问题(急)~~~~~~~
- 关于Sequence的问题
- {开了三贴了}求一sql语句.@@@@@@@@@@。。。。高人进呀!!!
- 急问,我把一台机子的Oracle客户端81升到92客户端,升级会不会出现问题?
- 触发器问题:我如何在主表的新增触发器时,往从表中加入记录,并且根据加入从表记录的情况更改主表的标记位?
- 求助各位高手~!oracle8.0.5for NT安装问题
- sql 题送分 请进来
- oracle的job中的各列分别表示什么意思?
- 关于数据连接的问题。
Begin
Select count(*) into n from t1 where name = 'dd';
if n > 0 then
execute immediate 'create table v_BackTableName as
select * from table_name where rownum < 2';
execute immediate 'delete from v_BackTableName';
end if;
End;
--如果你只有要表结构不要数据的话可以
execute immediate 'create table v_BackTableName as
select * from table_name where rownum < 2 and 1=2';