Bonjour,
J'ai un souci sur la compilation de ma fonction avec un database link que je tente d'ajouter:
Lors de la compilation, j'obtiens l'erreur suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 CREATE OR REPLACE FUNCTION SAS_UPGRADE_CHECK (V_LICENSE_ID NUMBER,p_base varchar2) RETURN VARCHAR2 IS -- CUSTOMER VARS. V_PRODUCT PRODUCTION.LICENSE.PRODUCT%TYPE; V_VERSION PRODUCTION.LICENSE.VERSION%TYPE; V_MAINTEXPIRE PRODUCTION.LICENSE.MAINTEXPIRE%TYPE; V_PORTCLASS_ID PRODUCTION.LICENSE.PORTCLASS_ID%TYPE; ..... BEGIN -- Gets products SELECT DISTINCT PRODUCT, VERSION, MAINTEXPIRE, PORTCLASS_ID INTO V_PRODUCT, V_VERSION, V_MAINTEXPIRE, V_PORTCLASS_ID FROM PRODUCTION.LICENSE@p_base WHERE LICENSE_ID = V_LICENSE_ID; ....
Je comprends que le compilateur n'interprete pas p_base comme une variable mais directement comme le nom de la base distante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Compilation errors for FUNCTION SALESADM.SAS_UPGRADE_CHECK Error: PL/SQL: ORA-04052: error occurred when looking up remote object PRODUCTION.LICENSE@P_BASE ORA-00604: error occurred at recursive SQL level 1 ORA-02019: connection description for remote database not found Line: 40 Text: FROM PRODUCTION.LICENSE@p_base Error: PL/SQL: SQL Statement ignored Line: 38 Text: SELECT DISTINCT PRODUCT, VERSION, MAINTEXPIRE, PORTCLASS_ID Error: Hint: Parameter 'p_base' is declared but never used in 'SAS_UPGRADE_CHECK' Line: 1 Text: CREATE OR REPLACE FUNCTION SAS_UPGRADE_CHECK (V_LICENSE_ID NUMBER,p_base varchar2)
Comment puis je proceder pour lui faire comprendre que p_base est une variable lui indiquant la base a intérroger?
Thanks for the help.
Lo.
Partager