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

その後、インサートは正常に機能します。

挿入の後の / 文字により、各挿入が 2 回実行されます。セミコロンまたは / のいずれかで終了しますが、両方を終了することはできません。

于 2013-03-28T02:43:17.847 に答える