Bonjour à tous,
En cette fin de semaine je ne pensais pas tomber sur un problème de SQL.
J'explique :
Je suis sur Oracle 11g.
J'ai un type de table MONTYPEDETABLE défini ainsi :
Et j'effectue la requête suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part create or replace TYPE "MONTYPEDETABLE" AS TABLE OF VARCHAR2(4000);
Une exception est remontée :
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
23
24
25
26
27 SELECT * FROM ( SELECT d.code_dest, l.id_livraison, l.code_livr, l.nom_lieu_livr, l.pays_livr FROM LIVRAISON l, DESTINATAIRES d WHERE l.id_destinataire = d.id_destinataire ) QRSLT WHERE ( ( code_dest MEMBER OF ( CAST ( ( SELECT d2.code_dest from DESTINATAIRES d2 WHERE d2.code_dest='XXXXXX' ) AS MONTYPEDETABLE ) ) ) ) ORDER BY "CODE_LIVR";
L'erreur provient du CAST( ... AS MONTYPEDETABLE).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ORA-00932: types de données incohérents ; attendu : - ; obtenu : CHAR 00932. 00000 - "inconsistent datatypes: expected %s got %s" *Cause: *Action: Erreur à la ligne 19, colonne 17
Le type de DESTINATAIRES.CODE_DEST est VARCHAR2(20).
Si vous avez des pistes de correction je prend.
Merci
Partager