【发布时间】:2020-06-07 09:24:21
【问题描述】:
我正在使用一个过程从名为事务的表中获取数据。该表有 1000 行,我必须在游标中读取 50 条记录一次。对于每条记录,我需要打印输出。然后该函数应该从表中获取接下来的 50 条记录并执行相同的操作。
我得到了逻辑,但输出不正确。并非两个 for 循环都在工作。你能找到下面的代码并帮助我吗?
create or replace PROCEDURE TWO_CURSOR IS
startC number := 1;
endc number := 3 ;
cursor v_count is
select (count(*) /50) from transactions;
cursor transc is
SELECT transactions_id, product_id
FROM transactions
where rownum >= startC
and rownum <= endc;
v_productName masterdata.product_name %TYPE;
v_supplierId masterdata.supplier_id %type;
v_supplierName masterdata.supplier_name %type;
v_price masterdata.price %type;
begin
for i in v_count
LOOP
for j in transc
loop
select product_name into v_productName from masterdata m where product_id=j.product_id;
dbms_output.put_line( j.product_id || ' - ' || j.transactions_id || ' - ' || v_productName);
end loop;
startC := startC +3;
endc := endc+3 ;
end loop;
END TWO_CURSOR;
> Blockquote
This is the output that I'm getting
[output][1]
[1]: https://i.stack.imgur.com/a2wGX.png
【问题讨论】:
-
@barbaros Ozhan 你编辑了什么?如果您对此有解决方案,请告诉我?
标签: oracle loops for-loop plsql database-cursor