Pergunta : Erro-demasiado de ORA muitos valores


Quando eu elimino erros, eu ver que o problema era com a indicação imediata da execução.  A tabela de onde o cursor está selecionando os dados é uma tabela provisória disponível para essa sessão.


O PROCEDIMENTO PROGRAMASSIGNMENT_CONV (P_CLIENTID NO NÚMERO) É

    O TIPO PROGRAMASSIGNMENT_TAB É TABELA DO ÍNDICE DE PROGRAMASSIGNMENT%ROWTYPE POR SIMPLE_INTEGER;
    L_PROGRAMASSIGNMENT PROGRAMASSIGNMENT_TAB;
   -- L_PROGRAMASSIGNMENTID PROGRAMASSIGNMENT.PROGRAMASSIGNMENTID%TYPE;
    L_LIMIT PLS_INTEGER: = 500000;

    O CURSOR CUR_PROGRAMASSIGNMENT É
      SELECIONAR 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);

  COMEÇAR
    -- povoar cdrload.gtemp_bsc_programassignment do usuário do sql com DBLINK

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


    EXECUTAR a “INSERÇÃO IMEDIATA em cdrload.gtemp_bsc_programassignment SELETO * DE” || l_clientname;



    SELECIONAR A.RUNID
      EM L_RUNID
      DE CDRLOAD.GTEMP_BSC_PROGRAMASSIGNMENT A
     ONDE ROWNUM = 1;

    ABRIR CUR_PROGRAMASSIGNMENT;
    LAÇO
      O VOLUME DO ESFORÇO CUR_PROGRAMASSIGNMENT COLETA
        NO LIMITE L_LIMIT DE L_PROGRAMASSIGNMENT;
      RUNIDTRACKING_PKG.STATUS_TRACKING (P_CLIENTID,
                                        “conversion_pkg.CDR_PROGRAMASSIGNMENT_CONV”,
                                        O “volume coleta a contagem para a INSERÇÃO”,
                                        L_PROGRAMASSIGNMENT.COUNT,
                                        L_RUNID);


      -- inserção na tabela do programassignment

      FORALL I EM 1. L_PROGRAMASSIGNMENT.COUNT
        A INSERÇÃO EM PROGRAMASSIGNMENT AVALIA L_PROGRAMASSIGNMENT (I);
      RETIRAR QUANDO CUR_PROGRAMASSIGNMENT%NOTFOUND;
    TERMINAR O LAÇO;
    FECHAR CUR_PROGRAMASSIGNMENT;
  EXCEÇÃO
    QUANDO OUTRO ENTÃO
      RUNIDTRACKING_PKG.STATUS_TRACKING (P_CLIENTID,
                                        “conversion_pkg.CDR_PROGRAMASSIGNMENT_CONV”,
                                        SQLERRM,
                                        0,
                                        L_RUNID);
  EXTREMIDADE PROGRAMASSIGNMENT_CONV;

Resposta : Erro-demasiado de ORA muitos valores

Você precisa de usar seus nomes de coluna.

Eu não sei suas estruturas da tabela.  Você precisa de começ os nomes de coluna do gtemp_bsc_programassignment e do CDR_PROGRAMASSIGNMENT_CONV e de introduzi-los explicitamente na indicação da inserção:

INSERÇÃO em cdrload.gtemp_bsc_programassignment (----INTRODUZIR SEUS NOMES DE COLUN AQUI-----)
SELECIONAR (----INTRODUZIR SEUS NOMES DE COLUN AQUI-----) de IngersollRand.CDR_PROGRAMASSIGNMENT_CONV@INGEST;
Outras soluções  
 
programming4us programming4us