不允许Oracle PL/SQL本地集合类型错误
问候!有没有一种方法可以在Oracle SQL上执行下面代码中给出的逻辑?我得到错误PLS-00642:SQL语句中不允许使用本地集合类型;对于变量var1和var2不允许Oracle PL/SQL本地集合类型错误,oracle,plsql,Oracle,Plsql,问候!有没有一种方法可以在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_typ
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子句中的变量。是吗
可能的
我不确定你想要达到什么目标,但看看你上面的陈述,我举了一个例子:
CREATE OR REPLACE PROCEDURE TEST IS
CURSOR c1 IS
SELECT * FROM Table1;
TYPE num_arr_type IS TABLE OF NUMBER(5);
var1 num_arr_type;
i_rec Table1%ROWTYPE;
v_num number;
BEGIN
--- This is how you store value to a collection
SELECT num
bulk collect into var1
FROM Table3;
--- Loop to get individual records from your collection
For i in 1..var1.count
loop
SELECT a.num
into v_num
FROM Table2 a
--This is how you pass the value stored in your collection one by one in loop.
WHERE a.cod_agt = var1(i);
dbms_output.put_line(v_num);
end loop;
END TEST;
你这里有些问题。如果你能发布一些示例数据、所需结果并描述你想要实现的逻辑,人们会更容易帮助你。编辑的可能重复比原始文章更令人困惑。这该怎么办?这个代码有什么问题?这是否给出了您发布的错误?抱歉,我重新编辑了代码。在我的代码中,我希望将SELECT结果存储到一个变量中,并在另一个SELECT语句的WHERE子句中使用该变量。这可能吗?听起来是SQL中(子查询)构造中的一行
。