很遗憾,无法做到这一点,因为在sql语句中使用存储函数是有限制的
请参看http://www.csdn.net/expert/topic/910/910596.xml?temp=.2698328
请参看http://www.csdn.net/expert/topic/910/910596.xml?temp=.2698328
解决方案 »
- 救救我吧,这是个难题,困扰很久很久了
- 怎样使用存储过程啊。
- 帮忙看一下 ORA-00904:"TD"."ITEM":invalid identifier
- Orcal怎么新建数据库?(一定要详细)
- 请问哪里有分析函数的资料?
- 关于oracle的问题!
- 如何修改SYS以及SYSTEM帐户的口令?
- 请问:如何在Oracle中实现自增ID,在线等候
- 请问oracle的imp怎么更改导入目的地的表空间啊
- sql执行太长怎么处理,能缩短
- 请问各位高手,我用安装时候的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;