溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 數據庫 > 
  • informix的esql編譯參數避免//注釋引起的SQL中斷問題

informix的esql編譯參數避免//注釋引起的SQL中斷問題

發布時間:2020-08-08 17:26:59 來源:ITPUB博客 閱讀:214 作者:pacman2000 欄目:數據庫

在EXEC SQL中,如果SQL語句出現了“//”符號,那么會導致后面一直到“;”結尾的SQL語句都被忽略,而不止當前行。這樣往往會出乎程序員的意料。

例如以下例子程序t1.ec。


  • int main()
  • {
  •         EXEC SQL UPDATE vyktd
  •         SET kahaoo="1" //注釋1出現在SQL中
  •         WHERE kahaoo= "2";
  •         //注釋2出現在普通程序中
  •         return 0;
  • }

  • 正常編譯可以通過:

    $esql -e t1.ec

    $

    其實執行的SQL將會是UPDATE vyktd SET kahaoo="1",不帶任何條件。因為WHERE字句被注釋1所掩蓋,變成危險的全表更新!


    為了避免這樣的隱患,需要加上esql的編譯參數-keepccomment,加上這個以后,如果在sql里寫了“//”就會編譯報錯。

    $esql -keepccomment -e t1.ec
    esqlc: "t1.ec", line 4: Error -33051: Syntax error on identifier or symbol '/'.
    1 error(s) found

    $


    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女