對於 ORA 01461 的錯誤

2021-06-06 07:25:52 字數 420 閱讀 6061

當向oracle資料庫中插入或更新資料時,報錯「ora-01461: 僅可以為插入 long 列的 long 值賦值」,可能有以下幾種原因:

1、插入到字串長度大於4000位元組。

2、插入到表中的記錄的某個字段資料的實際長度大於2000個位元組(如果是utf-8,則是1333個位元組);或者是插入的記錄中有兩個或兩個以上長度大於2000位元組的字串。

3、資料庫與客戶端的jdbc驅動不匹配。

對於utf-8或歐洲的某些字符集,oracle在儲存時,對於乙個字元需要2個或3個位元組的儲存空間,雖然表定義中為varchar2(4000),但是其實該字段的data_length為其2倍或3倍長。這種情況下oracle會把data_length長度超過4000的當做long型處理,你的表中有兩個這樣的字段,插入資料時相當於同時操作2個long欄位。

附件:

ORA 06502錯誤的反省

ora 06502 pl sql 數字或值錯誤 字串緩衝區太小一般情況對資料庫查詢的時候我們會用拼接乙個where語句的方式來查詢,不過有一種情況我們不太確定where語句的內容 比如說,它需要在執行時確定,也就是在執行是拼接乙個sql語句 id in ida,idb,idc,這個錯誤出現前,我的做...

ORA 00119錯誤的解決。

今天在啟動伺服器上的oracle時遇到如下錯誤 sql startup ora 00119 invalid specification for system parameter local listener ora 00132 syntax error or unresolved network n...

ORA 04031錯誤的解決思路

使用asmm的情況下04031問題很少,但有些應用不合理也會導致記憶體耗盡.1.沒有使用繫結變數,導致解析資源占用太多 2.開啟過多的cursor不釋放 3.bug 第一種.使用繫結變數 使用cursor sharing引數 第二種.查詢哪個會話開啟的游標比較多 sql select sid,cou...