CREATE OR REPLACE PROCEDURE split_list
AS
v_name VARCHAR2(255);
v_list VARCHAR2(255);
v_value VARCHAR2(255);
v_pos NUMBER;
v_length NUMBER;
BEGIN
FOR rec IN (SELECT ZLY_NAME, LIST_ID FROM your_table ) LOOP
v_name := rec.ZLY_NAME;
v_list := rec.LIST_ID;
WHILE LENGTH(v_list) > 0 LOOP
v_pos := INSTR(v_list, ',');
IF v_pos > 0 THEN
v_value := SUBSTR(v_list, 1, v_pos - 1);
v_list := SUBSTR(v_list, v_pos + 1);
ELSE
v_value := v_list;
v_list := '';
END IF;
print('Name: ' || v_name || ', List Value: ' || v_value);
-- 在这里进行进一步的分组统计处理
-- 可以使用变量或临时表来存储统计结果
-- 例如,可以使用变量来计算总和
-- DECLARE
-- v_sum NUMBER;
-- BEGIN
-- v_sum := v_sum + TO_NUMBER(v_value);
-- END;
-- 或者,可以将分组统计结果插入到临时表中
-- INSERT INTO temp_table (name, value) VALUES (v_name, v_value);
-- INSERT INTO your_table (name, list) VALUES (v_name, v_value);
END LOOP;
END LOOP;
END;