ORACLE 行列转换之拼成字符串
前段时间使用ORACLE,同事提出一个需求,要求将有相同CODE的值连接成一个字符串。这种小问题怎会难倒我,于是提出方案!
CREATE FUNCTION getpa(v_alertcode VARCHAR(8)) RETURNS VARCHAR(4000) LANGUAGE SQL SPECIFIC getpa --SPECIFIC getpa 指定函数名称 gp: BEGIN ATOMIC DECLARE pastr VARCHAR(4000) DEFAULT ''; FOR cur AS SELECT painnercode FROM sp_alert_pa_group WHERE alertcode=v_alertcode DO SET pastr=pastr || cur.painnercode || ','; END FOR; RETURN pastr; END gp;
此处,除了表名不能作为参数传递以外,列都可以用参数代替!