zoukankan      html  css  js  c++  java
  • sql: sybase与oracle中insert into select和select into的用法

    1. sybase与oracle中insert into select和select into的用法 http://wjlvivid.iteye.com/blog/1921679

    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;

  • 相关阅读:
    OSI安全体系结构
    PHP 二维数组根据相同的值进行合并
    Java实现 LeetCode 17 电话号码的字母组合
    Java实现 LeetCode 16 最接近的三数之和
    Java实现 LeetCode 16 最接近的三数之和
    Java实现 LeetCode 16 最接近的三数之和
    Java实现 LeetCode 15 三数之和
    Java实现 LeetCode 15 三数之和
    Java实现 LeetCode 15 三数之和
    Java实现 LeetCode 14 最长公共前缀
  • 原文地址:https://www.cnblogs.com/mylinux/p/4992244.html
Copyright © 2011-2022 走看看