数据库从816导到920,原本许多好用的存储过程,函数,包体,都出现了问题,为什么?

[复制链接]
查看11 | 回复2 | 2013-2-25 14:51:24 | 显示全部楼层 |阅读模式
create or replace function wh return number is
vSID VARCHAR2(8);
iRET BINARY_INTEGER;
nRET NUMBER;
begin
SELECT SUBSTR(UPPER(INSTANCE_NAME), 1, 3) INTO vSID FROM V$INSTANCE;
iRET := DBMS_DEFER_SYS.PUSH(destination=>vSID || 'C.CDL',
stop_on_error=>FALSE, delay_seconds=>0, parallelism=>0);
return(nRET);
end wh;
创建这个函数时报两个错误,一是: V$INSTANCE不存在.二是:DBMS_DEFER_SYS不好用?
如查清我把 V$INSTANCE换成一个自已创建的表,就没有第一个错误了,不知道为什么?一点思路没有,请高手指点.

我的数据库是从8i导到9i的,原本许多好用的存储过程,函数,包体,都出现了类似的问题.我导入的方法是先把用户给删除,之后重建,赋予用户许多数据库权限(基本都赋上了).最后导的数据,表能导入成功,部分存存过程,函数,包都能导成功..............
现在出现这样的问题,是不是9i和8i在语法上有什么不同.真是不明白..急死了..
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
是的哦,嘿嘿,plsql的很多改进在9i.像case,语句(816的plsql中不能用,sql中可以),像记录类型的插入
Declare
dept_rowdept%rowtype;
begin
insert into dept values (dept_row.deptno,dept_row.dname,dept_row.loc);
--insert into dept values dept_row--9i
end;
还有bulk collect 啊,forall啊等
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
现在主要是数据字典DBMS_DEFER_SYS不好用.9i中有些字典是不是没权访问啊.
有谁知道怎样给O7_DICTIONARY_ACCESSIBILITY 赋值?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行