1

我对 SQL 很陌生,我正在尝试将一堆 INSERT 语句插入到表中。我正在使用 SQL Developer 和 Oracle 11g。

我的桌子:

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 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);
/

我也试过没有 / 。但它给了我同样的错误。我哪里错了?你能推荐一个好的教程/网站,我可以从中学习吗?

非常感谢!

4

2 回答 2

2

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

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;
于 2013-03-28T01:22:09.447 回答
0

我不确定您是如何成功执行该 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));

然后插入物按应有的方式进行。

插入后的 / 字符将导致每个插入执行两次。用分号或 / 终止它们,但不能同时使用两者。

于 2013-03-28T02:43:17.847 回答