当前位置: 首页 > 面试题库 >

ORA-00997的变通办法:非法使用LONG数据类型

呼延烈
2023-03-14
问题内容

我想将一些数据从系统表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>

在此处查看更多解决方法示例。



 类似资料:
  • 我正在尝试使用oracledb客户端从nodejs对oracle数据库执行查询,并得到“ORA-01036:非法变量名/编号”。我尝试了多种建议的方法来传递我的变量,但失败了。使用硬代码值的查询。 以下是我的示例代码: 获取"ORA-01036:非法变量名称/数字"或空结果

  • 我已经用“select*from person”测试过了,效果不错。我想得到一份名字以“a”开头的人的名单。这可能吗?

  • 我有下面的insert查询 每次我尝试运行此查询时,都会出现此错误 我做了一些研究,显然这意味着其中一个变量不在SQL语句中。对我来说不是这样,我检查了语句、数据库(oracle)表和所有绑定变量,它们都匹配。 错误上的行号将表明它是$driveable变量。我做了一个检查,这是被发送到页面罚款。 不知道还有什么地方可以看,所以任何帮助都会很好。

  • 请帮帮我 获取日期范围的数据时出错 错误 ora-01036非法变量名称/编号

  • 我有一个网格视图。它连接到一个SqlDataSource。我的数据库是Oracle。 当我运行网页时,选择command works,我会看到列表中的项目。单击“删除”按钮时,出现以下错误: ORA-01036:非法变量名称/数字 以下是我的GridView和SqlDataSource:

  • 问题内容: 从他的问题中很明显,他需要从任何数据类型转换为另一种类型。当我说“数据类型”在这里,我的意思是类型仅限于那些常用来代表原始数据:,,等。对于这个问题,我们可以考虑原语装箱的目的。 我想知道是否有任何API支持类型之间的转换,其中输入和输出都被概括为一组受支持的数据类型。我看了Apache Commons的beanutils.converters包 ,但是每个已知输入都有一个单独的转换器