ORA-01461: 僅可以為插入 LONG 列的 LONG 值賦值”解決辦法
ORA-01461: 僅可以為插入 LONG 列的 LONG 值賦值”解決辦法
今天遇到的一個問題:
直接修改資料表中的某些欄位資料內容時報錯:
ORA-01461: 僅可以為插入 LONG 列的 LONG 值賦值”解決辦法
上網查詢發現解決途徑有:
法1,資料庫字符集應該是UTF-8的,對於UTF-8或歐洲的某些字符集,oracle在儲存時,對於一個字元需要2個或3個位元組的儲存空間,雖然表定義 中為varchar2(4000),但是其實該欄位的data_length為其2倍或3倍長。這種情況下oracle會把data_length長度超 過4000的當做LONG型處理,你的表中有兩個這樣的欄位,插入資料時相當於同時操作2個LONG欄位,所以報錯。
當時的解決辦法:建議減小欄位長度或拆分。實在需要的,可以轉而採用CLOB欄位型別。
但我的修改的資料不可能超過這個長度,就像http://www.blogjava.net/allen-zhe/archive/2008/05/06/198627.html 評論1樓所說,我的長度太小,根本不會是這個問題
此法pass!
法2,採用Oracle 10g最新的ojdbc14.jar驅動替換原有的驅動。
我直接在資料庫中操作的,應該說是用不到這些驅動的。此法不可用於我的情況。
ORA-01461: can bind a LONG value only for insert into a LONG column
開發專案,今天又難到問題。junit測試寫資料到oracle時,出現:ORA-01461: can bind a LONG value only for insert into a LONG column錯 誤,鬱悶,試了幾次發現,中文才會有這個問題,而且jsp頁面裡輸入的中文又不會報這個錯(前端是struts)。像mysql的話,很有可能是資料庫字 符編碼問題,就懷疑是否為字元編碼問題(這種思維不知道會不會很傻),因為專案所有編碼都是utf-8, 看了下oracle是zhs16GBK。然後就建一個gbk的專案來測試,結果還是出現此問題。後來就換用舊系統的classes12.jar驅動測試
下,^_^, 不會了,太好了。看了下classes12.jar的版本是9.0.2.0.0的而且又是classes12.jar不爽,後來看到一個帖子,說:用9的和10.2的沒有此問題,我回去看下之前出問題的版本是10.1.0.2.0,鬱悶,用的資料庫是10.2.0.1.0。馬上換成10.2.0.1.0的版本。當初不注意,今天花了我幾個小時。我一直以為jdbc是資料庫對應的。對應的jdbc在oracle安裝目錄可以找到oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar
問題總算解決,^_^
相關文章
- -bash: /bin/rm: Argument list too long的解決辦法
- c++ 基本資料型別(int、float、double、long、long long)最大值,最小是表示方法C++資料型別
- JavaScript陣列解構賦值JavaScript陣列賦值
- 陣列賦值陣列賦值
- ES6學習-4 解構賦值(1)陣列的解構賦值賦值陣列
- [windows]批處理獲取時間的long型值Windows
- Struct FORM ACTION 無法解決動態賦值?StructORM賦值
- kettle 報ORA-01461 解決辦法
- iOS: addObjectsFromArray 新增資料一值為空的解決辦法iOSObject
- POJ2774Long Long Message(字尾陣列模板)陣列
- Javascript 解構賦值,將屬性/值從物件/陣列中取出,賦值給其他變數JavaScript賦值物件陣列變數
- long2varchar 把long轉換為varchar2
- C/C++——求下面資料型別的最大值和最小值: char, short, int, long, float, double, long double和numeric_limits使用C++資料型別MIT
- 解構賦值賦值
- vue scrollTop 無法賦值Vue賦值
- 【基礎語法】short、int、long轉為byte
- 查詢時LONG列追加資訊
- 使用copy命令解決LONG型別的困擾型別
- c# long?與long的轉化程式碼C#
- C++中的字元陣列逐個賦值時報錯的解決方法C++字元陣列賦值
- Long raw和Long型別總結型別
- JS解構賦值JS賦值
- 僅當指定列列表,且SET IDENTITY_INSERT為ON時,才能對自增列賦值IDE賦值
- php之普通變數賦值、物件賦值、引用賦值的區別PHP變數賦值物件
- 使用反射為特性賦值反射賦值
- Mybatis如何動態生成插入的列及批次插入值MyBatis
- Java long型別和Long型別的那些事Java型別
- swift中字串型資料對映為數值型資料的解決辦法Swift字串
- 變數的解構賦值變數賦值
- JavaScript解構賦值的用途JavaScript賦值
- 當long欄位在where條件裡的解決方案
- 給numpy陣列賦同樣的值陣列
- 常被新手忽略的值賦值和引用賦值(偏redux向)賦值Redux
- php7中為物件/關聯陣列進行解構賦值PHP物件陣列賦值
- Oracle long轉為varchar2Oracle
- php給$_POST賦值會導致值為空PHP賦值
- File name too long window和linux排查,解決Linux
- 變數的賦值 指標間接賦值變數賦值指標