Date & phone number constraint [message #23381] |
Wed, 04 December 2002 14:39 |
HG
Messages: 13 Registered: December 2002
|
Junior Member |
|
|
Hello,
I'm not an experienced SQL programmer, but i'm working on a oracle database where i need a constraint for a date-field (dd/mm/yyyy) and a constraint for a phone number where the '/' can appear in 3th, 4th or 5th position (99/9999999 or 999/999999 or 9999/999999).
Can anyone help me please.
Tanks in advance.
HG
|
|
|
Re: Date & phone number constraint [message #23382 is a reply to message #23381] |
Wed, 04 December 2002 15:34 |
Todd Barry
Messages: 4819 Registered: August 2001
|
Senior Member |
|
|
We would need much more information on what type of constraint you want for you date field, but both of these would be handled in triggers. Here I check that one slash only exists in pos. 3-5.
sql>create table t (p varchar2(32));
Table created.
sql>create or replace trigger t_trg
2 after insert on t
3 for each row
4 begin
5 if instr(:new.p, '/') = 0
6 or length(replace(substr(:new.p, 3, 3), '/')) <> 2
7 or instr(substr(:new.p, 1, 2) || substr(:new.p, 6), '/') > 0 then
8
9 raise_application_error(-20000, 'Invalid phone number (' || :new.p || ')');
10
11 end if;
12 end;
13 /
Trigger created.
sql>insert into t values ('99/9999999');
1 row created.
sql>insert into t values ('999/999999');
1 row created.
sql>insert into t values ('9999/999999');
1 row created.
sql>insert into t values ('9/999999999');
insert into t values ('9/999999999')
*
ERROR at line 1:
ORA-20000: Invalid phone number (9/999999999)
ORA-06512: at "T_TRG", line 6
ORA-04088: error during execution of trigger 'T_TRG'
sql>insert into t values ('9999999999');
insert into t values ('9999999999')
*
ERROR at line 1:
ORA-20000: Invalid phone number (9999999999)
ORA-06512: at "T_TRG", line 6
ORA-04088: error during execution of trigger 'T_TRG'
sql>insert into t values ('99//99999999');
insert into t values ('99//99999999')
*
ERROR at line 1:
ORA-20000: Invalid phone number (99//99999999)
ORA-06512: at "T_TRG", line 6
ORA-04088: error during execution of trigger 'T_TRG'
|
|
|