无参存储过程
create or replace procedure TEST_PROCEDURE is
begin
-- 循环打印1到5
--for idx in 1..5 loop
--dbms_output.put_line(idx);
--end loop;
-- 根据查询到的数据进行遍历并输出
for idx in (select t.user_id from TEST_USER t) loop
dbms_output.put_line(idx.user_id);
end loop;
end TEST_PROCEDURE;
在PL/SQL新建一个Test Window进行测试调用存储过程
declare
-- Local variables here
i integer;
begin
-- Test statements here
TEST_PROCEDURE();
end;
有参存储过程
create or replace procedure TEST_PROCEDURE_PARAMETER(IN_ID_LIST IN VARCHAR2) is
L_IDX PLS_INTEGER;
V_LIST VARCHAR2(4000) := IN_ID_LIST;
begin
loop
-- 获取数组长度
L_IDX := INSTR(V_LIST, ',');
if L_IDX > 0 then
dbms_output.put_line('未分隔之前:' || V_LIST);
-- 每循环一次字符截取一次
V_LIST := SUBSTR(V_LIST, L_IDX + LENGTH(','));
dbms_output.put_line('分隔之后:' || V_LIST);
else
dbms_output.put_line('最后一条数据:' || V_LIST);
exit;
end if;
end loop;
end TEST_PROCEDURE_PARAMETER;
在PL/SQL新建一个Test Window进行测试调用存储过程
declare
-- Local variables here
i integer;
begin
-- Test statements here
TEST_PROCEDURE_PARAMETER('张三,李四,王五,老王');
end;