오라클 check constraint 확인.

georgek의 이미지

안녕하세요. DB를 공부하고있는 학생인데 질문이 생겨서 올리게되었습니다.

제가 기존에 존재하는 테이블에 아래와 같은 체크 제약을 추가해줬습니다.

ALTER TABLE Employees add CONSTRAINT FN_check CHECK (FirstName IN (UPPER(substr(FirstName,1,1))|| LOWER(substr(FirstName,2,20))));
ALTER TABLE Employees add CONSTRAINT LN_check CHECK (LastName IN (UPPER(substr(LastName,1,1))||LOWER(substr(LastName,2,20))));

check constraint를 테이블에 추가시켜주고나서 이걸 추출해서 확인하고 싶은데, 인터넷에 찾은 user_constraint 등등 을 써서 제약조건을 찾는방법을 써도
제가 추가한 FN_check,LN_check(체크제약들)는 결과로 나오지 않는데, 테이블의 모든 제약조건 및 체크제약(?)을 어떻게 볼 수 있는지 알려주실 수 있나요?
한시간째 구글링을 해봐도 나오질 않네요.

감사합니다!

chanik의 이미지

CREATE TABLE Employees
(
    empno       NUMBER(10) PRIMARY KEY,
    FirstName   varchar2(20),
    LastName    varchar2(20)
);
 
ALTER TABLE Employees ADD CONSTRAINT FN_check CHECK (FirstName IN (UPPER(substr(FirstName,1,1))|| LOWER(substr(FirstName,2,20))));
ALTER TABLE Employees ADD CONSTRAINT LN_check CHECK (LastName IN (UPPER(substr(LastName,1,1))||LOWER(substr(LastName,2,20))));

위와 같이 table을 적당히 만들고 알려주신 constraints를 만든 다음
아래와 같은 sql문을 동작시키면 결과가 나오는군요.
SELECT 
    constraint_name, constraint_type, 
    r_constraint_name, InitCap(STATUS) STATUS, InitCap(delete_rule) Delete_rule,
    R_CONSTRAINT_NAME, R_OWNER, search_condition,
    InitCap(DEFERRABLE) deferrable, InitCap(DEFERRED) deferred,
    InitCap(VALIDATED) validated, InitCap(bad) bad
    ,InitCap(RELY) Rely
FROM sys.user_constraints
WHERE TABLE_NAME = 'EMPLOYEES'
ORDER BY 1

CONSTRAINT_NAME                C R_CONSTRAINT_NAME              STATUS   DELETE_RU R_CONSTRAINT_NAME              R_OWNER                        SEARCH_CONDITION                                                                DEFERRABLE     DEFERRED  VALIDATED     BAD RELY
------------------------------ - ------------------------------ -------- --------- ------------------------------ ------------------------------ -------------------------------------------------------------------------------- -------------- --------- ------------- --- ----
FN_CHECK                       C                                Enabled                                                                          FirstName IN (UPPER(substr(FirstName,1,1))|| LOWER(substr(FirstName,2,20)))     Not Deferrable Immediate Validated
LN_CHECK                       C                                Enabled                                                                          LastName IN (UPPER(substr(LastName,1,1))||LOWER(substr(LastName,2,20)))         Not Deferrable Immediate Validated
SYS_C0012431                   P                                Enabled                                                                                                                                                          Not Deferrable Immediate Validated

이 sql문은 제가 만든 것이 아니라 오래된 DB관리도구인 Toad for Oracle을 통해 알아낸 것입니다.
Toad for Oracle은 상용프로그램이지만 기능제약이 있는 무료버전도 있습니다.
가끔씩 무료라이센스 만기가 되면 최신버전으로 한 번씩 다시 받아 설치해야 하는 불편이 있지만
공부하거나 간단한 업무처리를 하는데는 무료버전도 충분할 것입니다.

아래 페이지에서 "Toad for Oracle Freeware"를 설치하면 됩니다. Windows용 32/64-bit 버전이 따로 있습니다.
http://www.toadworld.com/m/freeware/default.aspx

Toad 실행하고 DB에 연결한 다음,
[Database] 메뉴의 [Spool SQL] -> [Spool SQL to Screen]을 켭니다.
[Database] 메뉴의 [Schema Browser]를 띄워서 해당 table 선택하고 constraints를 열람해보면
이 정보를 얻기 위해 Toad가 오라클에 보내는 명령들이 하단의 Spool SQL 창에 다 나올 것입니다.
여기서 적당한 것을 골라 참고해 쓰시면 됩니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.