es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

ORA-00904: “PREV_VAL_R”: identificador no válido

Estoy intentando recolectar valores en masa en una colección. Obtiene ORA-00904: "PREV_VAL_R" identificador no válido. El código está simplificado.

PROCEDURE MY_HELPER() IS
----------------------------------------------------------------
    TYPE PREV_VAL_R IS RECORD( 
            DESC1     VARCHAR2(250), 
            MONTH_VAL VARCHAR2(250),
            MONTH_ALL VARCHAR2(250));
    TYPE PREV_VAL_T IS TABLE OF  PREV_VAL_R;   

BEGIN
    SELECT PREV_VAL_R(DESC1, MONTH_VAL, MONTH_ALL)
    BULK COLLECT INTO PREV_VAL_T
    FROM MY_TABLE;
END MY_HELPER;

¿Qué estoy haciendo mal?
¡Gracias!

Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema en el código proporcionado es que falta el nombre de la tabla en la sentencia SELECT. Debes especificar el nombre de la tabla en lugar de “MY_TABLE” que has utilizado en la cláusula FROM, asumiendo que el nombre de la tabla es “MY_TABLE”. Además, debes declarar la variable de colección e inicializarla antes de recopilar en masa los valores en ella. Aquí está el código corregido como referencia:

    PROCEDURE MY_HELPER() IS
    ----------------------------------------------------------------
        TYPE PREV_VAL_R IS RECORD( 
                DESC1     VARCHAR2(250), 
                MONTH_VAL VARCHAR2(250),
                MONTH_ALL VARCHAR2(250));
        TYPE PREV_VAL_T IS TABLE OF  PREV_VAL_R;   
    
        l_prev_val_t PREV_VAL_T;  -- Declarar la variable de colección
    
    BEGIN
        SELECT PREV_VAL_R(DESC1, MONTH_VAL, MONTH_ALL)
        BULK COLLECT INTO l_prev_val_t  -- Utilizar la variable de colección aquí
        FROM MY_TABLE;  -- Especificar el nombre de la tabla aquí
    
    END MY_HELPER;
    

    Espero que esto ayude!

Comments are closed.