问题现象
在使用WM_CONCAT函数时报错。
with employees as ( |
解决方案
使用string_agg函数替换
WM_CONCAT(emp_name) AS emp_name 改成 string_agg(emp_name,’,’) AS emp_name
创建WM_CONCAT函数
CREATE OR REPLACE FUNCTION _WM_CONCAT(VARCHAR2, VARCHAR2 DEFAULT ',') RETURNS VARCHAR2 AS $$ SELECT CASE WHEN $2 IS NULL THEN $1 WHEN $1 IS NULL THEN $2 ELSE $1 OPERATOR(PG_CATALOG.||) ',' OPERATOR(PG_CATALOG.||) $2 END $$ IMMUTABLE STRICT PARALLEL SAFE LANGUAGE SQL; |