Oracle触发器更新电话号码

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_

电话号码以以下格式从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_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;

经过一些轻微的修改后,它就如承诺的那样工作了。谢谢