只执行最后一条插入语句



我是相当新的SQL,我试图插入一堆insert语句到表中。我正在使用SQL Developer和Oracle 11g。

My tables:

CREATE OR REPLACE TYPE friendlist AS VARRAY(20) OF VARCHAR2(50);
/
create or replace type table fbuser(fbid varchar(10) not null enable,firstname varchar(30),lastname varchar(30),dob
date,birthcity varchar(30),birthstate varchar(25),friends friendlist,primary key(fbid));
/

和insert语句:

insert into fbuser values('f1','abhinav','cheatham',to_date('01-jul-1969','dd-mon-yyyy'),'lake city','fl',friendlist('f2','f7','f9'));
/
insert into fbuser values('f2','abhishek','deponto',to_date('05-feb-1984','dd-mon-yyyy'),'adak','ak',friendlist('f1','f6','f9','f16','f18'));
/
insert into fbuser values('f3','aldrich','chapel',to_date('27-may-1988','dd-mon-yyyy'),'vernon hills','il',null);
/

我也试过不用/。但误差是一样的。我哪里做错了?你能给我推荐一个好的教程/网站吗?

非常感谢!

可以使用以下语法插入多行:

INSERT ALL
  INTO mytable (column1, column2, column3) VALUES ('val1.1', 'val1.2', 'val1.3')
  INTO mytable (column1, column2, column3) VALUES ('val2.1', 'val2.2', 'val2.3')
  INTO mytable (column1, column2, column3) VALUES ('val3.1', 'val3.2', 'val3.3')
SELECT NULL FROM DUAL;

我不确定你是如何能够成功地执行CREATE TABLE语句-它在我的系统(11gR2)上的语法无效。我的运气比较好:

create table fbuser(fbid varchar2(10) not null enable
     , firstname varchar2(30), lastname varchar2(30), dob date
     , birthcity varchar2(30), birthstate varchar2(25)    
     , friends friendlist, primary key (fbid));

然后插入到它们应该去的地方。

插入后的/字符将导致每次插入执行两次。以分号或/结束,但不能两者都用。

最新更新