使用copy命令解決LONG型別的困擾
在oracle的資料型別中,long型別算是一個比較另類的典型,早就不建議使用了,但是在資料字典裡還是能看到long 型別的影子。
如果在一些工作中碰到long type就讓人感覺long 型別像是被封殺了,會碰到不少的問題。
比如資料字典user_constraints中包含了long型別的列。
SQL> desc user_constraints
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER VARCHAR2(30)
CONSTRAINT_NAME NOT NULL VARCHAR2(30)
CONSTRAINT_TYPE VARCHAR2(1)
TABLE_NAME NOT NULL VARCHAR2(30)
SEARCH_CONDITION LONG
R_OWNER VARCHAR2(30)
R_CONSTRAINT_NAME VARCHAR2(30)
DELETE_RULE VARCHAR2(9)
STATUS VARCHAR2(8)
DEFERRABLE VARCHAR2(14)
DEFERRED VARCHAR2(9)
VALIDATED VARCHAR2(13)
GENERATED VARCHAR2(14)
BAD VARCHAR2(3)
RELY VARCHAR2(4)
LAST_CHANGE DATE
INDEX_OWNER VARCHAR2(30)
INDEX_NAME VARCHAR2(30)
INVALID VARCHAR2(7)
VIEW_RELATED VARCHAR2(14)
如果我們要建立一個表,存放user_constraints裡的資料,就會碰一鼻子灰。
SQL> create table test2 as select *from user_constraints;
create table test2 as select *from user_constraints
*
ERROR at line 1:
ORA-00997: illegal use of LONG datatype
這個錯誤的解釋如下:
SQL> !oerr ora 00097
00097, 00000, "use of Oracle SQL feature not in SQL92 %s Level"
// *Cause: Usage of Oracle's SQL extensions.
// *Action:
對於long型別,倒是有提供一個包來做long型別的轉換。如果只是簡單的資料,使用包就感覺有些麻煩了。
使用exp/imp貌似是一種方式,不過話說過來,如果沒有建立好test_test這個表的話,exp/imp也是無計可施。
如果那個Long列不需要的話,還可以在sql語句裡把列名都一一列上,當然這方法就有些體力活了。
如果想快速複製資料而且不希望sql命令太複雜,可以考慮copy命令。
SQL> copy from n1/n1@testdb -
> to n1/n1@testd -
> create test_test -
> using select *from user_constraints
Array fetch/bind size is 15. (arraysize is 15)
Will commit when done. (copycommit is 0)
Maximum long size is 80. (long is 80)
Table TEST_TEST created.
20 rows selected from n1@testd .
20 rows inserted into TEST_TEST.
20 rows committed into TEST_TEST at n1@testdb.
SQL> desc test_test
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER VARCHAR2(30)
CONSTRAINT_NAME NOT NULL VARCHAR2(30)
CONSTRAINT_TYPE VARCHAR2(1)
TABLE_NAME NOT NULL VARCHAR2(30)
SEARCH_CONDITION LONG
R_OWNER VARCHAR2(30)
R_CONSTRAINT_NAME VARCHAR2(30)
DELETE_RULE VARCHAR2(9)
STATUS VARCHAR2(8)
DEFERRABLE VARCHAR2(14)
DEFERRED VARCHAR2(9)
VALIDATED VARCHAR2(13)
GENERATED VARCHAR2(14)
BAD VARCHAR2(3)
RELY VARCHAR2(4)
LAST_CHANGE DATE
INDEX_OWNER VARCHAR2(30)
INDEX_NAME VARCHAR2(30)
INVALID VARCHAR2(7)
VIEW_RELATED VARCHAR2(14)
如果在一些工作中碰到long type就讓人感覺long 型別像是被封殺了,會碰到不少的問題。
比如資料字典user_constraints中包含了long型別的列。
SQL> desc user_constraints
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER VARCHAR2(30)
CONSTRAINT_NAME NOT NULL VARCHAR2(30)
CONSTRAINT_TYPE VARCHAR2(1)
TABLE_NAME NOT NULL VARCHAR2(30)
SEARCH_CONDITION LONG
R_OWNER VARCHAR2(30)
R_CONSTRAINT_NAME VARCHAR2(30)
DELETE_RULE VARCHAR2(9)
STATUS VARCHAR2(8)
DEFERRABLE VARCHAR2(14)
DEFERRED VARCHAR2(9)
VALIDATED VARCHAR2(13)
GENERATED VARCHAR2(14)
BAD VARCHAR2(3)
RELY VARCHAR2(4)
LAST_CHANGE DATE
INDEX_OWNER VARCHAR2(30)
INDEX_NAME VARCHAR2(30)
INVALID VARCHAR2(7)
VIEW_RELATED VARCHAR2(14)
如果我們要建立一個表,存放user_constraints裡的資料,就會碰一鼻子灰。
SQL> create table test2 as select *from user_constraints;
create table test2 as select *from user_constraints
*
ERROR at line 1:
ORA-00997: illegal use of LONG datatype
這個錯誤的解釋如下:
SQL> !oerr ora 00097
00097, 00000, "use of Oracle SQL feature not in SQL92 %s Level"
// *Cause: Usage of Oracle's SQL extensions.
// *Action:
對於long型別,倒是有提供一個包來做long型別的轉換。如果只是簡單的資料,使用包就感覺有些麻煩了。
使用exp/imp貌似是一種方式,不過話說過來,如果沒有建立好test_test這個表的話,exp/imp也是無計可施。
如果那個Long列不需要的話,還可以在sql語句裡把列名都一一列上,當然這方法就有些體力活了。
如果想快速複製資料而且不希望sql命令太複雜,可以考慮copy命令。
SQL> copy from n1/n1@testdb -
> to n1/n1@testd -
> create test_test -
> using select *from user_constraints
Array fetch/bind size is 15. (arraysize is 15)
Will commit when done. (copycommit is 0)
Maximum long size is 80. (long is 80)
Table TEST_TEST created.
20 rows selected from n1@testd .
20 rows inserted into TEST_TEST.
20 rows committed into TEST_TEST at n1@testdb.
SQL> desc test_test
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER VARCHAR2(30)
CONSTRAINT_NAME NOT NULL VARCHAR2(30)
CONSTRAINT_TYPE VARCHAR2(1)
TABLE_NAME NOT NULL VARCHAR2(30)
SEARCH_CONDITION LONG
R_OWNER VARCHAR2(30)
R_CONSTRAINT_NAME VARCHAR2(30)
DELETE_RULE VARCHAR2(9)
STATUS VARCHAR2(8)
DEFERRABLE VARCHAR2(14)
DEFERRED VARCHAR2(9)
VALIDATED VARCHAR2(13)
GENERATED VARCHAR2(14)
BAD VARCHAR2(3)
RELY VARCHAR2(4)
LAST_CHANGE DATE
INDEX_OWNER VARCHAR2(30)
INDEX_NAME VARCHAR2(30)
INVALID VARCHAR2(7)
VIEW_RELATED VARCHAR2(14)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8494287/viewspace-1347107/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Long型別的資料,利用COPY命令遷移型別
- 解決Python執行命令時路徑空格引發的困擾Python
- Java long型別和Long型別的那些事Java型別
- 解決Myeclipse ctrl+h帶來的困擾Eclipse
- Redux 的困擾與如何技術選型Redux
- 困擾Chrome使用者多年的大問題,終於要解決了!Chrome
- oracle裡long型別詳解Oracle型別
- 操作LONG型別型別
- int型別和long long型別運算執行時間的差別型別
- Long raw和Long型別總結型別
- 區塊鏈溯源落地應用,追根溯源解決困擾區塊鏈
- 智慧醫療正逐步解決醫療資源短缺困擾
- Go 1.18 泛型的一些技巧和困擾Go泛型
- LONG型別複製型別
- long型別相關型別
- LONG型別遷移到LOB型別(三)型別
- LONG型別遷移到LOB型別(二)型別
- LONG型別遷移到LOB型別(一)型別
- 私有化部署chatGPT,告別網路困擾ChatGPT
- Oracle Long型別轉換為Clob型別Oracle型別
- 關於long型別的轉換型別
- oracle裡long型別的總結Oracle型別
- long型別資料的擷取型別
- 困擾javascript初學者的閉包JavaScript
- Java最困擾你的那些事Java
- 資料庫設計的困擾資料庫
- MySQL 8.0能徹底解決困擾運維的複製延遲問題!MySql運維
- 困擾著企業的5個大資料誤解大資料
- windows copy命令詳解Windows
- 阿里雲PCDN新亮點 自動呼叫HTTPDNS 解決域名劫持困擾阿里httpdDNS
- SQL中copy命令使用SQL
- ora-00997 非法使用LONG資料型別資料型別
- ORA-00997: 非法使用 LONG 資料型別資料型別
- 測試Java中的long,int基本型別Java型別
- 【String註解驅動開發】困擾了我很久的AOP巢狀呼叫終於解決了!巢狀
- 轉---讓指標不再困擾你指標
- LONG RAW的欄位型別不能使用impdp + dblink遷移型別
- PLSQL Language Reference-PL/SQL資料型別-SQL資料型別-LONG和LONG RAW變數SQL資料型別變數