0
我有一個從社交媒體填充的非常大的數據庫。我正在嘗試創建一個新列來爲word_counter創建JSON以加快分析速度。在PostgreSQL中轉義字符
我第一次在PostgreSQL中創建一個函數來獲取字符串數組,計算出現次數並返回一個插入的jsonb。以下是功能
CREATE
OR REPLACE FUNCTION count_elements (TEXT []) RETURNS JSONB AS $$
DECLARE js JSONB := '{}' ;
DECLARE jjson JSONB ;
BEGIN
SELECT
jsonb_agg (
(
'{"' || i|| '":"' || C || '"}'
) :: JSONB
) INTO jjson
FROM
(
SELECT
i,
COUNT (*) C
FROM
(SELECT UNNEST($1 :: TEXT []) i) i
GROUP BY
i
ORDER BY
C DESC
) foo ; RETURN jjson ;
END ; $$ LANGUAGE plpgsql;
這是問題所在。當運行下面的查詢
select count_elements(string_to_array(lower(tweet_text), ' ')),tweet_text from tweet_database
limit 10
我得到這個錯誤
[Err] ERROR: invalid input syntax for type json
DETAIL: Character with value 0x0a must be escaped.
CONTEXT: JSON data, line 1: {"winning?
SQL statement "SELECT
我試圖逃避列,然後正則表達式替換一些項目,但還沒有工作。
'to_json'將執行轉義爲您服務。 – teppic