1

Oracleでテーブルを作成しています。

次の挿入を実行すると、コンマが見つからないエラーが発生し続けますが、表示されているものからコンマが欠落していません

INSERT INTO driver 
  (employee_no, first_name, last_name, ni_no, telephone, hazardous_goods)
VALUES 
  (122085,'Norris','Vasyutichev','EE 91 44 59 G',01809 7872896,07610 2265827,'Y');

でもで

INSERT INTO driver 
  (first_name, last_name, ni_no, hazardous_goods)
VALUES
  ('Norris','Vasyutichev','EE914459G','Y');

カンマが見つからないというエラーが表示されます

コマンド ラインのエラー:27 列:86
エラー レポート:
SQL エラー: ORA-00917: カンマ
がありません 00917. 00000 - "カンマがありません"

4

3 に答える 3

1

これを試して:

INSERT INTO driver 
  (employee_no, first_name, last_name, ni_no, telephone, hazardous_goods)
VALUES 
  (122085,'Norris','Vasyutichev','EE 91 44 59 G','01809 7872896, 07610 2265827','Y');

また、区切り文字としてカンマを使用して複数の電話番号を保存しようとしているようです。それを避けて、代わりにemployeePhoneNumbersという新しいテーブルを作成する必要があります。このようなもの:

CREATE TABLE employeePhoneNumbers
( 
    employee_no    INT,
    telephone      VARCHAR2(30)
);

employee_noに外部キー制約を追加します。

次に、電話番号ごとに新しいレコードを挿入します。

INSERT INTO employeePhoneNumbers(employee_no, telephone) VALUES (122085, '01809 7872896');
INSERT INTO employeePhoneNumbers(employee_no, telephone) VALUES (122085, '07610 2265827');

あなたはなぜこれをするのかと尋ねるかもしれませんか?データベースの正規化用。詳細はこちら:http ://www.informit.com/articles/article.aspx?p = 30646

于 2012-11-10T18:46:09.413 に答える
0

あなたは実際に数字の間にスペースを入れることによって逃しました、そしてそれはスペースなし"01809 7872896"であるはずですそしてこれはに。列リストと一致する場合。そうでない場合は、一重引用符で囲んで文字列に変更します。同様に、文字列としてコンマで区切られた電話番号のように見えるので、2番目の方法を実行する必要があると思います。"018097872896""07610 2265827""076102265827"'01809 7872896,07610 2265827'

乾杯

于 2012-11-10T18:46:23.783 に答える