sql >> Database >  >> RDS >> Oracle

Hoe te controleren of het bestand bestaat in PL/SQL?

Het volgende is een voorbeeld van een opgeslagen functie om te controleren of een bestand bestaat in PL/SQL.

PL/SQL-functievoorbeeld om te controleren of een bestand bestaat

De onderstaande functie heeft twee parameters nodig, één is voor de objectnaam van de Oracle-directory en de tweede is de bestandsnaam en retourneert het Booleaanse type. Het zal true retourneren als er een bestand bestaat, anders retourneert het false.

CREATE OR REPLACE FUNCTION is_file_exist (p_directory IN VARCHAR2,
p_filename IN VARCHAR2)
RETURN BOOLEAN
AS
n_length NUMBER;
n_block_size NUMBER;
b_exist BOOLEAN := FALSE;
BEGIN
UTL_FILE.fgetattr (p_directory,
p_filename,
b_exist,
n_length,
n_block_size);

RETURN b_exist;
END is_file_exist;

Test

SET SERVEROUTPUT ON;

BEGIN
IF is_file_exist ('CSV_DIR', 'emp.dat')
THEN
DBMS_OUTPUT.put_line ('File exists.');
ELSE
DBMS_OUTPUT.put_line ('File not exists.');
END IF;
END;
/

Uitvoer

File exists.
PL/SQL procedure successfully completed.

Zie ook:

  • UTL_FILE.FCOPY Voorbeeld
  • UTL_FILE.FREMOVE Voorbeeld
  1. Overschakelen van Django-project van sqlite3-backend naar postgresql mislukt bij het laden van datadump

  2. Deelnemen aan MySQL en Postgres in een live gematerialiseerde weergave

  3. Alleen PostgreSQL in het geheugen uitvoeren

  4. listagg-gegevens naar bruikbaar formaat?