Bonjour, j'ai une requête sql qui me retourne une valeur CHAR_VAL.
j'aimerais que cette requête me retourne une valeur par défaut si la requête ne retourne rien. Je dois impérativement récupérer la valeur de CHAR_VAL dans une variable dans la suite de mon traitement.
J'ai modifié la requête comme ceci :
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 SELECT ACCH2.CHAR_VAL FROM CI_ACCT_CHAR ACCH1, CI_ACCT_CHAR ACCH2 WHERE ACCH1.ACCT_ID = '5952073892' AND ACCH1.CHAR_TYPE_CD = 'NUMGRC' AND (ACCH1.ADHOC_CHAR_VAL) = '2-2BCCSCO' AND ACCH1.EFFDT = (SELECT MAX(ACCH3.EFFDT) FROM CI_ACCT_CHAR ACCH3 WHERE ACCH3.ACCT_ID = ACCH1.ACCT_ID AND ACCH3.CHAR_TYPE_CD = ACCH1.CHAR_TYPE_CD AND ACCH3.EFFDT <= '16-03-2016') AND ACCH2.ACCT_ID = '5952073892' AND ACCH2.CHAR_TYPE_CD = 'TYP-PROF' AND ACCH2.CHAR_VAL IN ('OH ', 'S ET C ') AND ACCH2.EFFDT = (SELECT MAX(ACCH4.EFFDT) FROM CI_ACCT_CHAR ACCH4 WHERE ACCH4.ACCT_ID = ACCH2.ACCT_ID AND ACCH4.CHAR_TYPE_CD = ACCH2.CHAR_TYPE_CD AND ACCH4.EFFDT <= '16-03-2016');
j'ai une erreur ORA-01705: impossible d'indiquer une jointure externe sur une colonne de corrélation
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
20
21
22 SELECT ACCH2.CHAR_VAL FROM CI_ACCT_CHAR ACCH1, CI_ACCT_CHAR ACCH2 WHERE CCH1.ACCT_ID = '5952073892' AND ACCH1.CHAR_TYPE_CD = 'NUMGRC' AND (ACCH1.ADHOC_CHAR_VAL) = '2-2BCCSCO' AND ACCH1.EFFDT = (SELECT MAX(ACCH3.EFFDT) FROM CI_ACCT_CHAR ACCH3 WHERE ACCH3.ACCT_ID = ACCH1.ACCT_ID AND ACCH3.CHAR_TYPE_CD = ACCH1.CHAR_TYPE_CD AND ACCH3.EFFDT <= '16-03-2016') AND ACCH2.ACCT_ID(+) = ACCH1.ACCT_ID AND ACCH2.CHAR_TYPE_CD(+) = 'PROF' AND ACCH2.CHAR_VAL(+) IN ('OH ', 'S ET C ') AND (ACCH2.EFFDT(+) <> ' ' AND ACCH2.EFFDT = ( SELECT MAX(ACCH4.EFFDT) FROM CI_ACCT_CHAR ACCH4 WHERE ACCH4.ACCT_ID = ACCH2.ACCT_ID(+) AND ACCH4.CHAR_TYPE_CD = ACCH2.CHAR_TYPE_CD(+) AND ACCH4.EFFDT <= '16-03-2016') );
Je suis un peu bloqué pour l'instant. Comment faire ?
Merci d'avance
Partager