【问题标题】:oracle collection not enough valuesoracle 集合没有足够的值
【发布时间】:2011-03-03 06:10:16
【问题描述】:

我做了以下:

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; 

但随后进行如下查询:

我的记录我的记录

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

给出错误ORA-00947: not enough values

我在这里做错了什么?

【问题讨论】:

    标签: oracle plsql collections sql-types


    【解决方案1】:

    当使用批量收集填充 SQL 类型时,我们需要包含行(而不是表)类型。

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

    【讨论】:

    • +1 我很惊讶您需要在选择中指定记录类型。这与可变数组机制不同。 @john,这不是你要找的答案吗?
    • 谢谢你,我只是浪费了一天的大部分时间来解决这个问题!对于记录类型,这不是必需的,但对于您明智地提到的对象类型,这是必需的。
    【解决方案2】:

    没有 FROM 子句。

    试试FROM DUAL

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      • 2020-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多