我已将Oracle数据库从10g迁移到12c。从12c开始,oracle不支持PLSQL_V2_COMPATIBILITY参数。PLSQL_V2_COMPATIBILITY兼容性
此参数用于: https://www.safaribooksonline.com/library/view/oracle-database-administration/1565925165/re157.html
一个在上述URL中的突出显示点的是:要在表达在一些使用 上下文
的PL/SQL编译器将允许OUT参数例如,在赋值语句右侧 的点限定名称中。此行为受限于 到OUT参数的字段,这些记录是在SELECT语句的FROM列表中引用的OUT参数 。
由于此更改,我们的许多软件包出现了错误,以前使用带有记录的功能作为输出参数。
CREATE OR REPLACE Package SJMUSER.nagendra AS
TYPE r_standard_url IS RECORD (
v_loginurl VARCHAR2(1000),
v_changepasswordurl VARCHAR2(1000),
v_newloginurl VARCHAR2(1000)
);
TYPE t_standardurl_tbl IS TABLE OF r_standard_url
INDEX BY BINARY_INTEGER;
t_standardurlstype t_standardurl_tbl;
FUNCTION Producestandardurls
(
tp_myuserid IN USERS.User_Id%TYPE,
v_scrntime IN VARCHAR2,
v_scrntoken IN VARCHAR2,
v_wwikey IN VARCHAR2
)
RETURN t_standardurlstype;
end nagendra;
/
错误:
PLS-00488 't_standardurlstype' 必须是类型。
是否需要整个代码更改?像不使用记录作为输出参数?是否有任何解决方案?
谢谢亚历克斯。很好的解释。 –