首页 > 解决方案 > 从语句中执行 select * into 返回错误

问题描述

有人可以帮助我吗?

我尝试在 Oracle 11 中执行以下命令,但出现此错误:

SQL 错误 [905] [42000]:ORA-00905:找不到关键字。

代码:

SELECT * 
INTO SAJ.ETMP_TESTE 
FROM SAJ.ESAJOBJETO O 
WHERE CDOBJETO = 'P800000000J03'

我阅读了 Oracle 文档,并没有在我的声明中发现任何明显的错误。

https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/selectinto_statement.htm

我的目标是创建ETMP_TESTE具有结构的表ESAJOBJETO

我检查了用户权限,并且用户有权操作。

标签: sqloracleoracle11g

解决方案


这将创建一个名为 ETMP_TESTE 的空表,具有 SAJ.EASJOBJETO 表的结构。

CREATE TABLE ETMP_TESTE AS
SELECT *
FROM SAJ.EASJOBJETO
WHERE 1 = 0;

这不处理约束和主键之类的东西,但它会给你表结构。1 = 0 确保没有数据被复制。

如果您需要主键等,请考虑为 EASJOBJETO 提取DDL。大多数 SQL IDE 都内置了该功能。您可以对其进行编辑以更正表名并运行脚本并获取所有内容。


推荐阅读