我必须在输入过程中传递一个数字列表。我定义了一个数字表,而不是在互联网上找到的varray,但仍然出现错误:
PLS-00642:SQL语句中不允许使用本地集合类型
类型定义:
TYPE liste IS TABLE OF NUMBER;
程序定义:
PROCEDURE myproc(
IN_COMM_ID IN liste);
程序的主体:
SELECT
COUNT (ID)
FROM
MESSAGGE
WHERE
ID IN IN_COMM_ID;
如何正确执行到where条件的迭代?
答案 0 :(得分:0)
总而言之,您遇到的820P, CASH, CCSH, COLL, CRED, RSH
错误告诉您SQL语句中有一个本地定义的集合类型。看来问题出在定义类型的PL / SQL中的数组,如下所示:
PLS-00642
为避免使用TYPE liste IS TABLE OF NUMBER;
,将需要在模式级别定义集合;因此,您需要使用带有CREATE TYPE语法的Oracle DDL将varray表定义为真实表。