Microsoft
Software
Hardware
Network
Question : ORA error-too many values
When I debug, I see the problem was with the execute immediate statement. The table where cursor is selecting the data from is a temporary table available for that session.
PROCEDURE PROGRAMASSIGNMENT_CONV (P_CLIENTID IN NUMBER) IS
TYPE PROGRAMASSIGNMENT_TAB IS TABLE OF PROGRAMASSIGNMENT%ROWTYPE INDEX BY SIMPLE_INTEGER;
L_PROGRAMASSIGNMENT PROGRAMASSIGNMENT_TAB;
-- L_PROGRAMASSIGNMENTID PROGRAMASSIGNMENT.PROGRAMA
SSIGNMENTI
D%TYPE;
L_LIMIT PLS_INTEGER := 500000;
CURSOR CUR_PROGRAMASSIGNMENT IS
SELECT PROGRAMASSIGNMENTID_SEQ.NE
XTVAL,
A.CLIENTID,
A.VENDORID,
A.PID,
A.SUBPID,
A.PROGRAMID,
A.TRIAGEFILTERID,
A.CASEID,
A.CLIENTCASENO,
A.WORKFLOWSTATUS,
A.APPLICATIONID,
A.ISPRIMARYIND,
A.STATUSCHANGEREASONID,
A.INTERVENTIONLEVELID,
A.DMINTERVENTIONTYPEID,
A.PROGRAMRANK,
A.IDENTIFIEDDATE,
A.SELECTEDDATE,
A.OPENEDDATE,
A.CLOSEDDATE,
A.DECLINEDDATE,
A.INTAKEDATE,
A.INTAKESOURCEID,
A.REFERRALID,
A.INSERTEDBY,
sysdate,
A.RUNID
FROM CDRLOAD.GTEMP_BSC_PROGRAMA
SSIGNMENT A;
l_clientname VARCHAR2 (100);
BEGIN
-- populate cdrload.gtemp_bsc_programa
ssignment from sql server thru DBLINK
l_clientname := getclientname (p_clientid, 'CDR_PROGRAMASSIGNMENT_CON
V');
EXECUTE IMMEDIATE 'INSERT INTO cdrload.gtemp_bsc_programa
ssignment SELECT * FROM ' || l_clientname;
SELECT A.RUNID
INTO L_RUNID
FROM CDRLOAD.GTEMP_BSC_PROGRAMA
SSIGNMENT A
WHERE ROWNUM = 1;
OPEN CUR_PROGRAMASSIGNMENT;
LOOP
FETCH CUR_PROGRAMASSIGNMENT BULK COLLECT
INTO L_PROGRAMASSIGNMENT LIMIT L_LIMIT;
RUNIDTRACKING_PKG.STATUS_T
RACKING(P_
CLIENTID,
'conversion_pkg.CDR_PROGRA
MASSIGNMEN
T_CONV',
'Bulk collect count for INSERT',
L_PROGRAMASSIGNMENT.COUNT,
L_RUNID);
-- insert into programassignment table
FORALL I IN 1 .. L_PROGRAMASSIGNMENT.COUNT
INSERT INTO PROGRAMASSIGNMENT VALUES L_PROGRAMASSIGNMENT (I);
EXIT WHEN CUR_PROGRAMASSIGNMENT%NOTF
OUND;
END LOOP;
CLOSE CUR_PROGRAMASSIGNMENT;
EXCEPTION
WHEN OTHERS THEN
RUNIDTRACKING_PKG.STATUS_T
RACKING(P_
CLIENTID,
'conversion_pkg.CDR_PROGRA
MASSIGNMEN
T_CONV',
SQLERRM,
0,
L_RUNID);
END PROGRAMASSIGNMENT_CONV;
Answer : ORA error-too many values
You need to use your column names.
I don't know your table structures. You need to get the column names from gtemp_bsc_programassignmen
t and CDR_PROGRAMASSIGNMENT_CONV
and insert them explicitly into the insert statement:
INSERT INTO cdrload.gtemp_bsc_programa
ssignment(
----INSERT
YOUR COLUN NAMES HERE-----)
SELECT (----INSERT YOUR COLUN NAMES HERE-----) FROM IngersollRand.CDR_PROGRAMA
SSIGNMENT_
CONV@INGES
T;
Random Solutions
How to remove automatic login from Outlook 2010
How to determine hard disk activities
Sync iPhone w/Outlook without iTunes or Exchange
Windows XP problems after a hard drive clone of a bad drive
Anyone get Quickbooks errors in the Windows App log but not the program? Intuit says normal
Changing from ASPSmartUpload to ASPUpload
SSAS 2008 MDX All Member Before Current Member
Any help regarding video scene change detection using C#
RAID 1
Check to see if a table has a certain value, MS Access 2003