一位同事讓我們都感到困惑,因爲一個查詢因爲我們無法理解的原因而失敗。我可以確認ENOTE.EN_FILTER_VALUE_L.FILTER_VALUE_DECODE
確實存在於數據庫中。至少有三個人盯着它試圖找出拼寫錯誤。DB2查詢未知列名ERRORCODE = -4460,SQLSTATE = null
查詢:
SELECT sub.ID, sub.USER_ID, sub.EN_TYPE_CODE,
typ.EN_TYPE_DESC, typ.APPL_CD, filterval.FILTER_VALUE_DECODE AGENCY_TYPE,
sub.EN_TYPE_CODE CONCAT ' | ' CONCAT typ.EN_TYPE_DESC ENOTE_STRING,
org1.ORG_LVL1_CD, org1.ORG_LVL1_DC,
org2.ORG_LVL2_CD, org2.ORG_LVL2_DC,
org3.ORG_LVL3_CD, org3.ORG_LVL3_DC,
org4.ORG_LVL4_CD, org4.ORG_LVL4_DC
FROM ENOTE.EN_SUBSCRIPTION_T sub
LEFT JOIN ENOTE.EN_TYPE_L typ ON sub.EN_TYPE_CODE = typ.EN_TYPE_CODE
LEFT JOIN ENOTE.EN_FILTER_OFFICE_T filteroffice ON sub.ID = filteroffice.SUBSCRIPTION_ID
LEFT JOIN UMC.ORG_LVL4_L org4 ON org4.ORG_LVL4_CD = filteroffice.ORG_LVL4_CODE
AND org4.ORG_LVL3_CD = filteroffice.ORG_LVL3_CODE
AND org4.ORG_LVL2_CD = filteroffice.ORG_LVL2_CODE
AND org4.ORG_LVL1_CD = filteroffice.ORG_LVL1_CODE
AND org4.STRUCTURE_CD = filteroffice.STRUCTURE_CODE
LEFT JOIN UMC.ORG_LVL3_L org3 ON org3.ORG_LVL3_CD = filteroffice.ORG_LVL3_CODE
AND org3.ORG_LVL2_CD = filteroffice.ORG_LVL2_CODE
AND org3.ORG_LVL1_CD = filteroffice.ORG_LVL1_CODE
AND org3.STRUCTURE_CD = filteroffice.STRUCTURE_CODE
LEFT JOIN UMC.ORG_LVL2_L org2 ON org2.ORG_LVL2_CD = filteroffice.ORG_LVL2_CODE
AND org2.ORG_LVL1_CD = filteroffice.ORG_LVL1_CODE
AND org2.STRUCTURE_CD = filteroffice.STRUCTURE_CODE
LEFT JOIN UMC.ORG_LVL1_L org1 ON org1.ORG_LVL1_CD = filteroffice.ORG_LVL1_CODE
AND org1.STRUCTURE_CD = filteroffice.STRUCTURE_CODE
LEFT JOIN ENOTE.EN_FILTER_VALUE_L filterval ON
(filteroffice.AGENCY_TYPE_CODE = filterval.FILTER_VALUE AND filterval.FILTER_NAME = 'Agency Type')
除外:
com.ibm.db2.jcc.a.SqlException:[JCC] [10150] [10300] [4.3.111]無效 參數:未知列名FILTER_VALUE_DECODE。 ERRORCODE = -4460, SQLSTATE = NULL
但是等一下!它變得更加惡劣。看起來這個查詢在我們的一個同事的工作站上運行。看起來是相同的代碼庫。我們的環境看起來一樣。這種行爲表明一些環境差異。我還應該提到th查詢在粘貼到DB2 Control Center時起作用。 – user1187719 2013-04-08 17:27:30
我會檢查'ENOTE'上的權限 - 此表的權限可能與其他表不同。 – 2013-04-08 17:39:25
好的想法,但我們都在我們的開發環境中使用相同的用戶(一個應用程序用戶),它在一個工作,但在另一個失敗。其他SQL和HQL引用此表沒有問題。現在看來,至少有一個用戶使用相同的代碼運行相同的SQL,可以成功運行它。該用戶有一個稍微不同的驅動程序/數據源配置,但我們改變了我們的一個破碎的環境使用相同的效果。 *口哨暮光區域主題* – user1187719 2013-04-09 12:26:53