Postgresql - 触发器函数插入带引号的文本(“)

时间:2016-07-12 06:22:04

标签: postgresql

我有一个触发器功能,可以将新字段插入另一个表格。

在新行中有一些字段,其中包含几个字样 - 无理由 触发器功能将此文本作为“无原因”插入表格的字段 - 使用双引号

表字段的类型是字符变化(4000)

我使用RETURN regexp_replace(v_value, '[\n\r]+', ' ', 'g' )删除\ n和\ r \ n但是我没有成功删除双引号。

-----------------------------Formatting Function------------------------
CREATE OR REPLACE FUNCTION format_value(v_value text, format integer)
  RETURNS character varying AS
$BODY$
BEGIN

-- Empty Value
    IF COALESCE(v_value, '') = '' OR v_value is null THEN
        RETURN v_value;
    END IF;
-- 1 - TIME
    IF format = 1 THEN
        RETURN to_char(to_timestamp(replace(v_value, '"', ''), 'YYYY-MM-DD HH24:MI'), 'HH24:MI');
    END IF;

-- 2 - DATE 
    IF format = 2 THEN
        RETURN to_char(to_date(replace(v_value, '"', ''), 'YYYY-MM-DD'), 'YYYY-MM-DD');
    END IF;

-- 3 - BOOL 
    IF format = 3 THEN
        IF v_value = 'f' THEN
            RETURN '0';
        END IF;
        IF v_value = 't' THEN
            RETURN '1';
        END IF;
    END IF;

-- 4 - INT  
    IF format = 4 THEN
        RETURN to_char(v_value::int,'99');
    END IF;

-- 5 - TEXT
    IF format = 5 THEN
        RETURN regexp_replace(v_value, '[\n\r]+', ' ', 'g' );
    END IF;

     RETURN v_value;

END 
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.cc_date_cleaner(character varying)
  OWNER TO postgres;

感谢。

1 个答案:

答案 0 :(得分:0)

解决我问题的代码是:

RETURN REPLACE(regexp_replace(v_value, '[\n\r]+', ' ', 'g' ),'"','');

谢谢,