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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 達夢資料庫資料型別的變更無效錯誤,如此解決妙啊資料庫資料型別
- 資料型別,變數資料型別變數
- SSIS 資料型別 第二篇:變數的資料型別資料型別變數
- 可變資料型別(mutable)與不可變資料型別(immutable)總結資料型別
- 強型別語言變數和資料型別的理解變數資料型別
- 分析 JavaScript 的資料型別與變數JavaScript資料型別變數
- 二、變數與資料型別變數資料型別
- python—資料型別和變數Python資料型別變數
- js基本語法之 值型別(資料型別)(變數型別)JS資料型別變數
- MyBatis - java.sql.SQLException: 無效的列型別: 1111MyBatisJavaSQLException型別
- Solidity-變數和資料型別[複合型別_1]Solid變數資料型別
- Java檢視變數資料型別Java變數資料型別
- JAVA-識別符號、變數、資料型別Java符號變數資料型別
- JavaScript中的變數、資料型別以及運算子JavaScript變數資料型別
- 大樓的基石 資料型別 變數與常量資料型別變數
- 1、變數和簡單資料型別變數資料型別
- C語言-變數常量資料型別C語言變數資料型別
- Go變數與基礎資料型別Go變數資料型別
- python:變數和簡單資料型別Python變數資料型別
- JavaScript變數與資料型別詳解JavaScript變數資料型別
- js資料型別之基本資料型別和引用資料型別JS資料型別
- 資料型別: 資料型別有哪些?資料型別
- Python基礎(一)可變與不可變資料型別Python資料型別
- Java中的基本資料型別與引用資料型別Java資料型別
- 說說 Python 的變數以及簡單資料型別Python變數資料型別
- 區別值型別資料和引用型別資料型別
- python教程1.2:變數+資料型別+運算子Python變數資料型別
- JAVASE——資料型別,變數定義及使用Java資料型別變數
- Java雜記1—資料型別和變數Java資料型別變數
- 資料型別是什麼?Python的資料型別又有哪些?資料型別Python
- MySQL 的資料型別MySql資料型別
- JS的資料型別JS資料型別
- javaScript的資料型別JavaScript資料型別
- 資料型別,型別轉換資料型別
- 學習變數的目的及基本資料型別介紹變數資料型別
- [打牢基礎系列]JavaScript的變數和資料型別JavaScript變數資料型別
- Java 支援的資料型別與 MySQL 支援的資料型別對比Java資料型別MySql
- 資料型別資料型別
- 修改全域性變數時,可變型別和不可變型別的區別變數型別