Oracle错误:ORA-00905:缺少关键字

20 sql oracle ora-00905

执行SQL行:

SELECT * 
  INTO assignment_20081120 
  FROM assignment ;
Run Code Online (Sandbox Code Playgroud)

针对oracle中的数据库备份一个名为assignment的表给出了以下ORACLE错误:ORA-00905:Missing keyword

Jus*_*ave 22

除非表中有一行ASSIGNMENT并且ASSIGNMENT_20081120是类型的本地PL/SQL变量,ASSIGNMENT%ROWTYPE否则这不是您想要的.

假设您正在尝试创建新表并将现有数据复制到该新表

CREATE TABLE assignment_20081120
AS
SELECT *
  FROM assignment
Run Code Online (Sandbox Code Playgroud)


Uwe*_*eim 6

首先,我想:

"...在Microsoft SQL Server中, SELECT...INTO自动创建新表,而Oracle似乎要求您在执行SELECT...INTO 语句之前手动创建它..."

但是在手动生成表后,它仍然无效,仍然显示"缺少关键字"错误.

所以我放弃了这个时间并首先通过手动创建表来解决它,然后使用"经典" SELECT语句:

INSERT INTO assignment_20081120 SELECT * FROM assignment;
Run Code Online (Sandbox Code Playgroud)

哪个按预期工作.如果有人想出如何以SELECT...INTO正确的方式使用它的解释,我会很高兴!

  • 解释只是`SELECT..INTO`是*PL/SQL*语法,而不是SQL - 它期望PL/SQL变量接受查询的结果. (5认同)