2010-08-09 5 views
0

SQL Server에서 오라클 구문을 배우고 있습니다.Oracle SQL에서 기본 제약 만들기

이 내가 SYSDATE에 ASOFSTARTDATETIME 기본하려는 DDL

CREATE TABLE "CDR"."EXTDL_REPORTSETS" 
    (
    "ID"    NUMBER(38,0) NOT NULL ENABLE, 
    "SHORTNAME"   NUMBER(38,0) NOT NULL ENABLE, 
    "DESCRIPTION"  NUMBER(38,0) NOT NULL ENABLE, 
    "ASOFSTARTDATETIME" NUMBER(38,0) NOT NULL ENABLE, 
    "ASOFENDDATETIME" NUMBER(38,0) NOT NULL ENABLE, 
    CONSTRAINT "PK_EXTDL_REPORTSETS" PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "CDR_DATA" ENABLE 
) 
    PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE 
    (
    INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT 
) 
    TABLESPACE "CDR_DATA" ; 

내 테이블입니다. PL/SQL에서 기본 제약 조건을 어떻게 설정합니까?

편집

데이터 유형이 엉망 먹은, 그래서 나는 그것을 수정.

CREATE TABLE CDR.ExtDL_Reportsets(
    Id     NUMBER(38, 0) NOT NULL, 
    ShortName   VARCHAR2(255) NOT NULL, 
    Description   VARCHAR2(500) NOT NULL, 
    AsOfStartDateTime DATE    NOT NULL, 
    AsOfEndDateTime  DATE, 
    CONSTRAINT PK_ExtDL_Reportsets PRIMARY KEY (Id) 
) 
; 
+0

내 데이터 모델 번호 모든 손상 및 기본값있어 (38, 0). 열을 다시 원래 데이터 유형으로 변경했습니다. –

+0

그건 짜증 난 - 정확한 데이터 유형을 반영하기 위해 내 대답을 업데이 트했습니다. –

+0

안녕하세요! 내가 노력을 위해 당신을 두 배로 업로딩 할 수 있다면, 나는 그럴 것입니다! –

답변

4

사용 :

ALTER TABLE EXTDL_REPORTSETS 
    MODIFY last_ASOFSTARTDATETIME DATE DEFAULT SYSDATE 

나는 문제가 10g reference documentation - this is for 11g을 파고을 보내고 있습니다.

당신은 CREATE TABLE 문을 수행 할 경우

CREATE TABLE "CDR"."EXTDL_REPORTSETS" (
    "ID"    NUMBER(38,0) NOT NULL ENABLE, 
    "SHORTNAME"   VARCHAR2(255) NOT NULL ENABLE, 
    "DESCRIPTION"  VARCHAR2(500) NOT NULL ENABLE, 
    "ASOFSTARTDATETIME" DATE DEFAULT SYSDATE NOT NULL ENABLE, 
    "ASOFENDDATETIME" DATE NOT NULL ENABLE, 
    CONSTRAINT "PK_EXTDL_REPORTSETS" PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "CDR_DATA" ENABLE 
) 
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE (
    INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT 
) 
TABLESPACE "CDR_DATA" ; 
+0

create 문 자체에서이를 수행 할 수있는 방법이 있습니까? –

+0

@Raj 기타 : 업데이트, 지원 문서 참조 : http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_7002.htm#i2153108 –

관련 문제