Oracle触发器更新电话号码
电话号码以以下格式从web服务发送到我们的DB:Oracle触发器更新电话号码,oracle,triggers,Oracle,Triggers,电话号码以以下格式从web服务发送到我们的DB: 1-210-5551212 如果前两个字符是“1-”,我希望它们像这样输入到字段中: 1-210-555-1212 如何创建一个on insert或update触发器来完成此操作?如果web服务中的格式保持不变,则可以执行此操作 CREATE TABLE PHONE_NUMBERS(PH_ID NUMBER(12), PHONE_NUMBER VARCHAR2(20)); CREATE OR replace TRIGGER trg_
1-210-5551212
如果前两个字符是“1-”,我希望它们像这样输入到字段中:
1-210-555-1212
如何创建一个on insert或update触发器来完成此操作?如果web服务中的格式保持不变,则可以执行此操作
CREATE TABLE PHONE_NUMBERS(PH_ID NUMBER(12), PHONE_NUMBER VARCHAR2(20));
CREATE OR replace TRIGGER trg_test_numbers
BEFORE INSERT OR UPDATE ON phone_numbers
FOR EACH ROW
BEGIN
IF Substr(:new.phone_number, 1, 2) = '1-' THEN
:new.phone_number := Substr(:new.phone_number, 1, 9)
|| '-'
|| Substr(:new.phone_number, 10);
END IF;
END trg_test_numbers;
insert into phone_numbers(ph_id, phone_number) VALUES(1,'1-210-5551212');
SELECT * from phone_numbers;
经过一些轻微的修改后,它就如承诺的那样工作了。谢谢