Oracleデータベース
CREATE PROCEDURE copy_file(fromname VARCHAR2, toname VARCHAR2) AS
BEGIN
UTL_FILE.FCOPY('DIR1', fromname, 'DIR2', toname, 1, NULL);・・・(7)
RETURN;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('-- SQL Error --');
DBMS_OUTPUT.PUT_LINE('ERROR : ' || SQLERRM );
RETURN;
END;
/
set serveroutput on
call copy_file('file01.txt','file01_bk.txt');
Symfoware Server
CREATE FUNCTION copy_file(fromname VARCHAR, toname VARCHAR) RETURNS void AS $$
BEGIN
PERFORM DBMS_OUTPUT.SERVEROUTPUT(TRUE);
PERFORM UTL_FILE.FCOPY('/home/symfo', fromname, '/home/backup', toname, 1, NULL);・・・(7)
RETURN;
EXCEPTION
WHEN OTHERS THEN
PERFORM DBMS_OUTPUT.PUT_LINE('-- SQL Error --');
PERFORM DBMS_OUTPUT.PUT_LINE('ERROR : ' || SQLERRM );
RETURN;
END;
$$
LANGUAGE plpgsql;
SELECT copy_file('file01.txt','file01_bk.txt');
UTL_FILE.FCOPY(第1引数, 第2引数, 第3引数, 第4引数, 第5引数, 第6引数)
CREATE DIRECTORY文を使用している場合(Oracle9.2i以降)、ディレクトリ名にディレクトリ・オブジェクト名を指定します。
ディレクトリ名にディレクトリ・オブジェクト名は指定できません。
以下の手順で移行してください。ディレクトリ・オブジェクト名と実際のディレクトリ名の対応の確認方法は、UTL_FILE_DIR/CREATE DIRECTORYを参照してください。
“UTL_FILE.FCOPY”というキーワードでストアドプロシジャ内を検索し、呼び出し箇所を特定します。
第1引数、および第3引数のディレクトリ・オブジェクト名(例の'DIR1'と'DIR2')に対応する実際のディレクトリ名(例の'/home/symfo'と'/home/backup')を確認します。
ディレクトリ・オブジェクト名(例の'DIR1'と'DIR2')を、1.で確認した実際のディレクトリ名(例の'/home/symfo'と'/home/backup')に置き換えます。