如何获取varchar的字符数

时间:2018-06-09 02:25:33

标签: sql oracle

我尝试在插入或更新

时执行限制字符数的触发器
CREATE OR REPLACE TRIGGER trigpersonfone
 BEFORE INSERT OR UPDATE OF phone ON PhonePerson
 FOR EACH ROW
   BEGIN
      IF :NEW.phone.LENGTH < 8 THEN 
         DBMS_OUTPUT.put_line('The phone cannot have less then 8 numbers');
      END IF;
  END;
/

我正在使用oracle live并且这个ide不显示错误日志。有人能告诉我我的sql代码有什么问题吗?感谢

2 个答案:

答案 0 :(得分:5)

使用 on t2.id = 'RPM: ' + cast(t1.id as varchar(255)) 约束,而不是触发器:

check

答案 1 :(得分:4)

undefined

不起作用。这不是具有:NEW.phone.LENGTH 成员的对象。使用LENGTH()功能。

LENGTH

同样LENGTH(:NEW.phone) 不会中止DML。仍然可以愉快地插入少于8个字符的电话号码。也许您想要使用RAISE代替。