【发布时间】:2017-01-13 15:32:50
【问题描述】:
问候!有没有办法在 Oracle SQL 上执行下面代码中的逻辑?我收到错误 PLS-00642:SQL 语句中不允许本地集合类型;对于变量 var1 和 var2...
CREATE OR REPLACE PROCEDURE TEST IS
CURSOR c1 IS SELECT * FROM Table1;
TYPE num_arr_type IS TABLE OF NUMBER(5);
i_rec Table1%ROWTYPE;
var1 num_arr_type;
BEGIN
var1:= SELECT num FROM Table3;
OPEN c1;
LOOP
FETCH c1 INTO i_rec;
EXIT WHEN c1%NOTFOUND;
SELECT a.num
FROM Table2 a
WHERE a.cod_agt = var1;
END LOOP;
CLOSE c1;
END TEST;
在我的代码中,我想将 SELECT 结果存储到一个变量中,并在另一个 select 语句的 WHERE 子句中使用该变量。那可能吗?
【问题讨论】:
-
这里有一些问题。如果您可以发布一些示例数据、所需结果并描述您想要实现的逻辑,人们会更容易帮助您。
-
您的编辑比原始帖子更令人困惑。这应该怎么做?这段代码有什么问题?这是否给出了您发布的错误?
-
对不起,我重新编辑了我的代码。在我的代码中,我想将 SELECT 结果存储到一个变量中,并在另一个 select 语句的 WHERE 子句中使用该变量。这可能吗?
-
听起来是 SQL 中的
in (subquery)构造。