Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

BULK COLLECT ~ cannot mix between single row and multi-row (BULK) in INTO list

Ricky007Apr 11 2017 — edited Apr 12 2017

Dear experts,

               I want to insert to insert bulk data into ADM_SYSTEM_AVG TABLE ,While performing below block

               i'm getting following error,please suggest me insert data by using bulk collect

              

              PLS-00497: cannot mix between single row and multi-row (BULK) in INTO list

06550. 00000 -  "line %s, column %s:\n%s"

*Cause:    Usually a PL/SQL compilation error.

*Action:

DECLARE

CURSOR CUR_ADMSDISC IS

SELECT     'Disc',    VOLUME,    AVG(CAST(NVL(CURR_SIZE,0) AS NUMBER(19))),AVG(CAST(NVL(TOTAL_SIZE,0) AS NUMBER(19))),

SYSDATE-1,EXTRACT(MONTH FROM SYSDATE-1),EXTRACT(YEAR FROM SYSDATE-1)

FROM    SYSTEM_DISC_INFO_HISTORY 

WHERE  UPDATED_DATE_TIME >= trunc(SYSDATE) -1

and UPDATED_DATE_TIME < trunc(SYSDATE)

GROUP BY VOLUME

UNION ALL

SELECT  'Processor',CPU_NUMBER,  AVG(CAST(NVL(BUSY_PERCENTAGE,0) AS NUMBER(10))),0,    SYSDATE-1,  EXTRACT(MONTH FROM SYSDATE-1),

EXTRACT(YEAR FROM SYSDATE-1)

FROM    SYSTEM_PROCESSOR_INFO_HISTORY 

WHERE  UPDATED_DATE_TIME >= trunc(SYSDATE)-1

and UPDATED_DATE_TIME < trunc(SYSDATE)

GROUP BY CPU_NUMBER;

V_TYP CUR_ADMSDISC%ROWTYPE;

BEGIN

OPEN CUR_ADMSDISC;

LOOP

FETCH CUR_ADMSDISC BULK COLLECT INTO V_TYP;

FORALL I IN 1..V_TYP.COUNT

INSERT INTO ADM_SYSTEM_AVG VALUES V_TYP(I);

EXIT WHEN CUR_ADMSDISC%NOTFOUND;

END LOOP;

CLOSE CUR_ADMSDISC;

END;

please help

This post has been answered by Paulzip on Apr 11 2017
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on May 10 2017
Added on Apr 11 2017
13 comments
7,424 views