2016-11-06 2 views
-3

나머지 테이블에 외래 키가있는 3 개의 테이블을 만들려고합니다. 테이블에 데이터를 삽입하려고 할 때 오류 코드가 계속 발생하므로 테이블을 생성하고 거기서 수정하려고합니다. 다음과 같이 코드는 다음과 같습니다SQL 유효하지 않은 식별자 코드

-- 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 파일 실행하려고 후이 에코되는 것입니다 :

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 

어떤 도움도 큰 감사 것입니다.

+0

; Customer 테이블, Sale_Vehicle 테이블, Sale 테이블을 생성하고 고객이 이미 있다는 것을 알게됩니다. 왜 테이블을 만들지 않고 드롭하면 왜 테이블을 만들지 않을까요? 그리고 컬럼 이름에'date'라는 키워드를 사용하면 잘 돌아 가지 않습니다. 이를 구분 식별자 (delimited identifier)로 표시해야합니다 (큰 따옴표로 묶거나 대괄호와 같은 플랫폼 특정 대안으로 묶음). 다른 이름을 사용해야합니다. –

+0

DB 케이스를 구분하지 않습니까? 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

Brilliant! 이제는 전체 스레드를 제거하고 싶을 수 있습니다. 다른 사람들이 어떤 것을 배울 가능성이있는 "일반적인 문제"는 노출시키지 않았습니다. 고맙습니다! – mathguy

관련 문제