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.

No es posible resolver el error en PL/pgSQL con SELECT INTO.

No puedo resolver este error con un procedimiento almacenado. El código funciona bien fuera del procedimiento, pero cuando lo guardo en el procedimiento, recibo el siguiente error:

Error “join_table” no es una variable conocida
Línea 14: INTO join_table

Si elimino esa línea, todo funciona perfectamente. Agradezco cualquier sugerencia o ayuda. La idea es que el procedimiento trunque las 2 tablas principales, elimine y vuelva a crear la tabla “join_table” basándose en un disparador para actualizar todos los datos.

CREATE OR REPLACE PROCEDURE rental_refresh()
LANGUAGE plpgsql
AS $$
BEGIN
TRUNCATE new_table;
TRUNCATE ts_30;
DROP TABLE join_table;

INSERT INTO new_table (c1, c2, c3,c4,c5)
SELECT c1, c2, c3, c4,c5
FROM other_table;

SELECT r.c1, r.c2, cr.c1, cr.c2, cr.c3, cr.c4, cr.sc5
INTO join_table
FROM new_table cr
INNER JOIN r_table r ON cr.c1=r.r1;
END; $$
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error indica que “join_table” no es una variable conocida. Esto sugiere que hay un problema con la definición o declaración de la variable “join_table”. Es posible que la variable no se haya declarado o definido correctamente dentro del procedimiento.

    Una solución potencial es definir explícitamente la variable “join_table” antes de intentar insertar datos en ella. Esto se puede hacer utilizando la siguiente instrucción antes de la consulta de inserción:

    DECLARE join_table TABLE (c1 tipo_de_dato, c2 tipo_de_dato, c3 tipo_de_dato, c4 tipo_de_dato, sc5 tipo_de_dato);
    

    Esta instrucción define una variable de tabla temporal llamada “join_table” con columnas que coinciden con los tipos de datos de las columnas que se están seleccionando.

    Otra solución potencial es verificar si hay algún conflicto de nombres entre la variable y las tablas u objetos existentes en la base de datos.

    Por último, puede ser recomendable realizar una depuración utilizando instrucciones de impresión para mostrar los valores de las variables clave en diferentes etapas de la ejecución del procedimiento. Esto puede ayudar a aislar cualquier problema con el código y reducir las posibles soluciones.

Comments are closed.