2010-06-13 28 views
4

我以下:甲骨文合集不够值

create or replace type my_row as object 
    (
    lname varchar2(30), 
    fname varchar2(30), 
    MI char(1), 
    hohSSN char (9), 
    hohname VARCHAR2(63), 
    hohDob char(10), 
    dob DATE 
    ); 

create or replace type eiv.my_rec as table of eiv.my_row; 

但然后做查询,如:

my_records my_rec

select '', '', '', '', '', '', sysdate bulk collect into my_records from dual; 

给出错误ORA-00947: not enough values

什么我可以做这里错了吗?

回答

-1

否FROM子句。

尝试FROM DUAL

+0

....我从双... – john 2010-06-13 16:33:40

8

当填充SQL类型的批量收集,我们需要包括行(不表)类型。

select my_row ('', '', '', '', '', '', sysdate) 
bulk collect into my_records 
from dual; 
+0

+1我很惊讶,你需要规定在选择的记录类型。这与varray机制不同。 @john,这不是你要找的答案吗? – wmorrison365 2013-02-27 12:01:12

+0

谢谢你,我只是浪费了一天的很大一部分时间来试图解决这个问题! 对于记录类型,这不是必需的,但对于明智提及的对象类型,这是必要的。 – 2015-05-19 12:04:22