[ [Venom] @ 11.02.2009. 02:49 ] @
Poz

Trenutna tabela...

Code:
CREATE TABLE TABELA1(
    attribute1    char(6)    CONSTRAINT pk_TABELA1    PRIMARY KEY,
    attribute2    varchar2(6),
    attribute3    varchar2(15) NOT NULL,
    attribute4    varchar2(12) NOT NULL
)
/



Neznam da li je moguce, a trebalo bih da bude, treba mi sledeci constraint za attribute1. A to je: attribute1 (unikatan broj radnika), se sadrzi od 2 slova (upper case) i 4 broja. Na primer. AB1234

Koja metoda bih mogla da automatski prebaci prva dva slova u UPPER CASE, i proveri da su poslednja tri broja, ustvari brojevi (a ne slova).

Ja predpostavljam da moze da se koristi substring medjutim ne znam kako da implementiram to.

Hvala



[ brzak @ 11.02.2009. 07:18 ] @
ALTER TABLE tabela1 ADD
CONSTRAINT tabela1_r01
CHECK (SUBSTR(attribute1,1,2)=UPPER(SUBSTR(attribute1,1,2)) AND SUBSTR(attribute1,3,4)=TO_NUMBER(SUBSTR(attribute1,3,4)))
ENABLE
VALIDATE
[ [Venom] @ 12.02.2009. 00:36 ] @
Thx brzak.

Da li je OK ako se ovako uradi, znaci constraint za kolonu a ne tabelu:

CREATE TABLE TABELA1(
attribute1 char(6) CONSTRAINT pk_TABELA1 PRIMARY KEY
CONSTRAINT tabela1_r01
CHECK (SUBSTR(attribute1,1,2)=UPPER(SUBSTR(attribute1,1,2)) AND SUBSTR(attribute1,3,4)=TO_NUMBER(SUBSTR(attribute1,3,4))),

attribute2 varchar2(6),
attribute3 varchar2(15) NOT NULL,
attribute4 varchar2(12) NOT NULL
)
/