Postgres 中 FORMAT() 函数内的转义 %

gui*_*elo 3 postgresql plpgsql

我正在尝试转义 PostgreSQL 中 format() 函数内的“%”字符。\n该函数根据列列表替换列值,删除返回值 (\\n) 并修剪字符串。

\n
CREATE OR REPLACE FUNCTION eliminar_retornos(text) RETURNS VOID\nAS $$\n        declare\n            i text;\n            fields text[] := ARRAY['direccion', 'localidad', 'calle', 'esq1', 'esq2', 'obs'];\n        BEGIN\n            FOREACH i IN ARRAY fields\n            loop\n                EXECUTE format(\n                    'update %1$s set %2$s = trim(upper(replace(%2$s, E''\\n'', '' '')))', $1, i)\n                ;\n            END LOOP;\n        RAISE NOTICE 'Se actualiz\xc3\xb3 la capa %', $1;\n        END\n        ;\n$$ LANGUAGE plpgsql;\n\n
Run Code Online (Sandbox Code Playgroud)\n

我想更改此函数以仅替换那些有返回的字符串,使用类似的东西;

\n
'update %1$s set %2$s = trim(upper(replace(%2$s, E''\\n'', '' ''))) where %2$s LIKE E''%\\n%''', $1, i) \n
Run Code Online (Sandbox Code Playgroud)\n

问题是我不知道如何正确转义 format() 函数内“LIKE”的“%”。

\n

抱歉发布了一些无法重现的内容,我的知识有限,无法实现这一点。

\n

mus*_*cio 6

说明书清楚地写着:

特殊序列%%可用于输出文字 % 字符