oracle匯入TYPE物件報錯ORA 02304

2021-09-26 09:14:57 字數 1212 閱讀 9088

type是我們經常使用的資料庫物件結構。我們在實際中,可以單獨定義type型別,之後在pl/sql**或者資料表中使用。

在乙個偶然的機會讓筆者發現使用type型別在資料exp/imp中的麻煩。當我們使用exp/imp工具進行同資料庫例項(instance)不同schema之間資料拷貝時,如果schema中有type型別,就會出現問題錯誤。

如下:

imp-00003: 遇到 oracle 錯誤 2304

ora-02304: 無效的物件識別符號文字

imp-00017: 由於 oracle 錯誤 2304, 以下語句失敗:

"create type "t_rec_table" timestamp '2010-12-21:18:17:33' oid 'd9afd3fae0a5"

"4964b1684ca28c69ceed' as table of t_rec_test;"

"" ""

imp-00003: 遇到 oracle 錯誤 2304

ora-02304: 無效的物件識別符號文字

imp-00017: 由於 oracle 錯誤 2304, 以下語句失敗:

"create type "t_typ" timestamp '2012-03-07:10:47:03' oid '8e294ab7cc28493a94"

"ff82791a376379' as object (id number);"

對於create type失敗,可在匯入命令中末尾加上transform=oid:n

可以參考下面的說明。

大意就是說如果transform引數設定成oid=n,表示在imp的時候,新建立的表或這個型別會賦予新的oid,而不是dmp檔案中包含的oid的值。但是這個引數的預設值是oid=y,因此在進行imp的時候,新建立的表或者type會賦予同樣的oid,如果是位於同乙個資料庫上的不同schema,那就會造成oid衝突的問題,因此解決這個問題也很簡單,只需要在impdp的時候,顯示設定transform 引數為oid=n既可以了。如下所示,

(cmd> impdp test/test directory=dump_dir dumpfile=dump.dmp logfile=dump.log remap_schema=frank:testtransform=oid:n

Oracle物件型別 TYPE 之MEMBER

oracle物件型別包括物件型別規範和物件型別體兩部分。物件型別可以更好的體現oracle的資料庫中設計的物件導向的概念。物件型別有很多固有的方法供我們使用,比如 member static map order,當然可以自定義構造方法。今天我就以member為例,希望起到拋磚引玉的作用。member...

Oracle資料庫匯入報ORA 39083處理

故障描述 報錯資訊 ora 39083 物件型別 default role 建立失敗,出現錯誤 ora 01919 角色 role emsp 不存在 失敗的 sql 為 alter user bfpub mall default role connect role emsp 解決方案 既然匯入的時候...

jquery判斷物件的type

利用object.tostring.call 方法 看 先初始化class2type,將每種物件的tostring後的值和type建立對應關係 core tostring.call 輸出 object array class2type core tostring class2type.tostrin...