Oracle.DataAccess.Client.OracleException ORA-01747: user.table.column, table.column 或列說明無效

原因1:
查了一下是由于Oracle 資料庫列名起的不好引起的,名字用到了資料庫的關鍵字。
如果列很多,又不好确定是哪個列名使用了關鍵字,以下建議可供參考:
我用以下方法定位
select *
from v$reserved_words
where keyword
in(
select COLUMN_NAME
from all_tab_columns
where table_name = '表名大寫' and owner='使用者名大寫'
);
原因2:
書寫的SQL的Set語句中,異常的字元混入到列名稱的前後,列名稱寫錯了。
将控制台列印的sql語句在plsql中執行發現:sql語句在xml中拼接錯誤 。
本人的錯誤是屬于第一、二種類同時存在的。而且第二種錯誤找起來更讓人茫然,後來在文章2的參考下,終于找到了。
update HP_STATUS set BSM_ASSOCIATE = :BSM_ASSOCIATE, STATUS = :STATUS,OPERATE_USER_ID = :OPERATE_USER_ID, FTP_FOLDER_LOCATION = :FTP_FOLDER_LOCATION, DATA_STATUS = :DATA_STATUS, UDT = :UDT, DETAILS = :DETAILS, where FID = :FID
參考文章
沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。 永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的架構所束縛,讓創造力自由成長吧! 多花時間,關心他(她)人,正如别人所關心你的。理想的騰飛與實作,沒有别人的支援與幫助,是萬萬不能的。
本文轉自wenglabs部落格園部落格,原文連結:http://www.cnblogs.com/arxive/p/6255101.html,如需轉載請自行聯系原作者