Cuestión : Error-demasiado de ORA muchos valores


Cuando elimino errores, veo que el problema estaba con la declaración inmediata de la ejecución.  La tabla de donde el cursor está seleccionando los datos es una tabla temporal disponible para esa sesión.


EL PROCEDIMIENTO PROGRAMASSIGNMENT_CONV (P_CLIENTID EN GRAN NÚMERO) ES

    EL TIPO PROGRAMASSIGNMENT_TAB ES TABLA DE ÍNDICE DE PROGRAMASSIGNMENT%ROWTYPE POR SIMPLE_INTEGER;
    L_PROGRAMASSIGNMENT PROGRAMASSIGNMENT_TAB;
   -- L_PROGRAMASSIGNMENTID PROGRAMASSIGNMENT.PROGRAMASSIGNMENTID%TYPE;
    L_LIMIT PLS_INTEGER: = 500000;

    EL CURSOR CUR_PROGRAMASSIGNMENT ES
      SELECCIONAR PROGRAMASSIGNMENTID_SEQ.NEXTVAL,
             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
        DE CDRLOAD.GTEMP_BSC_PROGRAMASSIGNMENT A;

   l_clientname VARCHAR2 (100);

  COMENZAR
    -- poblar cdrload.gtemp_bsc_programassignment del servidor del sql con DBLINK

    l_clientname: = getclientname (p_clientid, “CDR_PROGRAMASSIGNMENT_CONV ");


    EJECUTAR el “PARTE MOVIBLE INMEDIATO EN cdrload.gtemp_bsc_programassignment SELECTO * DE” || l_clientname;



    SELECCIONAR A.RUNID
      EN L_RUNID
      DE CDRLOAD.GTEMP_BSC_PROGRAMASSIGNMENT A
     DONDE ROWNUM = 1;

    ABRIR CUR_PROGRAMASSIGNMENT;
    LAZO
      EL BULTO DEL ALCANCE CUR_PROGRAMASSIGNMENT RECOGE
        EN EL LÍMITE L_LIMIT DE L_PROGRAMASSIGNMENT;
      RUNIDTRACKING_PKG.STATUS_TRACKING (P_CLIENTID,
                                        “conversion_pkg.CDR_PROGRAMASSIGNMENT_CONV”,
                                        El “bulto recoge la cuenta para el PARTE MOVIBLE”,
                                        L_PROGRAMASSIGNMENT.COUNT,
                                        L_RUNID);


      -- parte movible en la tabla del programassignment

      FORALL I EN 1. L_PROGRAMASSIGNMENT.COUNT
        EL PARTE MOVIBLE EN PROGRAMASSIGNMENT VALORA L_PROGRAMASSIGNMENT (I);
      SALIR CUANDO CUR_PROGRAMASSIGNMENT%NOTFOUND;
    TERMINAR EL LAZO;
    CERRAR CUR_PROGRAMASSIGNMENT;
  EXCEPCIÓN
    CUANDO OTROS ENTONCES
      RUNIDTRACKING_PKG.STATUS_TRACKING (P_CLIENTID,
                                        “conversion_pkg.CDR_PROGRAMASSIGNMENT_CONV”,
                                        SQLERRM,
                                        0,
                                        L_RUNID);
  EXTREMO PROGRAMASSIGNMENT_CONV;

Respuesta : Error-demasiado de ORA muchos valores

Usted necesita utilizar sus nombres de columna.

No sé sus estructuras de la tabla.  Usted necesita conseguir los nombres de columna del gtemp_bsc_programassignment y de CDR_PROGRAMASSIGNMENT_CONV e insertarlos explícitamente en la declaración del parte movible:

PARTE MOVIBLE EN cdrload.gtemp_bsc_programassignment (----INSERTAR SUS NOMBRES DE COLUN AQUÍ-----)
SELECCIONAR (----INSERTAR SUS NOMBRES DE COLUN AQUÍ-----) de IngersollRand.CDR_PROGRAMASSIGNMENT_CONV@INGEST;
Otras soluciones  
 
programming4us programming4us