2011-12-15 19 views
0

說明我在的ColdFusion MX7運行ORACLE:無效user.table.column,TABLE.COLUMN,或列沒有明顯的錯誤

<CFQUERY DataSource="#XXX.DSN#"> 
    UPDATE FUNKUS_LIST 
    SET 
    <CFIF OPERATIONRECEIVED IS "Enable"> 
     FUNKUS_STATUS_ID=<CFQUERYPARAM value="1" 
     CFSQLTYPE="CF_SQL_INTEGER"> 
    <CFELSEIF OPERATIONRECEIVED IS "Revoke"> 
     FUNKUS_STATUS_ID=<CFQUERYPARAM value="3" 
     CFSQLTYPE="CF_SQL_INTEGER"> 
    </CFIF> 
    WHERE 
     FUNKUS_LIST_ID in (
     <CFQUERYPARAM value="#form.dltCheckbox#" 
     CFSQLTYPE="CF_SQL_INTEGER" 
      LIST="Yes"> 
      ) 
</CFQUERY> 

與Oracle 9i數據庫。可能導致的原因有:

執行數據庫查詢時出錯。 ORA-01747:無效user.table.column, TABLE.COLUMN,或列規範

form.dltCheckbox應窗體上的複選框組。

FUNKUS_LIST_ID是一個整數列,手動列出的數字是正確的和有效的ID。 OPERATIONRECEIVED是一個字符串,表示在此操作表單中應該完成的操作。我已經證實了所有的列名和表名的匹配

+0

此表上是否有觸發器可能導致問題? – 2011-12-15 23:07:02

回答

3

您需要在列表=「true」屬性添加到您的cfqueryparam:

WHERE 
     FUNKUS_LIST_ID in (
     <CFQUERYPARAM value="#form.dltCheckbox#" LIST="TRUE" 
     CFSQLTYPE="CF_SQL_INTEGER">) 

...還添加結束括號

編輯

在回答您的評論 - 你驗證OPERATIONRECEIVED絕對不是「啓用」或「撤銷」?如果它不是那些東西,那麼你的SQL將是不完整的,因爲set子句中不會列出列。

+0

對不起,在某種程度上沒有得到它,我有一個列表聲明。現在編輯問題...仍然有錯誤。 – Rig 2011-12-15 22:32:42

相關問題