很遗憾,无法做到这一点,因为在sql语句中使用存储函数是有限制的
请参看http://www.csdn.net/expert/topic/910/910596.xml?temp=.2698328
请参看http://www.csdn.net/expert/topic/910/910596.xml?temp=.2698328
解决方案 »
- 用法
- Oracle的Report开发
- 最近遇到的几个问题,高手指点下!不胜感激!
- linux下使用sqlplus插入数据的时候都是方框
- Oracle装完后,计算机名改了,监听程序无法启动!
- oracle建表问题求教,谢谢
- Oracle9i安装问题!
- 没分了,还请多关照!!!
- 如何往oracle8i的CLOB字段里一次插入多于4000个字符的长文本!
- ORACLE无法删除数据库实例
- 请问各位高手,我用安装时候的SYS和SYSTEM用户登陆sql*plus时候,SYSTEM好用,可SYS 不好用,这是什么问题?因为启动数据库必须要SYS才可
- 做一个以图形图象(包括quick t vr的图像,及动话图像)为主要数据的网络数据库,用oracle好还是sql server好??(新手盼指教)
-- create the debug table
CREATE TABLE debug_output (msg VARCHAR2(200));-- create the package spec
CREATE PACKAGE debugging AS
FUNCTION log_msg (msg VARCHAR2) RETURN VARCHAR2;
PRAGMA RESTRICT_REFERENCES(log_msg, WNDS, RNDS);
END debugging;-- create the package body
CREATE PACKAGE BODY debugging AS
FUNCTION log_msg (msg VARCHAR2) RETURN VARCHAR2 IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
-- the following insert does not violate the constraint
-- WNDS because this is an autonomous routine
INSERT INTO debug_output VALUES (msg);
COMMIT;
RETURN msg;
END;
END debugging;-- call the packaged function from a query
DECLARE
my_empno NUMBER(4);
my_ename VARCHAR2(15);
BEGIN
...
SELECT debugging.log_msg(ename) INTO my_ename FROM emp
WHERE empno = my_empno;
-- even if you roll back in this scope, the insert
-- into 'debug_output' remains committed because
-- it is part of an autonomous transaction
IF ... THEN
ROLLBACK;
END IF;
END;