2016-11-06 28 views
-3

残りの部分に外部キーを使用して3つのテーブル2を作成しようとしています。私はテーブルにデータを挿入しようとするとエラーコードが出てくるので、テーブルを作成してそこに修正しようとしました。次のようにコードは次のとおりです。すべてのヘルプは素晴らしいのおかげだろうSQL無効な識別子コード

SQL> 
SQL> 
SQL> -- All the DROP TABLE in the beginning. 
SQL> 
SQL> DROP TABLE movie CASCADE CONSTRAINTS; 
DROP TABLE movie CASCADE CONSTRAINTS 
      * 
ERROR at line 1: 
ORA-00942: table or view does not exist 


SQL> DROP TABLE companies CASCADE CONSTRAINTS; 
DROP TABLE companies CASCADE CONSTRAINTS 
      * 
ERROR at line 1: 
ORA-00942: table or view does not exist 


SQL> DROP TABLE producer CASCADE CONSTRAINTS; 
DROP TABLE producer CASCADE CONSTRAINTS 
      * 
ERROR at line 1: 
ORA-00942: table or view does not exist 


SQL> 
SQL> -- Creates Table CUSTOMER. 
SQL> 
SQL> CREATE TABLE CUSTOMER (
    2 cust_ID NUMBER(10), 
    3 last_name VARCHAR2(20) NOT NULL, 
    4 first_name VARCHAR2(20) NOT NULL, 
    5 MI VARCHAR2(1) NOT NULL, 
    6 street VARCHAR2(30) NOT NULL, 
    7 city VARCHAR2(30) NOT NULL, 
    8 state VARCHAR2(30) NOT NULL, 
    9 zip_code VARCHAR2(20) NOT NULL, 
10 CONSTRAINT customer_pk PRIMARY KEY(cust_ID)); 
CREATE TABLE CUSTOMER (
      * 
ERROR at line 1: 
ORA-00955: name is already used by an existing object 


SQL> 
SQL> -- Creates Table SALE_VEHICLE. 
SQL> 
SQL> CREATE TABLE SALE_VEHICLE (
    2 VIN NUMBER(20), 
    3 trade_ID NUMBER(10), 
    4 make VARCHAR2(30) NOT NULL, 
    5 model VARCHAR2(30) NOT NULL, 
    6 type VARCHAR2(30) NOT NULL, 
    7 where_frome VARCHAR2(30) NOT NULL, 
    8 wholesale_cost NUMBER(8,2)NOT NULL, 
    9 CONSTRAINT producer_pk PRIMARY KEY(VIN)); 
CREATE TABLE SALE_VEHICLE (
      * 
ERROR at line 1: 
ORA-00955: name is already used by an existing object 


SQL> 
SQL> 
SQL> -- Creates Table SALE. 
SQL> 
SQL> CREATE TABLE SALE (
    2 sale_ID NUMBER(6), 
    3 cust_ID NUMBER(10), 
    4 salesperson_ID NUMBER(10), 
    5 VIN NUMBER(20), 
    6 date DATE NOT NULL, 
    7 vehicle_status VARCHAR2(20) NOT NULL, 
    8 milage VARCHAR2(20) NOT NULL, 
    9 gross_sale_price NUMBER(8,2)NOT NULL, 
10 CONSTRAINT sale_pk PRIMARY KEY(sale_ID)) 
11 CONSTRAINT customers_fk2 FOREIGN KEY(cust_ID) REFERENCES CUSTOMER(cust_ID)) 
12 CONSTRAINT VIN_fk FOREIGN KEY(VIN) REFERENCES SALE_VEHICLE(VIN)); 
date DATE NOT NULL, 
* 
ERROR at line 6: 
ORA-00904: : invalid identifier 


SQL> 
SQL> -- spool off command to turn off the spool with it you may not get the all the content spooled. 
SQL> 
SQL> set echo off 

-- Spool the execution output to a text file. This spooled file serves as logs. 
spool on 
spool hw2.lst 
set echo on 


-- All the DROP TABLE in the beginning. 

DROP TABLE movie CASCADE CONSTRAINTS; 
DROP TABLE companies CASCADE CONSTRAINTS; 
DROP TABLE producer CASCADE CONSTRAINTS; 

-- Creates Table CUSTOMER. 

CREATE TABLE CUSTOMER (
cust_ID NUMBER(10), 
last_name VARCHAR2(20) NOT NULL, 
first_name VARCHAR2(20) NOT NULL, 
MI VARCHAR2(1) NOT NULL, 
street VARCHAR2(30) NOT NULL, 
city VARCHAR2(30) NOT NULL, 
state VARCHAR2(30) NOT NULL, 
zip_code VARCHAR2(20) NOT NULL, 
CONSTRAINT customer_pk PRIMARY KEY(cust_ID)); 

-- Creates Table SALE_VEHICLE. 

CREATE TABLE SALE_VEHICLE (
VIN NUMBER(20), 
trade_ID NUMBER(10), 
make VARCHAR2(30) NOT NULL, 
model VARCHAR2(30) NOT NULL, 
type VARCHAR2(30) NOT NULL, 
where_frome VARCHAR2(30) NOT NULL, 
wholesale_cost NUMBER(8,2)NOT NULL, 
CONSTRAINT producer_pk PRIMARY KEY(VIN)); 


-- Creates Table SALE. 

CREATE TABLE SALE (
sale_ID NUMBER(6), 
cust_ID NUMBER(10), 
salesperson_ID NUMBER(10), 
VIN NUMBER(20), 
date DATE NOT NULL, 
vehicle_status VARCHAR2(20) NOT NULL, 
milage VARCHAR2(20) NOT NULL, 
gross_sale_price NUMBER(8,2)NOT NULL, 
CONSTRAINT sale_pk PRIMARY KEY(sale_ID)) 
CONSTRAINT customers_fk2 FOREIGN KEY(cust_ID) REFERENCES CUSTOMER(cust_ID)) 
CONSTRAINT VIN_fk FOREIGN KEY(VIN) REFERENCES SALE_VEHICLE(VIN)); 

-- spool off command to turn off the spool with it you may not get the all the content spooled. 

set echo off 
spool off 

これは、私は、SQLファイルを実行しようとした後にエコーされているものです。

+0

。テーブルCustomer、Sale_Vehicle、Saleを作成し、顧客がすでに存在することを伝えます。なぜ作成していないテーブルをドロップするのですか?作成しているテーブルをドロップしないのはなぜですか?列名に 'date'というキーワードを使用してもうまくいきません。それを「区切り識別子」(二重引用符で囲むか、角括弧などのプラットフォーム固有の代替)でマークするか、別の名前を使用する必要があります。 –

+0

DB Case Insensitiveを設定しましたか? createコマンドのテーブル名は大文字で、DROPは小文字です。これがあなたの問題であるかどうかはわかりませんが、試してみる価値があります。 – FDavidov

+0

私のクラスでは、私は教授を取っているので、スクリプトを実行するたびにエラーメッセージテーブルが存在しないように、テーブルを削除することは良い習慣であると言います。 –

答えて

0

私はここでそれを考え出したが答えです:あなたは、テーブルの作品、会社、プロデューサーをドロップ

-- Spool the execution output to a text file. This spooled file serves as logs. 
spool on 
spool hw2.lst 
set echo on 


-- All the DROP TABLE in the beginning. 

DROP TABLE CUSTOMER CASCADE CONSTRAINTS; 
DROP TABLE SALE_VEHICLE CASCADE CONSTRAINTS; 
DROP TABLE SALE CASCADE CONSTRAINTS; 

-- Creates Table CUSTOMER. 

CREATE TABLE CUSTOMER (
cust_ID NUMBER(10), 
last_name VARCHAR2(20) NOT NULL, 
first_name VARCHAR2(20) NOT NULL, 
MI VARCHAR2(1) NOT NULL, 
street VARCHAR2(30) NOT NULL, 
city VARCHAR2(30) NOT NULL, 
state VARCHAR2(30) NOT NULL, 
zip_code VARCHAR2(20) NOT NULL, 
CONSTRAINT customer_pk PRIMARY KEY(cust_ID)); 

-- Creates Table SALE_VEHICLE. 

CREATE TABLE SALE_VEHICLE (
VIN NUMBER(20), 
trade_ID NUMBER(10), 
make VARCHAR2(30) NOT NULL, 
model VARCHAR2(30) NOT NULL, 
type VARCHAR2(30) NOT NULL, 
where_frome VARCHAR2(30) NOT NULL, 
wholesale_cost NUMBER(8,2)NOT NULL, 
CONSTRAINT producer_pk PRIMARY KEY(VIN)); 


-- Creates Table SALE. 

CREATE TABLE SALE (
sale_ID NUMBER(6), 
cust_ID NUMBER(10), 
salesperson_ID NUMBER(10), 
VIN NUMBER(20), 
date_received DATE NOT NULL, 
vehicle_status VARCHAR2(20) NOT NULL, 
milage VARCHAR2(20) NOT NULL, 
gross_sale_price NUMBER(8,2)NOT NULL, 
CONSTRAINT sale_pk PRIMARY KEY(sale_ID), 
CONSTRAINT customers_fk2 FOREIGN KEY(cust_ID) REFERENCES CUSTOMER(cust_ID), 
CONSTRAINT VIN_fk FOREIGN KEY(VIN) REFERENCES SALE_VEHICLE(VIN)); 

-- spool off command to turn off the spool with it you may not get the all the content spooled. 

set echo off 
spool off 
+0

華麗な!今度はスレッド全体を削除したいと思うかもしれません。他の人が何かを学ぶ可能性のある「共通の問題」は公開していません。ありがとうございました! – mathguy