oracle使用過程中遇到的種種問題

ORA-01810: 格式代碼出現兩次

使用了 TO_DATE('2018-09-24 00:00:00','YYYY-MM-DD HH:mm:ss') 

格式化字符串出現問題,不應該將某個格式重複兩次,

正確的是TO_CHAR('2018-09-01 00:00:00','YYYY-MM-DD HH:MI:SS') 

對於24小時制,HH支持的不好,正確的是:

TO_CHAR('2018-09-01 00:00:00','YYYY-MM-DD HH24:MI:SS')

參考:https://www.cnblogs.com/Iyce/archive/2013/07/11/3183654.html

ORA-00913: 值過多

由於我們向數據庫中傳遞的參數的個數和數據庫中相應的字段的數量不一致,比如

Insert into XX(?,?,?) values(?,?,?,?) 這種情況

ORA-01745:無效的主機/綁定變量名

原因,sql語句中,兩個填充變量間沒有寫逗號

如果使用了參數傳遞賦值,也要關注在參數中是否有和oracle重複的關鍵字比如:LEVEL

ORA-00911: invalidcharacter

刪除sql中的分好“;”

ORA-00933: SQL command not properly ended

sql語句未能正常結束:查找之後發現,查詢裏使用了AS 別名,oracle sql查詢不支持as 表名的用法,使用別名時,直接跟在表名後即可

當然還有其他的原因會出現這個異常, 比如

1:可能SQL語句中關鍵字前後缺少空格

2Oracle 給表起別名時,直接在表名的後面空格別名就可以,不需要AS

3SQL 語句中缺少關鍵字或者多了某個關鍵字,比如:AND

4SQL 語句中缺少關鍵字或者多了某個標點符號,比如:,

5:數據庫不同的版本或不同的數據庫支持的SQL的語法規則是不一樣的,一句SQL語句在一個數據中是正確的在另一個數據庫中未必也正確

UPDATE A

SETID=B.ID

FROMA,B

WHEREA.NAME=B.NAME

這個錯誤;

UPDATE A

SETID=(

       SELECT ID

       FROM B

       WHERE A.NAME=B.NAME

      )

這個正確





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章