• 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;

  • 相关阅读:
    计算时代之大数据-分类阅读时代
    从语言到库到框架,再到API,再到标记最后到DSL语言
    Angular指令1
    宇宙量子计算理论
    Angular实现瀑布流的库angular-deckgrid
    Markdown会干掉Html吗?
    基于Html5缓存的页面P2P技术可行性探讨
    一个艰难的决定
    CentOS7 安装 MariaDB-10.4.7
    MongoDB-4 GridFS 文件存储
  • 原文地址:https://www.cnblogs.com/mylinux/p/4992244.html
Copyright © 2020-2023  润新知