Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

360
Vistas
Operaciones de archivos de E/S en Postgresql

Soy nuevo en PostgreSQL y necesito que alguien me indique la dirección correcta sobre cómo escribir los resultados de una función en un archivo de texto. ¿Es posible hacer esto dentro del lenguaje PostgreSQL PL/pgSQL ? He hecho esto antes en Oracle usando los comandos UTL_FILE y esperaba que PostgreSQL tuviera una funcionalidad similar. Gracias de antemano por cualquier ayuda que pueda brindar.

Sírvase proporcionar algunos ejemplos de operaciones con archivos.

 CREATE OR REPLACE FUNCTION NP_AC015_FETCH.proc_log (P_MSG text, P_MODE integer default 1) RETURNS VOID AS $body$ DECLARE V_F_IS_OPEN boolean; --IF LOG FILE IS ALREADY OPEN THIS IS SET TO TRUE V_LOG_MSG varchar(32767); --LOG FILE NAME V_LOG_DIR varchar(30) := 'ND_GANJIS_LOG_DIR'; --LOG DIRECOTY vTemp UTL_FILE.FILE_TYPE; BEGIN select get_var('GM_LOG_FILE') INTO vTemp; V_F_IS_OPEN := utl_file.is_open(vTemp); if not V_F_IS_OPEN then -- Log File Open -- 32767 IS THE MAXIMUM NUMBER OF CHARACTERS PER LINE, INCLUDING THE NEWLINE CHARACTER, FOR THIS FILE. vTemp := UTL_FILE.FOPEN(V_LOG_DIR, 'NIA_PLSQL_'||to_char(clock_timestamp(), 'yyyymmdd')||'.log', 'A', 32767); end if; -- LOG MSG TO BE WRITTEN TO THE LOG FILE V_LOG_MSG := TO_CHAR(CURRENT_TIMESTAMP, 'yyyy/mm/dd hh24:mi:ss:ff3') ||' '|| P_MSG; --Output messages to a file UTL_FILE.PUT_LINE(vTemp, V_LOG_MSG); --Closing Log File if P_MODE = current_setting('NP_AC015_FETCH.PV_LOG_CLOSE_MODE')::pls_integer and utl_file.is_open(vTemp) then utl_file.fclose(vTemp); end if; --HERE THE EXCEPTION PART IS NOT INCLUDED, --Reason: PROGRAM WILL GO ON INFINITE LOOP IF SOME ERROR OCCURS HERE, BECAUSE, EACH EXCEPTION WRITES INTO --LOG FILE, USING THIS PROCEDURE. exception when others then RAISE EXCEPTION '%', dbms_utility.format_error_backtrace||chr(10)||dbms_utility.format_error_stack||chr(10)||dbms_utility.format_call_stack, true; END; $body$ LANGUAGE PLPGSQL;
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede instalar el módulo de contribución de adminpack y usar la función pg_file_write(filename text, data text, append boolean) .

Tenga en cuenta que esta función está restringida a los superusuarios, pero puede crear una función SECURITY DEFINER propiedad de un superusuario que proporcione la funcionalidad necesaria a los usuarios que elija.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda