您的位置:首页 > 数据库 > Oracle

sql: sybase与oracle中insert into select和select into的用法

2015-11-24 17:23 573 查看
1. sybase与oracle中insert into select和select into的用法 /article/4018488.html

Sybase

一、首先,我们来看一下insert into select语句

  其语法形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1。

  这里的要求就是Table2必须已经存在,如果不存在,系统则会提示对象无效。

  例如
insert into boy
select id,name
from person
where type='boy'
通过insert .... select ...语句,select的结果会被直接插入表boy中,并且每个插入操作都会被记录到事务日志之中。

  二、Sybase还提供了一种"select ... into"语句实现类似功能

  select into from 语句,该语法形式为:SELECT value1, value2 into Table2 from Table1。

  这里要求的是MyTable1不存在,因为在插入的时候,系统会自动创建MyTable1,如果之前MyTable1已经被创建,执行时会报错,系统就会提示已经存在表。

  就是因为这个特性,就会给我们带来很多的方便,首先,我如果只想要MyTable2表中的ID列的话那我只需要将ID列select出来,然后加入到新表中即可。那如果我想要MyTable2中的Name列,那我也仅仅是需要把Name列select出来,然后添加到新表中即可。

Oracle

 Oracle中insert into select和select into的用法(异常0RA-00905:missing keyword的解决)
两张表进行数据的拷贝,最常用的拷贝语句是:insert into select 和 select into from

但是请绝对的注意:
在Oracle中select into from不可以使用-----

  原因很简单:select into是PL/SQL language 的赋值语句!如果使用则Oracle会抛出0RA-00905:missing keyword的异常!
但是可以用create table select代替该功能!

-- PL/SQL language 中select into赋值语句的测试使用
create or replace procedure test1_prod
is
aa varchar2(100);
begin
select t1.testname into aa from test1 t1 where id=1;
dbms_output.put_line('t1.testname= '|| aa);
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: