以下は、ファイルがPL/SQLに存在するかどうかを確認するためのストアド関数の例です。
ファイルが存在するかどうかを確認するためのPL/SQL関数の例
次の関数は2つのパラメータを取ります。1つはOracleディレクトリオブジェクト名用で、もう1つはファイル名用で、ブール型を返します。ファイルが存在する場合はtrueを返し、そうでない場合は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;
テスト
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; /
出力
File exists. PL/SQL procedure successfully completed.
関連項目:
- UTL_FILE.FCOPYの例
- UTL_FILE.FREMOVEの例