oracle ORA-00913: 值過多


--oracle中查看表是否被鎖 查看表是否被鎖 
  SELECT /*+ rule*/ 
  a.sid, b.owner, object_name, object_type 
  FROM v$lock a, all_objects b 
  WHERE TYPE = 'TM' 
  and a.id1 = b.object_id; 
--這樣可以把它殺掉 
SELECT sid,serial# FROM v$session WHERE sid =1027; 
alter system kill session '1027,14272';

 今天做項目時碰到了關於Oracle 的一個小問題:ORA-00913: 值過多。現在已經解決了,問題雖小但是解決完后心情還是挺不錯的,想分享出來,希望跟我有同樣問題的朋友可以有所借鑒。 

當oracle中報“ORA-00913: 值過多”錯誤的時候,那么說明寫的sql語句中出了問題,這是由於我們向數據庫中傳遞的參數的個數和數據庫中相應的字段的數量不一致,所以就產生了一對多,或多對一的現象,

下面舉個例子:

Insert into XX(?,?,?) values(?,?,?)

上面是我們自己寫的sql語句,我們要插入的值是3個。而數據庫中對表XX的定義字段卻只有兩個,即XX(?,?)。所以我們傳的參數的個數多出一個,這樣數據庫就會報“ORA-00913: 值過多”。

所以我們需要把上面的sql語句改為

Insert into XX(?,?) values(?,?) 或者修改數據庫表中字段的個數。

這樣問題就能解決了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM