2010-06-13 12 views
4

je ne suit:collection oracle pas des valeurs assez

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; 

mais faire ensuite requête comme:

my_records my_rec

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

donne erreur ORA-00947: not enough values

Que puis-je faire mal ici?

Répondre

-1

aucune clause FROM.

essayer FROM DUAL

+0

.... J'ai de dual ... – john

8

lors du remplissage de types SQL avec vrac Prélever nous devons inclure la ligne (pas la table) type.

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

+1 Je suis surpris que vous ayez besoin de stipuler le type d'enregistrement dans le select. Cela diffère du mécanisme de varray. @john, n'est-ce pas la réponse que vous cherchez? – wmorrison365

+0

Merci, je viens de perdre une bonne partie de la journée à essayer de comprendre ça! Pour les types d'enregistrements, cela n'est pas nécessaire, mais pour les types d'objets, comme vous l'avez judicieusement mentionné, cela est nécessaire. –