执行SQL行:
SELECT *
INTO assignment_20081120
FROM assignment ;在oracle中备份一个名为assignment的表时,会出现以下ORACLE错误: ORA-00905:缺少关键字
发布于 2008-11-20 15:12:29
除非SQL表中只有一行,并且ASSIGNMENT_20081120是ASSIGNMENT%ROWTYPE类型的本地PL/ ASSIGNMENT变量,否则这不是您想要的结果。
假设您正在尝试创建一个新表,并将现有数据复制到该新表中
CREATE TABLE assignment_20081120
AS
SELECT *
FROM assignment发布于 2009-09-28 06:34:04
首先,我想:
"...In Microsoft SQL Server
SELECT...INTO会自动创建新表,而Oracle似乎要求您在执行SELECT...INTO语句之前手动创建它...“
但是在手动生成表之后,它仍然不起作用,仍然显示"missing keyword“错误。
因此,我放弃了这一次,通过首先手动创建表,然后使用“经典”SELECT语句来解决它:
INSERT INTO assignment_20081120 SELECT * FROM assignment;它的工作效果与预期一致。如果有人能就如何正确使用SELECT...INTO给出一个解释,我会很高兴的!
发布于 2009-09-28 10:51:32
可以在PLSQL块中使用select into,如下所示。
Declare
l_variable assignment%rowtype
begin
select *
into l_variable
from assignment;
exception
when no_data_found then
dbms_output.put_line('No record avialable')
when too_many_rows then
dbms_output.put_line('Too many rows')
end;仅当赋值中恰好有1行时,此代码才有效。通常,您将使用这种代码来选择由键编号标识的特定行。
Declare
l_variable assignment%rowtype
begin
select *
into l_variable
from assignment
where ID=<my id number>;
exception
when no_data_found then
dbms_output.put_line('No record avialable')
when too_many_rows then
dbms_output.put_line('Too many rows')
end;https://stackoverflow.com/questions/305568
复制相似问题