【发布时间】:2016-02-19 01:00:12
【问题描述】:
谁能告诉我为什么我在编译过程时遇到 PL/SQL 错误:
错误 (11,23):PLS-00403:表达式“USER_DETAILS_LIST”不能用作 SELECT/FETCH 语句的 INTO 目标。
这里是对象和过程:
CREATE OR REPLACE TYPE USERID IS OBJECT
(
USERID VARCHAR2(50)
);
CREATE OR REPLACE TYPE USERID_LIST AS TABLE OF USERID;
CREATE OR REPLACE TYPE USER_DETAILS IS OBJECT
(
USERID VARCHAR2(50),
ORGANIZATION VARCHAR2(200),
EMAIL VARCHAR2(200),
FIRSTNAME VARCHAR2(200),
LASTNAME VARCHAR2(200),
FULLNAME VARCHAR2(200)
);
CREATE OR REPLACE TYPE USER_DETAILS_LIST AS TABLE OF USER_DETAILS;
CREATE OR REPLACE PROCEDURE GET_USER_DETAILS_FOR_NOTIF(USERID_LIST IN USERID_LIST,
USER_DETAILS_LIST IN USER_DETAILS_LIST) IS
BEGIN
SELECT USER_DETAILS(USER_ID,
ORGANIZATION,
EMAIL,
FIRSTNAME,
LASTNAME,
FULLNAME)
BULK COLLECT INTO USER_DETAILS_LIST
FROM USERS_TBL
WHERE USER_ID IN (SELECT USERID
FROM TABLE( USERID_LIST));
END;
【问题讨论】:
-
不是您的错误的根源...但是让集合类型名称与该类型的局部变量(或参数)的名称匹配似乎很可能导致混淆。
-
感谢您的关注,我会解决的。
标签: sql oracle stored-procedures plsql