由ORA-00997: illegal use of long datatype引發的血案之long轉換為lob之二
結論
1,long列不能直接遷移到另一個包含long列的表,否則會報錯:ORA-00997: illegal use of LONG datatype2,可採用間接方式:
構建一箇中間表,對應源表的long列為clob
把源表資料插入到中間表
然後再把中間表的資料插入到包含long列的目標表
3,即long-->clob--->long
4,可知long不能到long
clob相當牛比,可以與long非常靈活轉換資料,所以請以後大量採用lob列吧
測試
SQL> select * from v$version where rownum=1;
BANNER
----------------------------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
SQL> create table t_long1(a long);
Table created.
SQL> insert into t_long1 values(1);
1 row created.
SQL> commit;
Commit complete.
SQL> create table t_long1_bak as select * from t_long1;
create table t_long1_bak as select * from t_long1
*
ERROR at line 1:
ORA-00997: illegal use of LONG datatype
SQL> create table t_long1_bak(a clob);
Table created.
SQL> insert into t_long1_bak select to_lob(a) from t_long1;
1 row created.
SQL> commit;
Commit complete.
SQL> truncate table t_long1;
Table truncated.
SQL> insert into t_long1 select a from t_long1_bak;
1 row created.
SQL> commit;
Commit complete.
SQL> select * from t_long1;
A
--------------------------------------------------------------------------------
1
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-1823844/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 由ORA-00997: illegal use of long datatype引發的血案之long轉換為lob
- Long -> lob , to_lob 轉換,遷移
- oralce datatype-long
- long2varchar 把long轉換為varchar2
- Scala 將BigDecimal轉換為LongDecimal
- Oracle Long型別轉換為Clob型別Oracle型別
- 關於long型別的轉換型別
- c# long?與long的轉化程式碼C#
- ora-00997 非法使用LONG資料型別資料型別
- ORA-00997: 非法使用 LONG 資料型別資料型別
- LONG型別遷移到LOB型別(三)型別
- LONG型別遷移到LOB型別(二)型別
- LONG型別遷移到LOB型別(一)型別
- Oracle long轉為varchar2Oracle
- Flutter 中由 BuildContext 引發的血案FlutterUIContext
- long查詢結果轉換為varchar2型別型別
- long型別轉換成varchar2型別
- 一場由postcss-bem引發的血案CSS
- Java中long和Long有什麼區別 (轉載)Java
- 走進 JDK 之 LongJDK
- Long raw和Long型別總結型別
- Java long型別和Long型別的那些事Java型別
- 【基礎語法】short、int、long轉為byte
- linux的命令列解析引數之getopt_long函式使用Linux命令列函式
- 一個由line-height引發的血案與思考
- ORA-01461: 僅可以為插入 LONG 列的 LONG 值賦值”解決辦法賦值
- Your CPU does not support long mode.Use a 32bit distribution.
- 1.linux的命令列解析引數之getopt_long函式Linux命令列函式
- c++ 基本資料型別(int、float、double、long、long long)最大值,最小是表示方法C++資料型別
- 一場由AI引發的GPU血案,AMD還有機會嗎?AIGPU
- .Net版本引發的血案
- 操作LONG型別型別
- 斷點除錯之壓縮引發的血案斷點除錯
- 使用getopt_long()從命令列獲取引數命令列
- POJ2774Long Long Message(字尾陣列模板)陣列
- MongoDB Java開發從Mongo讀取Object值轉Long異常引起的資料型別轉換異常MongoDBJavaObject資料型別
- RestTemplate超時引發的血案REST
- JDBC亂碼引發的"血案"JDBC