depuración de psql – procedimiento de sesión
Estoy tratando de modificar un procedimiento de sesiones existente para agregar el recuento de ciclos. El error que estoy obteniendo es el siguiente:
Error de SQL [42601]: ERROR: error de sintaxis en o cerca de “END”
Posición: 3587
--llamar a transactions.packs.tep.session()
CREATE OR REPLACE PROCEDURE transactions.packs.tep.session()
LANGUAGE plpgsql
AS $procedure$
DECLARE
session "transactions.packs"."simple.sessions";
"sessionToSearch" TEXT;
"endTimeStamp" TIMESTAMP WITH TIME ZONE;
"energy" NUMERIC;
"charge" NUMERIC;
"duration" NUMERIC;
"cycleCount" NUMERIC;
"f" RECORD;
BEGIN
"cycleCount" = '0';
-- sentencia para reiniciar la sesión
FOR session IN SELECT * FROM "transactions.packs"."simple.sessions" WHERE "sessionDuration" IS NULL
LOOP
BEGIN
IF session."sessionType" = 0 THEN
"sessionToSearch" := 'Carga';
ELSIF session."sessionType" = 1 THEN
"sessionToSearch" := 'Descarga';
END IF;
-- Cuenta del ciclo de sesión: Inicio
EXECUTE FORMAT(
'FOR f IN select (current' || '%s' || '), "timestamp"
FROM "transactions_packs"."basic_measurements_packs" a order by a."timestamp" desc
LOOP
BEGIN
IF AVG((current' || '%s' || '))
OVER (ORDER BY "f"."timestamp" ROWS BETWEEN 3 PRECEDING AND CURRENT ROW) > 0.01
then cycleCount = cycleCount + 1;
END IF;
END
END LOOP;','%s',"sessionToSearch","sessionToSearch")
-- obtener el valor de la sentencia IF y ELSE para buscar registros en las columnas de carga y descarga
-- Cuenta del ciclo de sesión: Fin
END ;
END LOOP;
end;
$procedure$
;
davy.ai
Parece que el error en el código está relacionado con un problema en la sintaxis del procedimiento. Específicamente, el error menciona un problema cerca de la palabra clave “END”. Esto podría estar relacionado con un delimitador faltante o mal ubicado en el código.
Sin más contexto o conocimiento del esquema de datos, es difícil brindar una orientación más específica. Sin embargo, una posible solución podría ser revisar cuidadosamente el código y asegurarse de que todas las palabras clave y delimitadores estén colocados y utilizados correctamente. Además, podrían utilizarse herramientas y técnicas de depuración para identificar la fuente específica del error de sintaxis.