DDL语句必须用动态SQLdeclare
i integer;
str varchar2(100);
begin
select count(*) into i from user_objects WHERE object_name='ADSLHMB_DKH_INDEX';
if i > 0 then
str := 'drop index ADSLHMB_DKH_INDEX';
execute immediate str;
end if;
end;
/
i integer;
str varchar2(100);
begin
select count(*) into i from user_objects WHERE object_name='ADSLHMB_DKH_INDEX';
if i > 0 then
str := 'drop index ADSLHMB_DKH_INDEX';
execute immediate str;
end if;
end;
/
解决方案 »
- 求教如何从一个用户下一条记录按主键更新另一个用户一条记录的存储过程?
- 如何在oracle数据库表里创建触发器?
- 老问题,oracle中处理blob字段,新关注!
- 优化SQL语句
- PLS-00201: 必须说明标识
- 用Oracle10g带的instant client连接Oracle,无需安装oracle客户端
- oracle数据库备份恢复问题
- 紧急求救:对一张表中某些数据无法delete,且确认不是表锁定,行锁定,其他表都可以???
- 求不用with来改写下面的sql
- linux下安装biee出现先决条件检查错误问题 如何解决?
- 请问Unix下的oracle7中的form、Menu和proc是否能移植到AIX5L oracle9i下?
- 如何查询某条记录的加入时间?
Create Table tbLsdjgda
(
f_Bmbm varchar2(12) Not Null, --部门编码
f_Spbm varchar2(15) Not Null, --商品编码
f_Zhjj float default '' '' Not Null --最后进价
,
Constraint pLsdjgda Primary Key(f_Bmbm,f_Spbm)
)');
DBMS_UTILITY.EXEC_DDL_STATEMENT('Create Index Ind_Lsdjgda_Spbm On tbLsdjgda(f_Spbm)');DBMS_UTILITY.EXEC_DDL_STATEMENT 是ORACLE 的一个公共包,直接调用接可以了。
根据sasacat(傻傻猫) 的方法我解决了。