我使用批处理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