我使用批處理file.sql文本中運行這些命令:SQL削減數據,同時複製表
COPY FROM user/[email protected] TO user/[email protected] CREATE table1 (cl1,cl2,cl3) USING SELECT cl1,cl2,cl3 where ...;
grant select on chema2.table1 to connect;
DISCONNECT
quit
EXIT
它複製表從一個數據庫Oracle 9到另一個數據。所有的作品都很好,但是奇怪的事情發生了,列cl2我只能得到39的長度。這個列的類型很長。任何想法在這裏有什麼不對?我怎樣才能改善這個表複製過程而不會丟失數據?
這很令人驚訝。我認爲數據類型LONG和LONG RAW根本不被支持。是否有可能發生某種類型的隱式轉換? Sqlplus COPY命令是一個很好的功能,但不幸的是它有一些限制,Oracle聲明它不再支持(擴展)。 – ibre5041
是的,這是一箇舊的數據庫,但我沒有選擇,我必須處理我有什麼。 – babboon
我剛查過文檔:'COPY'只支持這些數據類型:CHAR DATE,LONG,NUMBER,VARCHAR2。也可以從Thomas Kyte門戶網站(與LONG/LOB副本有關的問題)引用:使用LONGS(不是LONG RAWS),您也可以使用sqlplus copy命令。 – ibre5041