-------------------------------------------------------------------CREATE OR REPLACE FUNCTION DropST (st_name IN CHAR, st_type IN CHAR) RETURN NUMBER IS
PRAGMA autonomous_transaction;
chk_var NUMBER;
BEGINIF st_type = 'T' THEN SELECT COUNT(*) INTO chk_var FROM user_tab WHERE t_name = st_name;
IF chk_var > 0 THEN
EXECUTE IMMEDIATE 'drop tab '||st_name;
RETURN 1;
END IF;ELSIF st_type = 'S' THEN SELECT COUNT(*) INTO chk_var FROM user_seq WHERE s_name = st_name;
IF chk_var > 0 THEN
EXECUTE IMMEDIATE 'drop seq '||st_name;
RETURN 1;
END IF;END IF;
RETURN 0;END DropST;/SELECT DropST('ABC', 'T') FROM DUAL ;
--------------------------------------------------------------------
报错:Package or function DropST is in an invalid state
PRAGMA autonomous_transaction;
chk_var NUMBER;
BEGINIF st_type = 'T' THEN SELECT COUNT(*) INTO chk_var FROM user_tab WHERE t_name = st_name;
IF chk_var > 0 THEN
EXECUTE IMMEDIATE 'drop tab '||st_name;
RETURN 1;
END IF;ELSIF st_type = 'S' THEN SELECT COUNT(*) INTO chk_var FROM user_seq WHERE s_name = st_name;
IF chk_var > 0 THEN
EXECUTE IMMEDIATE 'drop seq '||st_name;
RETURN 1;
END IF;END IF;
RETURN 0;END DropST;/SELECT DropST('ABC', 'T') FROM DUAL ;
--------------------------------------------------------------------
报错:Package or function DropST is in an invalid state
解决方案 »
- oracle存储过程调用
- Oracle如何检索出一堆数据中相同的记录并删掉相同的只留一条记录(急)
- oracle 10g,报经典错误...说法不一,请大家解答.
- row_number()的使用请教, 知道的都请进来指点指点
- 请问我已经建立了一个新的数据库,在企业管理器通过独立登陆可以看到,但我通过另一种方式选用户,选服务登录的话,就只能看到最初安装ORACLE时建立的那个数据库了,
- 4G的二进制数据文件,可以用Oracle Direct Path导入么
- FULL SQL Intermediate SQL Entry SQL 指的是?
- 关于oracle面向对象编程的几个疑问?
- 关于to_number()函数的问题。。。
- 9i安装时报areasqueries错误 解决了我给200分
- 在线等非常急
- 嵌套存储过程
chk_var NUMBER;
BEGIN
我的意见PRAGMA autonomous_transaction;--这行什么意思啊?问下
如果是,应该是因为你的drop语句写错了,需要写完整的“table”和“sequence”
改了,
EXECUTE IMMEDIATE 'drop table '||st_name;EXECUTE IMMEDIATE 'drop sequence '||st_name;还是同样的错误