2010-09-13 21 views
2

Je suis l'exécution d'une procédure stockée sur le serveur SQL 2005 de LiveCycle ES 8.2recevoir xml avec une valeur nulle quand il est en fait nul

le retour de résultat quelque chose comme

<Table> 
<Row> 
    <ID>1</ID> 
    <EN_Cd>EN</EN_Cd> 
    <FR_Cd>null</FR_Cd> 
    <EN_Nm>English</EN_Nm> 
    <FR_Nm>Anglais</FR_Nm> 
    <EN_Shrt_Dscrptn>null</EN_Shrt_Dscrptn> 
    <FR_Shrt_Dscrptn>null</FR_Shrt_Dscrptn> 
</Row> 
</Table> 

J'essaie de comprendre pourquoi le mot "nul" est mis dans le résultat.

Même avec le type xs: int le retourner le mot « null »

est-il quelque chose dans le jdbc ou livecycle qui peut résoudre ce problème?

la procédure stockée est un simple

select id, en_cd, fr_cd, 
      en_nm, fr_nm, 
      en_shrt_dscrptn, fr_shrt_dscrptn 
    from language 

fr_nm, en_shrt_dscrptn, fr_shrt_dscrptn sont nulles dans la base de données, ils ne contiennent pas la valeur "null".

+0

S'il vous plaît modifier votre message et ajouter la requête qui a produit ce résultat. –

+0

@Jim Garrison, j'ai mis à jour ma question – Fredou

+1

Qu'est-ce que la conversion des résultats de la requête en XML? –

Répondre

1

Essayez d'utiliser la fonction COALESCE() pour convertir les valeurs NULL à des chaînes vides, comme ceci:

select id, 
     coalesce(en_cd,''), 
     coalesce(fr_cd,''), 
     coalesce(en_nm,''), 
     coalesce(fr_nm,''), 
     coalesce(en_shrt_dscrptn,''), 
     coalesce(fr_shrt_dscrptn,'') 
from language 

Sinon, vous pouvez étudier comment la conversion en XML se passe, et voir s'il y a un moyen de spécifier null options de manipulation là-bas.

+0

Oui, vous devez malheureusement enrouler les colonnes avec coalesce ou isnull dans SQL. Dans Livecycle 9, si une colonne est null et que vous utilisez le composant Select single row, une exception SQL est réellement générée. –

0

Vous pouvez utiliser une transformation XSLT pour supprimer la valeur NULL du contenu des nœuds. vérifier mes questions pour une explication supplémentaire sur cela