【发布时间】:2012-08-07 04:36:24
【问题描述】:
我遇到了SQL SELECT INTO 语句,用于创建新表并将旧表记录转储到单个 SQL 语句中的新表中
SELECT * INTO NEW_TABLE FROM OLD_TABLE;
但是当我尝试上述查询时,它给出的错误为ORA-00905: missing keyword
在 ORACLE 中可以做到吗?
谢谢。
【问题讨论】:
标签: sql oracle select create-table
我遇到了SQL SELECT INTO 语句,用于创建新表并将旧表记录转储到单个 SQL 语句中的新表中
SELECT * INTO NEW_TABLE FROM OLD_TABLE;
但是当我尝试上述查询时,它给出的错误为ORA-00905: missing keyword
在 ORACLE 中可以做到吗?
谢谢。
【问题讨论】:
标签: sql oracle select create-table
新建表的语法是
CREATE TABLE new_table
AS
SELECT *
FROM old_table
这将创建一个名为new_table 的新表,其中包含old_table 中的任何列,并将数据复制过来。它不会复制表上的约束,不会复制存储属性,也不会复制表上定义的任何触发器。
SELECT INTO 用于 PL/SQL 中,当您想要从表中获取数据到 PL/SQL 块中的局部变量时。
【讨论】:
create table as .. 是标准 SQL,几乎所有 DBMS 都支持。甚至有些人使用 SELECT INTO 创建新表。