ORA-22858: 資料型別的變更無效
今天在專案中需要更改一個欄位型別,由varchar2改為blob,碰到了ORA-22858錯誤。後來透過先刪後建的方式,曲線救國,具體過程如下:
1.建立測試表HOEGH
2.修改欄位LOC型別報錯
3.刪除原有欄位LOC,新建blob欄位
疑問:
1.上述解決方案,被修改列的資料全部丟失,如果要保留資料,又該如何處理呢?
2.後來試了其他資料型別,例如,number型別改為blob型別也報錯,不明白其中深層次的原因,還請路過的不吝賜教。
1.建立測試表HOEGH
點選(此處)摺疊或開啟
-
SQL>
-
SQL> create table HOEGH(id number,name varchar2(30),loc varchar2(30));
-
-
Table created
-
-
SQL> insert into HOEGH values(1,\'Sun\',\'Huaguoshan\');
-
-
1 row inserted
-
-
SQL> insert into HOEGH values(2,\'Zhu\',\'Gaolaozhuang\');
-
-
1 row inserted
-
-
SQL> insert into HOEGH values(3,\'Sha\',\'Liushahe\');
-
-
1 row inserted
-
-
SQL> commit;
-
-
Commit complete
-
-
SQL>
-
SQL> select * from hoegh;
-
-
ID NAME LOC
-
---------- ------------------------------ ------------------------------
-
1 Sun Huaguoshan
-
2 Zhu Gaolaozhuang
-
3 Sha Liushahe
-
- SQL>
2.修改欄位LOC型別報錯
點選(此處)摺疊或開啟
-
SQL>
-
SQL> desc hoegh
-
Name Type Nullable Default Comments
-
---- ------------ -------- ------- --------
-
ID NUMBER Y
-
NAME VARCHAR2(30) Y
-
LOC VARCHAR2(30) Y
-
-
SQL>
-
SQL> alter table hoegh modify(loc blob);
-
-
alter table hoegh modify(loc blob)
-
-
ORA-22858: 資料型別的變更無效
-
- SQL>
3.刪除原有欄位LOC,新建blob欄位
點選(此處)摺疊或開啟
-
SQL> alter table hoegh drop column loc;
-
-
Table altered
-
-
SQL> alter table hoegh add loc blob;
-
-
Table altered
-
-
SQL> desc hoegh
-
Name Type Nullable Default Comments
-
---- ------------ -------- ------- --------
-
ID NUMBER Y
-
NAME VARCHAR2(30) Y
-
LOC BLOB Y
-
- SQL>
疑問:
1.上述解決方案,被修改列的資料全部丟失,如果要保留資料,又該如何處理呢?
2.後來試了其他資料型別,例如,number型別改為blob型別也報錯,不明白其中深層次的原因,還請路過的不吝賜教。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30162081/viewspace-1518456/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料型別,變數資料型別變數
- 可變資料型別(mutable)與不可變資料型別(immutable)總結資料型別
- SSIS 資料型別 第二篇:變數的資料型別資料型別變數
- 強型別語言變數和資料型別的理解變數資料型別
- SQL引數資料型別text對於replace函式的引數1無效SQL資料型別函式
- lob欄位型別轉換ora-22858型別
- 二、變數與資料型別變數資料型別
- js基本語法之 值型別(資料型別)(變數型別)JS資料型別變數
- 分析 JavaScript 的資料型別與變數JavaScript資料型別變數
- JS的資料型別和變數(轉)JS資料型別變數
- 引數資料型別 sql_variant 對於 like 函式的引數 1 無效。資料型別SQL函式
- python—資料型別和變數Python資料型別變數
- Java檢視變數資料型別Java變數資料型別
- Mysql 基礎資料型別(無時間相關型別)MySql資料型別
- Solidity-變數和資料型別[複合型別_1]Solid變數資料型別
- JAVA-識別符號、變數、資料型別Java符號變數資料型別
- JavaScript中的變數、資料型別以及運算子JavaScript變數資料型別
- 大樓的基石 資料型別 變數與常量資料型別變數
- js資料型別之基本資料型別和引用資料型別JS資料型別
- JavaScript變數與資料型別詳解JavaScript變數資料型別
- Go變數與基礎資料型別Go變數資料型別
- C語言-變數常量資料型別C語言變數資料型別
- 探索c#之不可變資料型別C#資料型別
- 1、變數和簡單資料型別變數資料型別
- oracle如何變更varchar2型別的列為clobOracle型別
- 資料型別: 資料型別有哪些?資料型別
- PLSQL Language Reference-PL/SQL資料型別-SQL資料型別-LONG和LONG RAW變數SQL資料型別變數
- Java中的基本資料型別與引用資料型別Java資料型別
- 強資料型別和弱資料型別資料型別
- MyBatis - java.sql.SQLException: 無效的列型別: 1111MyBatisJavaSQLException型別
- 區別值型別資料和引用型別資料型別
- JAVASE——資料型別,變數定義及使用Java資料型別變數
- python:變數和簡單資料型別Python變數資料型別
- Java雜記1—資料型別和變數Java資料型別變數
- Python基礎(一)可變與不可變資料型別Python資料型別
- 資料變更通知的一種方案
- PLSQL Language Reference-PL/SQL資料型別-SQL資料型別-ROWID和UROWID變數SQL資料型別變數
- PLSQL Language Reference-PL/SQL資料型別-SQL資料型別-CHAR和VARCHAR2變數SQL資料型別變數