“select * into 表2 from 表1与insert into 表2 select * from 表1”的区别,网上都有,第一种情况:表2可以不存在,自动创建并有数据;第二种情况:是表2必须得手动创建好。
但是我在PL/SQL工具中实验的时候,第二种情况是可以执行的,但是第一种情况,编译都通不过,报ORA-00905 missing keyword,为什么呢?
但是我在PL/SQL工具中实验的时候,第二种情况是可以执行的,但是第一种情况,编译都通不过,报ORA-00905 missing keyword,为什么呢?
select * into ccode1 from ccode
ORA-00905: 缺失关键字2.SQL> insert into ccode1 select * from ccode;
insert into ccode1 select * from ccode
ORA-00942: 表或视图不存在都不能执行
--oracle中有这样的写法?
--应该是这样吧
create table 表2 as select * from 表1
--表2不存在,执行下面的语句可以创建表2并将表1数据插入到表2中。
create table 表2 as select * from 表1;
--表2必须存在,且结构与表1相同
insert into 表2 select * from 表1;
--Oracle好像没有这种语法
select * into 表2 from 表1;
select * into 表2 from 表1;
这是SQLSERVER的语法
没有这种语法…
--mssql 的写法 直接复制表数据跟结构(前提表不存在)
select * into 表2 from 表1
---oracle 的写法 ---复制数据(前提表存在)
insert into 表2 select * from 表1”
是SQL的语法
这个“表2”理解为变量时,在 oracle 中就可以执行;
如果非要当做表来对待的话,这个变量的类型必须是复合类型,如:记录类型、表类型、嵌套表类型或VARRAY 类型。
楼主显然不是这个意思。他说的应该还是SQLServer/Sybase的语法。
create table NewTable as select * from emp;
create tabel ccode1 as select *from ccode;
create table 表2的名称 as
select * from 表1 where ……
对于insert into table2 select * from table1 这个语法不论是在oracle还是sql server中都可以执行,只要表结构相同就不会出错
对于select * into table2 from table1 对于oralce 是没有这样的语法的,但是在oracle的procedure中可以用select table2_column into variable_name from table2 这个是可以的,只是把table2中的一个字段的值赋值给了某一个变量,但是
select table2_column from table2 只能是查出一行一列
sql server中select * into table2 from table1 如果table2不存在就会自动创建一个,也不会报错
select * into 表2 from 表1-- 以下是 Oracle和SQL Server共用的语法
-- (在执行下面的语句前,表2必须存在,且其字段结构必须跟表1相同或兼容):
insert into 表2 select * from 表1
select * into 表2 from 表1-- 与上面语句等同的Oracle 的语法为:
create table 表1 as select * from 表2;-- 以下是 Oracle和SQL Server共用的语法
-- (在执行下面的语句前,表2必须存在,且其字段结构必须跟表1相同或兼容):
insert into 表2 select * from 表1