0
SQL> insert into patient
2  values('&pno','&pname','&title',&dob,&children,'&gp');
Enter value for pno: p3
Enter value for pname: mansell
Enter value for title: mr
Enter value for dob: 23-may-61
Enter value for children: 2
Enter value for gp: Dr.Williams
old   2: values('&pno','&pname','&title',&dob,&children,'&gp')
new   2: values('p3','mansell','mr',23-may-61,2,'Dr.Williams')
values('p3','mansell','mr',23-may-61,2,'Dr.Williams')

ERROR at line 2:
ORA-00984: column not allowed here

これは以前は機能していました。私はそれを機能させる方法を本当に理解していません。

4

3 に答える 3

2

このエラーは、ほぼ確実に列が原因で発生しますdob。日付や日付リテラルを挿入するのではなく、列名として解釈されるランダムな文字列を挿入します。

原則として、常に明示的に日付を日付に変換します

SQL * Plusには2つのオプションがあり、 ANSI日付リテラルを挿入できます

insert into patient (dob)
values ( date '&dob')

ここ&dobで、はの形式YYYY-MM-DDです。

関数を使用して、列を日付に明示的に変換することもできto_dateます。

insert into patient (dob)
values ( to_date('&dob','yyyy-mm-dd'))

ここ&dobで、はの形式yyyy-mm-ddです。これは日時形式として知られています-モデルには、いろいろと試してみることができる長いリストがあります。

dobこれはすべて、列が日付であることを前提としています。そうでない場合は、1つに変更してください。日付を文字列として保存する手間をかける価値はありません。常に世紀も明示的に保存することを強くお勧めします。オラクルは、あなたが2067年と1967年のどちらについて話しているのかをどのように知るのですか?

Guffaの回答は、質問の複数行の要素を処理します。

于 2012-08-26T13:00:15.400 に答える
0

セミコロンでクエリを終了すると、クエリへの追加を続行できなくなります。

valueの後にステートメントを追加することはできませんinsertが、次を使用できますinsert all

insert all
into patient values('&pno','&pname','&title',&dob,&children,'&gp')
into patient values('&pno','&pname','&title',&dob,&children,'&gp')
into patient values('&pno','&pname','&title',&dob,&children,'&gp')
select * from dual;

(おそらく、行ごとに異なるパラメーター名が必要になります。)

select:から挿入することもできます

insert into patient
select '&pno','&pname','&title',&dob,&children,'&gp' from dual
union all
select '&pno','&pname','&title',&dob,&children,'&gp' from dual
union all
select '&pno','&pname','&title',&dob,&children,'&gp' from dual;

参照:http ://docs.oracle.com/cd/B13789_01/server.101/b10759/statements_9014.htm#SQLRF01604

于 2012-08-26T11:54:30.790 に答える
0

ORA-00984エラー

このエラーは、INSERTステートメントのVALUES句に列名を含めようとしたときに最も一般的に発生します。

それで

挿入した値とテーブルの列名をチェックして、同じものがないことを確認できます。

参照

http://www.techonthenet.com/oracle/errors/ora00984.php

于 2012-08-26T11:46:33.943 に答える