【问题标题】:What does ':' colon mark means in Oracle?':'冒号在Oracle中是什么意思?
【发布时间】:2021-02-06 04:12:42
【问题描述】:
 if (:new.first_name is not null) then
       :new.first_name := substr(regexp_replace(:new.first_name,'[^'||chr(1)||'-'||chr(127)||']',null),1,20);
    end if;

有人可以帮我处理这段代码吗?看不懂!

【问题讨论】:

  • :new 可能是指新插入/更新的行,因为此代码可能在某种触发器内执行。查看文档以获取更多信息。

标签: oracle plsql regexp-replace


【解决方案1】:

此代码可能来自 UPDATE 或 INSERT 触发器,它引用包含行的新值的伪行

UPDATE x
SET y = 'z'
WHERE y = 'a'

此更新的触发器将有一个 :old 伪行,其中列 y'a' 和一个 :new 伪行,其中 y'z'。如果您在before 触发器中修改:new 的值,它将更改写入表的内容

【讨论】:

  • 另外我想添加另一个用途,因为问题是关于“:”,如果您正在使用,这也可以用于 用户输入变量 SQL 开发人员。让用户在每次执行某些代码时输入每个变量所需的值。
猜你喜欢
  • 2019-09-14
  • 1970-01-01
  • 1970-01-01
  • 2012-10-09
  • 2012-09-25
  • 2020-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多