0

APEXでREGEXP_REPLACEを使用して、フィールドに入力された値を変更して同じ値に置き換えようとしていますが、その前に「£」記号が付いていますが、これは可能ですか?

私の列名は「給与」です

ps。オラクルSQL、ありがとう!

編集: 申し訳ありませんが、大学で SQL を使い始めたばかりで、何をしているのかよくわかりません。「給与」という列が必要で、制約とトリガーを使用して、静的な数値がフィールドに入力されたときに、たとえば 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');
4

2 に答える 2

0

あなたの例と同様に、以下のように常にポンド通貨記号を最初に追加できます。「^」はregexp_replaceの行頭を示します

-- assuming salary is varchar2 field
-- and it's already verified for digits only
-- if salary is 1234 then it will make it to £1234
:NEW.salary := regexp_replace(:NEW.salary,'^','£');
于 2015-10-23T15:18:59.570 に答える