[英]PL/SQL Bulk collect not enough values error
I have a users-table with values id, uname, pwd, email and more.我有一个包含 id、uname、pwd、email 等值的用户表。 Now i wanna create a nested table with only some of these values(id, uname, pwd - but no email):现在我想创建一个只有其中一些值的嵌套表(id、uname、pwd - 但没有电子邮件):
create or replace TYPE type_u as object(type_id number(4,0), type_uname varchar(32), type_pwd varchar(16));
create or replace TYPE u_tbl as table of type_u;
now i want to fill this nested table with the data (id,uname,pwd) of the users table.现在我想用用户表的数据(id、uname、pwd)填充这个嵌套表。 I tried to use bulk collect for that:我尝试为此使用批量收集:
SELECT u.id,u.uname,u.pwd BULK COLLECT INTO u_tbl FROM user_table u;
But i keep getting the error "not enough values".但我不断收到错误“没有足够的价值”。 What is the error in that select statement?该 select 语句中的错误是什么? Thanks in advance!提前致谢!
Full Code:完整代码:
create or replace TYPE type_u as object(type_id number(4,0), type_uname varchar(32), type_pwd varchar(16));
create or replace TYPE u_tbl as table of type_u;
create or replace PROCEDURE RET_STRING_TAB(o_cursor OUT SYS_REFCURSOR) IS
v_u_tbl u_tbl;
BEGIN
SELECT u.id, u.name, u.pwd BULK COLLECT INTO v_u_tbl FROM user_table u;
-- For each found User do something
FOR i IN 1 .. v_u_tbl.count
LOOP
-- do something
END LOOP;
OPEN o_cursor FOR SELECT * FROM TABLE(v_u_tbl);
END RET_STRING_TAB;
请试试这个
SELECT type_u(u.id,u.uname,u.pwd) BULK COLLECT INTO u_tbl FROM user_table u;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.