我想将一些数据从系统表user_tab_cols保存到临时表,以便可以从中进行转储。
其中有100,000行,我从user_tab_cols中选择了约1,000条记录,并使用此查询将它们保存到临时表中:
create table temp table as select * from user_tab_cols where condition...
由于列DATA_DEFAULT包含long类型,因此出现错误“非法使用longtype”。
有没有其他方法可以将长类型存储到另一个表中?
ORA-00997:非法使用LONG数据类型
这是对 LONG* 数据类型的使用的 限制 。 您不能使用LONG属性创建对象类型。 * __
SQL> CREATE TABLE t AS SELECT data_default FROM user_tab_cols; CREATE TABLE t AS SELECT data_default FROM user_tab_cols * ERROR at line 1: ORA-00997: illegal use of LONG datatype SQL>
或者,您可以使用 TO_LOB 作为解决方法。将其转换为CLOB数据类型。
例如,
SQL> CREATE TABLE t AS SELECT TO_LOB(data_default) data_default FROM user_tab_cols; Table created. SQL> desc t; Name Null? Type ----------------------------------------- -------- ---------------------------- DATA_DEFAULT CLOB SQL>
在此处查看更多解决方法示例。