Package的建立(100分)

  • 主题发起人 主题发起人 lcj
  • 开始时间 开始时间
L

lcj

Unregistered / Unconfirmed
GUEST, unregistred user!
我在建立Oracle Package的过程中,建立函数时,如下代码:
create or replace package pk1 as
function insertrec(val1 number) return number;
end;
/
create or replace package body pk1 as
function insertrec(val1 number) return number
as
begin
insert into aa values(val1);
commit;
return 1;
end insertrec;
end pk1;
/
建立后我执行下列语句(附上错误语句):
SQL> select pk1.insertrec(1) from dual;
select pk1.insertrec(1) from dual
*
ERROR at line 1:
ORA-06571: Function INSERTRECdo
es not guarantee not to update database
请问如何解决?谢谢!
 
在sql命令中用到的函数是不能有写入数据库的。
而且在package中要加入:
PRAGMA RESTRICT_REFRENCES(函数名,WNDS);
 
hehe.这涉及函数的”纯度级别“
WNDS:Write No Database State
RNDS:Read No Database State
WNPS:Write No Package State
RNPS:Read No Package State
PRAGMA RESTRICT_REFRENCES(function_name,WNDS[,WNPS][,WNPS][,RNPS]);
WNDS必须存在。所以不允许使用SQL的DML语句。
 
to 沈前卫:
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=195619
 
Pipi.
我已经看到了。

我的mail:
shenqw@371.net shenqw@cmmail.com shenqw@sina.com shenqw@21cn.com
有事请来Mail。能有你这样的朋友,是我的荣幸!!! {B-)
 
这么多mail?
我的: rbx-rbx@21cn.com
 
多人接受答案了。
 
我的分数怎么和listen的一样多,哼哼哼
 
后退
顶部