2015-05-04 64 views
0

我跑的第一个ddl脚本告诉我我有错误。来找出这是因为我的命令之间有空位。我删除了空格,并且它在假脱机文件中没有错误消息的情况下正常打印。现在,我试图将数据插入到表中,并且出现一些错误,例如无效日期。即使日期是正确的。我也遇到了其他一些错误。是否还有其他格式问题我应该知道?提供不正确信息的Oracle SQL缓冲池

SQL> set echo on 
SQL> insert into distributor (distributor_id, distributor_name, address, phone) 
    2  values('1','efd sales','3540 lennox st', '3015899389') 
    3 /

1 row created. 

SQL>   insert into distributor (distributor_id, distributor_name, address, phone) 
    2  values('2','emd sales','3541 lennox st', '3025899389') 
    3 /

1 row created. 

SQL>  insert into distributor (distributor_id, distributor_name, address, phone) 
    2  values('3','emo sales','3542 lennox st', '3035899389') 
    3 /

1 row created. 

SQL>   insert into distributor (distributor_id, distributor_name, address, phone) 
    2  values('4','amd sales','3543 lennox st', '3045899389') 
    3 /

1 row created. 

SQL>  insert into distributor (distributor_id, distributor_name, address, phone) 
    2  values('5','exo sales','3544 lennox st', '3055899389') 
    3 /

1 row created. 

SQL>  insert into genre(genre_id,genre) 
    2  values('1101','horror') 
    3 /

1 row created. 

SQL>  insert into genre(genre_id,genre) 
    2  values('1102','fantasy') 
    3 /

1 row created. 

SQL>  insert into genre(genre_id,genre) 
    2  values('1103','sports') 
    3 /

1 row created. 

SQL>  insert into genre(genre_id,genre) 
    2  values('1104','entertainment') 
    3 /

1 row created. 

SQL>  insert into genre(genre_id,genre) 
    2  values('1105','adventure') 
    3 /

1 row created. 

SQL>  insert into movie(movie_id,genre_id,title,release_date,duration,movie_type,rating,rent_price) 
    2  values('1','1101','fly','02/09/92','45:00','horror','5/10','5.00') 
    3 /
    values('1','1101','fly','02/09/92','45:00','horror','5/10','5.00') 
          * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into movie(movie_id, genre_id, title, release_date, duration,movie_type,rating,rent_price) 
    2  values('2','1102','fly2','02/12/93','45:00','horror','5/10','5.00') 
    3 /
    values('2','1102','fly2','02/12/93','45:00','horror','5/10','5.00') 
          * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into movie(movie_id, genre_id, title, release_date, duration,movie_type,rating,rent_price) 
    2  values('3','1103','fly3','02/12/94','45:00','horror','5/10','5.00') 
    3 /
    values('3','1103','fly3','02/12/94','45:00','horror','5/10','5.00') 
          * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into movie(movie_id, genre_id, title, release_date, duration,movie_type,rating,rent_price) 
    2  values('4','1104','fly4','02/12/95','45:00','horror','5/10','5.00') 
    3 /
    values('4','1104','fly4','02/12/95','45:00','horror','5/10','5.00') 
          * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into movie(movie_id, genre_id, title, release_date, duration,movie_type,rating,rent_price) 
    2  values('5','1105','fly5','02/12/96','45:00','horror','5/10','5.00') 
    3 /
    values('5','1105','fly5','02/12/96','45:00','horror','5/10','5.00') 
          * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into sells(transaction_id,distributor_id,movie_id,quantity,purchase_date) 
    2  values('1','1','1','1','02/10/92') 
    3 /
    values('1','1','1','1','02/10/92') 
          * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into sells(transaction_id,distributor_id,movie_id,quantity,purchase_date) 
    2  values('2','2','1','2','02/10/92') 
    3 /
    values('2','2','1','2','02/10/92') 
          * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into sells(transaction_id,distributor_id,movie_id,quantity,purchase_date) 
    2  values('3','3','1','3','02/10/92') 
    3 /
    values('3','3','1','3','02/10/92') 
          * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into sells(transaction_id,distributor_id,movie_id,quantity,purchase_date) 
    2  values('4','4','1','4','02/10/92') 
    3 /
    values('4','4','1','4','02/10/92') 
          * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into sells(transaction_id,distributor_id,movie_id,quantity,purchase_date) 
    2  values('5','5','1','5','02/10/92') 
    3 /
    values('5','5','1','5','02/10/92') 
          * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into dvd(
    2  dvd_movie_id, dvd_count 
    3  ) 
    4  values('1','1') 
    5 /

1 row created. 

SQL>  insert into dvd(
    2  dvd_movie_id, dvd_count 
    3  ) 
    4  values('2','2') 
    5 /

1 row created. 

SQL>  insert into dvd(
    2  dvd_movie_id, dvd_count 
    3  ) 
    4  values('3','3') 
    5 /

1 row created. 

SQL>  insert into dvd(
    2  dvd_movie_id, dvd_count 
    3  ) 
    4  values('4','4') 
    5 /

1 row created. 

SQL>  insert into dvd(
    2  dvd_movie_id, dvd_count 
    3  ) 
    4  values('5','5') 
    5 /

1 row created. 

SQL>  insert into video(vid_mov_id 
    2   ) 
    3  values('1') 
    4  /

1 row created. 

SQL>  insert into video(vid_mov_id) 
    2  values('2') 
    3  /

1 row created. 

SQL>  insert into video(vid_mov_id) 
    2  values('3') 
    3  /

1 row created. 

SQL>  insert into video(vid_mov_id) 
    2  values('4') 
    3  /

1 row created. 

SQL>  insert into video(vid_mov_id) 
    2  values('5') 
    3 /

1 row created. 

SQL>  insert into director(director_id,NAME,ADDRESS,city,state) 
    2  values('1','john1','123 buck st','laurel','maryland') 
    3 /

1 row created. 

SQL>  insert into director(director_id,NAME,ADDRESS,city,state) 
    2  values('2','john2','124 buck st','bowie','maryland') 
    3 /

1 row created. 

SQL>  insert into director(director_id,NAME,ADDRESS,city,state) 
    2  values('3','john3','125 buck st','canton','maryland') 
    3 /

1 row created. 

SQL>  insert into director(director_id,NAME,ADDRESS,city,state) 
    2  values('4','john4','126 buck st','wats','maryland') 
    3 /

1 row created. 

SQL>  insert into director(director_id,NAME,ADDRESS,city,state) 
    2  values('5','john5','127 buck st','canne','maryland') 
    3 /

1 row created. 

SQL>  insert into movie_director(director_id,movie_id) 
    2  values('1','1') 
    3 /
    insert into movie_director(director_id,movie_id) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_MOVIE_DIRECTOR) violated - 
parent key not found 


SQL>  insert into movie_director(director_id,movie_id) 
    2  values('2','2') 
    3 /
    insert into movie_director(director_id,movie_id) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_MOVIE_DIRECTOR) violated - 
parent key not found 


SQL>  insert into movie_director(director_id,movie_id) 
    2  values('3','3') 
    3 /
    insert into movie_director(director_id,movie_id) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_MOVIE_DIRECTOR) violated - 
parent key not found 


SQL>  insert into movie_director(director_id,movie_id) 
    2  values('4','4') 
    3 /
    insert into movie_director(director_id,movie_id) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_MOVIE_DIRECTOR) violated - 
parent key not found 


SQL>  insert into movie_director(director_id,movie_id) 
    2  values('5','5') 
    3 /
    insert into movie_director(director_id,movie_id) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_MOVIE_DIRECTOR) violated - 
parent key not found 


SQL>  insert into member(member_id,first_name,last_name,address) 
    2  values('1','james1','jones2','12 mirk st') 
    3 /

1 row created. 

SQL>  insert into member(member_id,first_name,last_name,address) 
    2  values('2','james2','jones2','123 mirk st') 
    3 /

1 row created. 

SQL>  insert into member(member_id,first_name,last_name,address) 
    2  values('3','james3','jones2','124 mirk st') 
    3 /

1 row created. 

SQL>  insert into member(member_id,first_name,last_name,address) 
    2  values('4','james4','jones2','125 mirk st') 
    3 /

1 row created. 

SQL>  insert into member(member_id,first_name,last_name,address) 
    2  values('5','james5','jones2','126 mirk st') 
    3 /

1 row created. 

SQL>  insert into rental_transaction(rental_id,rental_date,due_date,movie_id,member_id) 
    2  values('1','08/08/15','08/08/15','1','1') 
    3 /
    values('1','08/08/15','08/08/15','1','1') 
       * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into rental_transaction(rental_id,rental_date,due_date,movie_id,member_id) 
    2  values('2','09/08/15','09/08/15','2','2') 
    3 /
    values('2','09/08/15','09/08/15','2','2') 
       * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into rental_transaction(rental_id,rental_date,due_date,movie_id,member_id) 
    2  values('3','10/08/15','10/08/15','3','3') 
    3 /
    values('3','10/08/15','10/08/15','3','3') 
       * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into rental_transaction(rental_id,rental_date,due_date,movie_id,member_id) 
    2  values('4','11/08/15','11/08/15','4','4') 
    3 /
    values('4','11/08/15','11/08/15','4','4') 
       * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into rental_transaction(rental_id,rental_date,due_date,movie_id,member_id) 
    2  values('5','12/08/15','12/08/15','5','5') 
    3 /
    values('5','12/08/15','12/08/15','5','5') 
       * 
ERROR at line 2: 
ORA-01843: not a valid month 


SQL>  insert into actor(actor_id, full_name) 
    2  values('1','carl lime') 
    3 /

1 row created. 

SQL>  insert into actor(actor_id, full_name) 
    2  values('2','carl lewis') 
    3 /

1 row created. 

SQL>  insert into actor(actor_id, full_name) 
    2  values('3','john lewis') 
    3 /

1 row created. 

SQL>  insert into actor(actor_id, full_name) 
    2  values('4','carl less') 
    3 /

1 row created. 

SQL>  insert into actor(actor_id, full_name) 
    2  values('5','yerl wise') 
    3 /

1 row created. 

SQL>  insert into actor_role(role_type,movie_id,actor_id) 
    2  values('lead','1','1') 
    3 /
    insert into actor_role(role_type,movie_id,actor_id) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_ACTOR_ROLE) violated - parent 
key not found 


SQL>  insert into actor_role(role_type,movie_id,actor_id) 
    2  values('lead','2','2') 
    3 /
    insert into actor_role(role_type,movie_id,actor_id) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_ACTOR_ROLE) violated - parent 
key not found 


SQL>  insert into actor_role(role_type,movie_id,actor_id) 
    2  values('lead','3','3') 
    3 /
    insert into actor_role(role_type,movie_id,actor_id) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_ACTOR_ROLE) violated - parent 
key not found 


SQL>  insert into actor_role(role_type,movie_id,actor_id) 
    2  values('lead','4','4') 
    3 /
    insert into actor_role(role_type,movie_id,actor_id) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_ACTOR_ROLE) violated - parent 
key not found 


SQL>  insert into actor_role(role_type,movie_id,actor_id) 
    2  values('lead','5','5') 
    3 /
    insert into actor_role(role_type,movie_id,actor_id) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_ACTOR_ROLE) violated - parent 
key not found 


SQL>  insert into award(award_id,actor_id,director_id,movie_id, award_name,award_type) 
    2  values('1','1','1','1','oscar','film') 
    3  /
    insert into award(award_id,actor_id,director_id,movie_id, award_name,award_type) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_AWARD) violated - parent key 
not found 


SQL>  insert into award(award_id,actor_id,director_id,movie_id, award_name,award_type) 
    2  values('2','2','2','2','oscar','film') 
    3  /
    insert into award(award_id,actor_id,director_id,movie_id, award_name,award_type) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_AWARD) violated - parent key 
not found 


SQL>  insert into award(award_id,actor_id,director_id,movie_id, award_name,award_type) 
    2  values('3','3','3','3','oscar','film') 
    3  /
    insert into award(award_id,actor_id,director_id,movie_id, award_name,award_type) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_AWARD) violated - parent key 
not found 


SQL>  insert into award(award_id,actor_id,director_id,movie_id, award_name,award_type) 
    2  values('4','4','4','4','oscar','film') 
    3  /
    insert into award(award_id,actor_id,director_id,movie_id, award_name,award_type) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_AWARD) violated - parent key 
not found 


SQL>  insert into award(award_id,actor_id,director_id,movie_id, award_name,award_type) 
    2  values('5','5','5','5','oscar','film') 
    3 /
    insert into award(award_id,actor_id,director_id,movie_id, award_name,award_type) 
* 
ERROR at line 1: 
ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_AWARD) violated - parent key 
not found 


SQL>  insert into movie_awd(mov_awd_id) 
    2  values('1') 
    3 /

1 row created. 

SQL>  insert into movie_awd(mov_awd_id) 
    2  values('2') 
    3 /

1 row created. 

SQL>  insert into movie_awd(mov_awd_id) 
    2  values('3') 
    3 /

1 row created. 

SQL>  insert into movie_awd(mov_awd_id) 
    2  values('4') 
    3 /

1 row created. 

SQL>  insert into movie_awd(mov_awd_id) 
    2  values('5') 
    3 /

1 row created. 

SQL>  insert into director_awd(dir_awd_id) 
    2  values('1') 
    3 /

1 row created. 

SQL>  insert into director_awd(dir_awd_id) 
    2  values('2') 
    3 /

1 row created. 

SQL>  insert into director_awd(dir_awd_id) 
    2  values('3') 
    3 /

1 row created. 

SQL>  insert into director_awd(dir_awd_id) 
    2  values('4') 
    3 /

1 row created. 

SQL>  insert into director_awd(dir_awd_id) 
    2  values('5') 
    3 /

1 row created. 

SQL>  insert into act_awd(act_awd_id) 
    2  values('1') 
    3 /

1 row created. 

SQL>  insert into act_awd(act_awd_id) 
    2  values('2') 
    3 /

1 row created. 

SQL>  insert into act_awd(act_awd_id) 
    2  values('3') 
    3 /

1 row created. 

SQL>  insert into act_awd(act_awd_id) 
    2  values('4') 
    3 /

1 row created. 

SQL>  insert into act_awd(act_awd_id) 
    2  values('5') 
    3 /

1 row created. 

SQL>  spool off 
+0

它说'ORA-01843:不是有效的月份',请检查你的日期格式,尝试使用'12-DEC-1996''而不是'01/12/96''和其他错误是关于主键,您不能将重复数据插入表中 – anudeepks

+0

没有重复的数据 – colobia

+0

''02/12/93''是STRING而不是日期。 –

回答

0

ORA-01843: not a valid month

'02/12/93'STRING一个DATE。始终使用TO_DATE明确将文字转换为日期以及所需的格式掩码

你可能只是幸运地插入,如果甲骨文成功做一个隐式数据类型基础上,特定于语言环境NLS_DATE_FORMAT的精确匹配转换。

让我们重现错误:

SQL> CREATE TABLE t(a DATE); 

Table created. 

SQL> INSERT INTO t(a) VALUES('02/12/93'); 
INSERT INTO t(a) VALUES('02/12/93') 
         * 
ERROR at line 1: 
ORA-01843: not a valid month 


SQL> 

NLS_DATE_FORMAT客户端设置是:

SQL> show parameter nls_date_format; 

NAME         TYPE  VALUE 
------------------------------------ ----------- --------- 
nls_date_format      string  DD-MON-RR 

因此,当使用我的客户格式'DD-MON-RR'不一样'02/12/93'

正确的方法是:

SQL> INSERT INTO t(a) VALUES(to_date('02/12/1993', 'MM/DD/YYYY')); 

1 row created. 

此外,要知道对于今年的格式。如果您正在使用YY而不是YYYY那么您正在重新创建Y2K错误。请使用RR格式或更好使用* YYYY **并提及4位数的完整年份。

ORA-02291: integrity constraint (DAVE.FK_MOVIE_ID_AWARD) violated - parent key not found

这意味着在父表中找不到引用父键,因为您试图插入引用为外键列的值。首先将行插入父表,然后插入子表

0

我的建议是在插入语句中使用'DD-MON-YYYY'或to_date(日期,格式)格式。