2010-09-13 43 views
2

我是從的LiveCycle ES執行SQL Server 2005的存儲過程8.2用null值接收XML時,它實際上是空

結果返回類似

<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> 

我試圖找出爲什麼在結果中放入「null」這個詞。

即使類型爲xs:int如果它返回單詞「空」

是有什麼在JDBC或的LiveCycle可以解決這一問題?

存儲過程是一個簡單的

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爲空在數據庫中,它們不包含值「空」。

+0

請編輯您的文章並添加產生此結果的查詢。 – 2010-09-13 17:08:02

+0

@Jim Garrison,我更新了我的問題 – Fredou 2010-09-13 17:28:30

+1

什麼是將查詢結果轉換爲XML? – 2010-09-13 17:49:20

回答

1

嘗試使用COALESCE()函數將空值轉換爲空字符串,像這樣:

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

或者,你可以研究如何轉化爲XML正在發生的事情,並看看是否有指定空的方式在那裏處理選項。

+0

不幸的是,您必須在SQL中使用coalesce或isnull來包裝列。在Livecycle 9中,如果列爲空,並且您正在使用選擇單行組件,它實際上會拋出一個SQL異常。 – 2010-10-21 19:52:20

0

您可以使用XSLT轉換從節點內容中刪除NULL。請檢查我的問題,以獲得關於該問題的進一步解釋。

相關問題