Bonjour à tous,

la requête suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
WITH mq AS ( 
     SELECT /*+ MATERIALIZE */ 'USD' FROM DUAL
)
SELECT *
FROM mq
me retourne la chaîne : 'USD ' (USD + 6 espaces). Si j'enlève le hint, tout redevient normal. De même, l'insertion de ce résultat dans une table modifie le format de la colonne, et là je comprends plus rien :

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
 
CREATE TABLE IS_A_BUG (
       TEST_VAL VARCHAR2(3)
)
 
INSERT INTO IS_A_BUG 
WITH mq AS ( 
     SELECT /*+ MATERIALIZE */ 'USD' FROM DUAL
)
SELECT *
FROM mq
 
COMMIT
 
SELECT DATA_TYPE, DATA_LENGTH FROM USER_TAB_COLS
WHERE TABLE_NAME = 'IS_A_BUG'
Le dernier select retourne un VARCHA2(9) ! ! Je me suis laissé dire que c'était un problème de charset : mon client (Toad ou PL/SQL dev sous XP) est en WE8MSWIN1252 et ma base en UTF8, je ne comprends pas le problème. Et comment un problème de charset peut arriver à modifier le format de ma table ?

Voilà, si quelqu'un a une idée... ?
Merci