oracle所有的插入方法

首先准备表:

CREATE  TABLE  SEOrderq
(
    FID  NUMBER  (6)  not  null  primary  key, --内码
     FBillNo  VARCHAR2(100), --订单编号
    FDate  DATE, --制单日期
    Seq  NUMBER  (6) --顺序号
)
create sequence seq_seorderq
       minvalue 1  --最小值
       nomaxvalue --最大值
       start with 1 --起始值
       increment by 1  --增长基数
       nocycle  --不循环,一直增加
       nocache ;
create trigger tri_SEOrderq_ins 
       before insert on SEOrderq for each row  when (new.FID is null)
    begin 
      select seq_seorderq.nextval into:new.FID from dual;
    end;

1、插入语句写法一:

INSERT  INTO  SEOrderq (FBillNo,Fdate,Seq) VALUES( 'XM201501' , TO_date( '2015-1-22','yyyy-mm-dd') ,  '1' )

2、插入语句写法二

INSERT  INTO  SEOrderq  SELECT  seq_seorderq.nextval,'XM201505', to_date( '2015-1-22','yyyy-mm-dd'), '2' from dual

3、插入语句写法三:

INSERT  INTO  SEOrderq(FBillNo,Fdate,Seq) SELECT * FROM  (SELECT  'XM201507',to_date('2015-1-22','yyyy-mm-dd'),  '3' FROM dual 
          UNION  ALL  SELECT  'XM201508',to_date('2015-1-22','yyyy-mm-dd'),  '4' FROM dual 
          UNION  ALL  SELECT 'XM201509', to_date('2015-1-22','yyyy-mm-dd'),  '5' FROM dual )

4.插入方法4

INSERT ALL
  INTO   Teachers( Name , Sex , Mobile , BeginDate )  VALUES('王校长',  '',  '13049583918',  '2001-1-1')
  INTO   Teachers( Name , Sex , Mobile , BeginDate )  VALUES('大明',  '',  '12535834595',    '2013-5-7')
  INTO   Teachers( Name , Sex , Mobile , BeginDate )  VALUES('王校长',  '',  '13049583918',  '2001-1-1')
  INTO   Teachers( Name , Sex , Mobile , BeginDate )  VALUES    ('大白',  '',    '18395345036',  '2011-4-6')
SELECT Name , Sex , Mobile , BeginDate FROM Teachers1

总结:

  1.工作中常用的也就第一种和和第二种

原文地址:https://www.cnblogs.com/chenzhelove/p/13479791.html