2010-05-07 16 views
0

gars Sup, Heres mon avis:Oracle XE + ODP.Net ANNOYING VIEW ERREUR

CREATE OR REPLACE VIEW SISTEMA.VWTELA AS 
SELECT 
TEL_DLTELA AS Tela, 
TEL_DLDESCRICAO As Descricao, 
TEL_DLTABELA As Tabela, 
CASE WHEN to_char(TEL_STATIVO) = to_char(1) THEN 
    to_char('Yes') 
    ELSE 
    to_char('No') 
    END as Ativo, 
TEL_IDTELA AS IDTEL 
FROM SISTEMA.TEL_TELA; 

Quand je fais un SELECT * FROM SISTEMA.VWTELA il fonctionne très bien de PL/SQL Developer, mais quand je lance la requête de mon application VB.NET il me jette une erreur super ennuyeuse ORA-01722.

Des idées? Le code d'application fonctionne parfaitement avec n'importe quelle requête donc ce n'est pas l'erreur de code d'application mais prolly une certaine "fonction super cool" d'ODP.NET.

Déjà essayé to_number, to_whatever et même erreur arrive toujours.

Répondre

1

remplacer

CASE WHEN to_char(TEL_STATIVO) = to_char(1) THEN 
    to_char('Yes') 
    ELSE 
    to_char('No') 
    END as Ativo, 

à

to_char(CASE WHEN to_char(TEL_STATIVO) = to_char(1) THEN 
    'Yes' 
    ELSE 
    'No' 
    END) as Ativo, 

ODP.NET reconnaît maintenant ce point de vue.

+0

'Oui' et 'Non' sont déjà des chaînes, donc la conversion TO_CHAR() est inutile. C'est ennuyeux quand les clients ne gèrent pas l'exception dans ces circonstances, mais parfois ils ont des attentes trop élevées pour la faillibilité humaine. – APC