【发布时间】:2016-01-23 03:39:22
【问题描述】:
我希望在 APEX 中使用 REGEXP_REPLACE 来更改已放入字段中的任何值以替换为相同的值,但在其前面带有“£”符号,这可能吗?
我的栏目名称是“工资”
ps。 oracle SQL,非常感谢!
编辑:对不起,我刚开始在大学使用 SQL,我真的不知道我在做什么。我想要一个名为“salary”的列,我想要一个约束和触发器,这样当在字段中输入一个静态数值时,例如 1000,约束会看到这个并且触发器将其更改为 £1000,类似我设法用一个电话号码做了什么:
表:
contact_no VARCHAR2(20)
CONSTRAINT students_contact_no_chk CHECK (REGEXP_LIKE(contact_no, '\(([[:digit:]]{5})\)([[:digit:]]{6})'))
CONSTRAINT students_contact_no_nn NOT NULL,
触发器:
:NEW.contact_no := REGEXP_REPLACE(:NEW.contact_no, '[^[:digit:]]', '');
:NEW.contact_no := REGEXP_REPLACE(:NEW.contact_no,
'([[:digit:]]{5})([[:digit:]]{6})', '(\1) \2');
【问题讨论】:
-
请编辑您的问题并提供一些您想要做什么的示例。正如您所描述的问题,
regexp_replace()似乎没有必要。 -
我尽力了!对不起,高级
-
提示:||是您用来连接两个字符串的方法。工资列的数据类型是什么?如果我是你,我不会把英镑符号作为工资的一部分。我要么重新标记(或评论)该列以指示salary_in_gbp,确保它是NUMBER 数据类型,或者有一个单独的列指示salary 列的货币。这样,您可以将薪水存储在数字列中,这意味着您不必担心验证该列以确保它实际上是一个数字,并且您仍然可以保留货币信息。
-
在薪水前面显示货币符号将成为显示问题。
标签: sql oracle oracle-apex regexp-replace