sql—如何将变量从pl/pgsql函数传递到查询select语句?

pzfprimi  于 2021-07-26  发布在  Java
关注(0)|答案(0)|浏览(226)
CREATE OR REPLACE FUNCTION data_of(_tbl_type anyelement, _missing_id TEXT)
  RETURNS SETOF anyelement AS
$func$
BEGIN
   RETURN QUERY EXECUTE format('
      SELECT *
        from logs
        where json_col_a::text like '%$1%' or   -- <---- faulty
            json_col_b::text like '%$1%'        --- <----- faulty
        order by timestamp desc'
    , pg_typeof(_tbl_type))
   USING  _missing_id;
END
$func$ LANGUAGE plpgsql;

CREATE TABLE new_table AS TABLE logs WITH NO DATA;

SELECT * FROM data_of(NULL::new_table, '00000000-0000-0000-0000-000000000001');

根据这里的答案改编,我想将guid作为文本传递到 SELECT 查询。
我转换 json_col_a , json_col_bjsontext .
然后,我检查 _missing_id 在上面的两列中都可以找到文本。
当我运行时,收到一条错误消息:
错误:运算符不存在:未知%new\u表第4行:where diagnostics\u context::文本,如“%$1%”或
我错过了什么?谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题