-4

手伝ってくれませんか?私は同じ問題を抱えており、それを修正することはできません

create table minimarketi (id number(6) constraint min_id_pk primary key
  , ime varchar2(40) not null
  , adresa varchar2(100)
  , grad varchar2(30)
  );

create table zahtjevi (id_minimarketa number(6)
  , rbr_zahtjeva number(6)
  , datum_izdavanja date
  , constraint zaht_pk primary key(id_minimarketa, rbr_zahtjeva)
  , constraint zaht_min_fk foreign key(id_minimarketa) references minimarketi(id)
  );

create table artikli (sifra number(6)
  , constraint art_sifra_pk primary key(sifra)
  , naziv varchar2(100) not null
  );

create table stavke_zahtjeva (id_minimarketa number(6)
  , rbr_zahtjeva number(6)
  , sifra_artikla number(6)
  , kolicina number(6) not null
  , constraint stavke_zahtjeva_pkl
       primary key(id_minimarketa, rbr_zahtjeva, sifra_artikla)
  , constraint stav_zaht_idrbr_fk
     foreign key(id_minimarketa, rbr_zahtjeva)
     references zahtjevi(id_minimarketa, rbr_zahtjeva)
  , constraint stav_art_fk 
     foreign key(sifra_artikla)
     references artikli(sifra)
  );

create table isporuke (rbr_isporuke number(6)
  , id_minimarketa number(6)
  , rbr_zahtjeva number(6)
  , datum izdavanja date
  , constraint isporuke_pk
      primary key(rbr_isporuke, id_minimarketa, rbr_zahtjeva)
  , constraint ispo_zaht_fk
       foreign key(id_minimarketa, rbr_zahtjeva)
       references zahtjevi(id_minimarketa, rbr_zahtjeva)
  );

このテーブルisporukeで私は907の問題を抱えていますか?

4

2 に答える 2

2

問題はこれと tableisporukeです。列のテーブルにスペースを作成しています。

あなたが持っている:

 datum izdavanja date, 

ただし、次のものが必要です。

 datum_izdavanja date, 

したがって、スクリプトは次のようになります。

create table isporuke 
(
  rbr_isporuke number(6), 
  id_minimarketa number(6), 
  rbr_zahtjeva number(6), 
  datum_izdavanja date, 
  constraint isporuke_pk primary key(rbr_isporuke, id_minimarketa, rbr_zahtjeva),
  constraint ispo_zaht_fk foreign key(id_minimarketa, rbr_zahtjeva) 
    references zahtjevi(id_minimarketa, rbr_zahtjeva)
);

デモで SQL Fiddle を参照してください

これは、各テーブルをスクリプトに個別に追加して、コンパイルできることを確認することで見つかりました。それぞれを個別に実行することで、動作しているコードを排除し、エラーを絞り込むことができます。

于 2013-01-16T22:17:52.213 に答える
1

これらの問題をデバッグする方法は次のとおりです。

まず、各ステートメントを 1 つずつ試してください。5 つの CREATE TABLE ステートメントをすべて試すのではなく、最初のステートメントを試して、成功するかどうかを確認してください。次に、次を試してください。あなたはそれを特定のステートメントに絞り込んでいます。

これで、括弧が欠落しているステートメントがわかりました。左括弧を見て、対応する右括弧がどこにあるかを確認します。あなたの考えと一致していますか?すべての開始括弧を調べて、一致する括弧を見つけます。最終的に、一致する閉じ括弧を持たない開き括弧が見つかります。

また、すべてが 1 行に収まらないようにコードをクリーンアップします。これをデバッグするのははるかに困難です:

create table minimarketi (id number(6) constraint min_id_pk primary key, ime varchar2(40) not null, adresa varchar2(100), grad varchar2(30));

しかし、次のようにフォーマットすると、はるかに見やすくなります。

create table minimarketi (
    id number(6) constraint min_id_pk primary key,
    ime varchar2(40) not null,
    adresa varchar2(100),
    grad varchar2(30)
);
于 2013-01-16T22:17:38.580 に答える