2010-08-29 30 views
1

J'essaie d'utiliser PL/JSON dans mon application Oracle APEX mais j'obtiens les erreurs suivantes lorsque je tente d'exécuter un Hello, example (qui fonctionne correctement lorsque je lance l'exemple de SQL * PLUS comme sys):Intégration de PL/JSON avec 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 

La version de base de données Oracle que j'utilise est XE 10g.

Je suppose que je n'ai pas accordé de privilèges d'exécution correctement sur les packages: JSON_EXT, JSON_PRINTER et JSON_PARSER. J'ai essayé d'accorder des privilèges d'exécution sur les 3 paquets à public et APEX_PUBLIC_USER mais en vain. J'apprécierais vraiment que quelqu'un puisse me diriger dans la bonne direction. J'ai cherché Google pendant plusieurs heures et je n'ai pas encore trouvé un article/une page qui répond à mon problème ou qui explique ce qui ne va pas et comment je peux résoudre mon problème.

Merci d'avance!

+0

Ne pas accorder d'exécution à PUBLIC ou APEX_PUBLIC_USER. –

+0

Est-ce que vous testez dans SQL * Plus avec le même schéma associé à votre espace de travail Apex? – ObiWanKenobi

Répondre

0

Si vous faites un DESC JSON_EXT, il n'y a pas de fonction GET_VARCHAR2 (au moins dans la version 0.9.2). Il existe une fonction GET_STRING qui retourne un VARCHAR2.

La page un lien vers les utilisations PL/version 0.8.6 JSON, et on dirait qu'ils ont fait quelques changements dans biggish 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 

Essayez les exemples dans la dernière version du package.

+0

Merci pour votre réponse! Malheureusement, cela n'a pas aidé. PL/JSON fonctionne en dehors d'Oracle APEX. En changeant GET_VARCHAR2 en GET_STRING, je reçois le message d'erreur suivant, similaire, pour GET_STRING lorsque j'exécute le code à partir de la page Commandes SQL dans Oracle APEX:

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