向Oracle中插入記錄時,出現“Oracle.DataAccess.Client.OracleException ORA-00933 ”錯誤

來源:互聯網
上載者:User

標籤:

錯誤資訊的彈出框

異常的內容:

“Oracle.DataAccess.Client.OracleException”類型的未處理的例外狀況在 DBFSR.dll 中發生   其他資訊: External component has thrown an exception.

捕獲的異常資訊:

Oracle.DataAccess.Client.OracleException ORA-00933: SQL 命令未正確結束    at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx*

 

解決方案

本人的Oracle語句為

            StringBuilder strSql = new StringBuilder();
            strSql.Append("insert into HP_TABLE(");
            strSql.Append("TS_ID,DATE_SOLAR,DATE_LUNAR,HP_FID,HOUR_00,"+
                "HOUR_01,HOUR_02,HOUR_03,HOUR_04,HOUR_05,HOUR_06,HOUR_07,HOUR_08,HOUR_09,HOUR_10,"+
                "HOUR_11,HOUR_12,HOUR_13,HOUR_14,HOUR_15,HOUR_16,HOUR_17,HOUR_18,HOUR_19,HOUR_20,"+
                "HOUR_21,HOUR_22,HOUR_23,\"SUM\",\"AVG\",G1_T,G1_L,G2_T,G2_L,D1_T,D1_L,D2_T,D2_L,UPDATE_TIME,DETAILS)");
            strSql.Append(" values (");
            strSql.Append(":TS_ID,:DATE_SOLAR,:DATE_LUNAR,:HP_FID,:HOUR_00,"+
                ":HOUR_01,:HOUR_02,:HOUR_03,:HOUR_04,:HOUR_05,:HOUR_06,:HOUR_07,:HOUR_08,:HOUR_09,:HOUR_10," +
                ":HOUR_11,:HOUR_12,:HOUR_13,:HOUR_14,:HOUR_15,:HOUR_16,:HOUR_17,:HOUR_18,:HOUR_19,:HOUR_20," +
                ":HOUR_21,:HOUR_22,:HOUR_23,:\"SUM\",:AVG,:G1_T,:G1_L,:G2_T,:G2_L,:D1_T,:D1_L,:D2_T,:D2_L,:UPDATE_TIME,:DETAILS)");
經檢查,發現是關鍵字衝突,在上面“AVG”關鍵字與系統的函數衝突,只將上面的AVG加上引號還不夠,還要將下面的AVG參數名加上引號。

PS,其實經過作者測試,SUM的參數名可以不加引號。

  ...

  ":HOUR_21,:HOUR_22,:HOUR_23,:\"SUM\",:\"AVG\",:G1_T,:G1_L,:G2_T,:G2_L,:D1_T,:D1_L,:D2_T,:D2_L,:UPDATE_TIME,:DETAILS)");

  ...

這樣即可解決問題。進行正常的插入操作。

 

 

經驗:

(1)對於較長的sql語句,最好將其粘貼到Word中進行分段識別,否則很難保證正確。

(2)一般寫作的SQL語句,可以現在如PL/SQL中進行測試正確與否。

(3)平時要多SQL語句,包括進階的操作文法,如建立規則,事物,挎庫資料轉移,觸發,資料表設計,即時更新資料的觸發與操作。以及典型的即時通訊,並行作業,海量查詢,索引,備份與恢複,安全等內容。

 

向Oracle中插入記錄時,出現“Oracle.DataAccess.Client.OracleException ORA-00933 ”錯誤

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.