2010-08-29 122 views
1

我正在尝试在我的Oracle APEX应用程序中使用PL/JSON,但在尝试运行Hello,世界时出现以下错误example(在我从SQL运行示例时工作正常* PLUS as sys):集成PL/JSON与Oracle APEX 4.0

ORA-06550: line 2, column 20: 
PLS-00905: object MY_SCHEMA.JSON is invalid 
ORA-06550: line 2, column 20: 
PL/SQL: Item ignored 
ORA-06550: line 5, column 5: 
PLS-00320: the declaration of the type of this expression is incomplete or malformed 
ORA-06550: line 5, column 5: 
PL/SQL: Statement ignored 
ORA-06550: line 7, column 26: 
PLS-00201: identifier 'JSON_EXT.GET_VARCHAR2' must be declared 
ORA-06550: line 7, column 5: 
PL/SQL: Statement ignored 

我使用的Oracle数据库版本是10g XE。

我猜测我没有在包上正确授予执行特权:JSON_EXT,JSON_PRINTER和JSON_PARSER。我曾尝试将3个软件包的执行权限授予public和APEX_PUBLIC_USER,但无济于事。如果有人能指引我正确的方向,我会非常感激。我搜索了Google几个小时,并且还没有找到解答我的问题的帖子/页面,或者帮助解释什么是错误的,以及如何解决我的问题。

在此先感谢!

+0

不要将执行授予PUBLIC或APEX_PUBLIC_USER。 – 2010-08-30 02:34:29

+0

您是否在SQL * Plus中测试了与您的Apex工作区相关的相同架构? – ObiWanKenobi 2010-12-12 12:46:06

回答

0

如果您执行DESC JSON_EXT,则不存在GET_VARCHAR2函数(至少在版本0.9.2中)。有一个GET_STRING函数返回一个VARCHAR2。

您链接到使用PL页/ JSON版本0.8.6,它看起来像他们已经做了一些较大的变化在0.9

Version: 0.9.0 
WARNING: You cannot do an easy upgrade because of changes in the API 
    Rewrote the API to increase speed and simplicity 

试着在包的最新版本的例子。

+0

感谢您的回复!不幸的是,这并没有帮助。 PL/JSON在Oracle APEX之外工作。通过将GET_VARCHAR2更改为GET_STRING,当我从Oracle APEX中的SQL Commands页面运行代码时,出现以下类似的GET_STRING错误消息:

PLS-00201: identifier 'JSON_EXT.GET_STRING' must be declared ORA-06550: line 7, column 5: PL/SQL: Statement ignored
Arctic107 2010-08-29 23:28:44