【发布时间】:2019-08-12 10:17:10
【问题描述】:
如何创建一个调用存储过程的循环? 我有一个包含产品列表的表,我想使用存储过程对照表检查它。
示例表格内容:
- 苹果
- 橙色
- 香蕉
在本例中,我想使用参数执行此过程 3 次:(苹果、橙子、香蕉)。
我无法使用光标来工作...
DECLARE
CURSOR cur_product
IS
SELECT product_name FROM test.products;
BEGIN
FOR product IN cur_product
LOOP
BEGIN
EXECUTE TEST_PRODUCT( product);
END;
END LOOP;
END;
存储过程:
CREATE OR REPLACE PROCEDURE TEST_PRODUCT
(
PRODUCT IN VARCHAR2
) AS
BEGIN
INSERT INTO TABLE test.product_counts
SELECT COUNT(*) FROM test.products WHERE product_name = &PRODUCT
END TEST_PRODUCT;
【问题讨论】:
-
execute在 PL/SQL 中不需要调用存储过程。并且在 PL/SQL 中也不使用&引用参数。 -
但您不需要循环或存储过程来执行此操作。而
test.product_counts如果不将产品名称和计数一起存储有什么用?
标签: oracle loops stored-procedures plsql cursor