oracle 제약조건 확인이 안됩니다.. 0 11 7,147

by 귀여니^^ [Oracle 기초] 오라클 oracle 제약조건 constraint 확인 [2014.12.13 13:14:25]


1
2
3
SELECT CONSTRAINT_NAME
FROM    USER_CONSTRAINTS
WHERE  TABLE_NAME ='EMP3' ;

 

emp3 테이블을 생성한 후 commit; 하고..

위의 SQL 문을 실행했는데 "선택된 레코드가 없습니다." 라는 문구만 계속 나옵니다.

이유가 뭘까요...ㅜ.ㅠ

상관은 없겠지만..

혹시나 해서 insert 로 값을 하나 넣었어도 동일합니다.

왜 그럴까요?

도스 상에서 SQL plus 로 들어가도 마찬가지고,

SQL developer 라는 툴을 사용해도 마찬가지 입니다...

 

 

by 아발란체 [2014.12.14 01:40:31]

SQL Developer로 테이블 스크립트를 뽑을 수 있습니다.

테이블 목록을 더블 클릭하여 나오는 창에 "Script"라고 있습니다.

눌러서 나온 내용에 보시면 테이블은 생성되었어도 제약키를 생성한 정보가 없을 것입니다.

그래서 제약키 정보를 USER_CONSTRAINTS에서 조회해도 없는 것입니다.


by 귀여니^^ [2014.12.14 20:38:59]

 

SQL> CREATE TABLE emp3(
     ename VARCHAR2(20)  CONSTRAINT emp_nn_ename NOT NULL );

테이블을 생성할 때

not null 제약조건을 기재하고, sqldeveloper 에서도 확인은 되는데..

sqldeveloper 화면 캡춰 --> http://blogfiles.naver.net/20141214_7/jedis13_1418556899422xLe6f_PNG/querry.png

user_constraints 을 조회하면 확인이 않되는거 같아요...

이유가 뭘까요.....ㅠ.ㅜ

 

 

 


by 마농 [2014.12.15 08:44:31]

똑같이 생성해 봤는데요. 잘 보입니다.


by 귀여니^^ [2014.12.18 18:49:59]
 

헐....

drop table 하고..

다시 생성하니까..되네요..ㅜ.ㅠ

분명히..동일한 쿼리를 복사해서 다시 생성한건데..

저번에는 않되고..지금은 되네요..

테이블이 생성될 때 잘못 생성될 수도 있는지..궁금해지네용..


by 부쉬맨 [2014.12.15 10:14:06]

user가 아닌

dba나 all 로 조회해보세요.

다른스키마쪽으로 생성된거 같아보입니다.


by 귀여니^^ [2014.12.18 16:43:06]

도스에서 SQLplus 로 sys 계정으로 들어가서

all_constraints 테이블이나 dba_constraints 테이블을 검색해봤는데

마찬가지네요.. 아무래도 저만 이상한 듯하네요...ㅜ.ㅠ


by 이런잭쓴 [2014.12.17 11:23:16]

잘보이는데요 ~


by 귀여니^^ [2014.12.18 18:51:02]

드랍했다가 다시 생성하니..잘 되네용...ㅠ.ㅜ


by 귀여니^^ [2014.12.18 19:26:44]

select constraint_name

from user_constraints

where table_name='emp3';

안되는 이유를 찾은거 같습니다.

where 절의 'emp3' 를 소문자로 하면.."선택된 레코드가 없습니다." 라고 나오고..

대문자로 하면..정상적으로 출력됩니다.

테이블 생성할 때 소문자로 생성한거 같은데..

생성이 된 후에 all_tables 를 조회해보니 대문자로 생성이 됐네요..

 

복사해서 붙여넣는게 왠지 찝찝해서 계속 손으로 쳤었는데..

테스트 해본다고..방금 복사해서 붙여 넣어봤더니..되더라구요.

그래서 손으로 다시 쳐보면서 원인을 발견하게 됐어요ㅋ

별건 아니지만.. 나름의 경험을 한거 같습니당..

답변 달아주신 분들 정말 감사합니당~^^b

 


by 마농 [2014.12.19 00:23:58]
질문의 쿼리(대문자)와 실제 쿼리(소문자)가 달랐네요.
실제 쿼리로 질문했다면 쉽게 답을 찾으셨을 텐데요.

by 귀여니^^ [2014.12.20 12:59:11]

아...저의 불찰 입니다..ㅜ.ㅠ

끝까지 답변 주셔서 넘 감사해용~ ^^*

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입