一部の文字列をtxtファイルに書き込もうとしていますが、V_OUT_FILE
を宣言する必要がありますが、ブロックの宣言セクションで宣言しました。助言がありますか?PLS-00201:識別子 'V_OUT_FILE'を宣言する必要があります
CREATE OR REPLACE DIRECTORY CTEST AS 'C:\Users\myUser\Desktop';
GRANT WRITE ON DIRECTORY CTEST TO PUBLIC
DECLARE
v_out_File UTL_FILE.FILE_TYPE;
BEGIN
v_out_File := UTL_FILE.FOPEN('CTEST', 'IO.txt' , 'W');
UTL_FILE.PUT_LINE(v_out_File , 'Hi this is text file! \n');
UTL_FILE.PUT_LINE(v_out_File , 'Hi this is line 2! \n');
UTL_FILE.FCLOSE(v_out_File);
END;
はOK実行取得
。読取り権限しか与えられていないディレクトリに書込みしようとしている場合を除き、ブロックを所有者(SYS)として実行している場合を除き、ORA-29289がスローされます。 –
@AlexPoole私は書き込むように変更しましたが、それと同じ例外があります – Safwat
投稿したコードをコピーして貼り付けると、正常に完了します。あなたは何か違うものを走っているか、あなたが言わなかったことがあります。 (セミコロンがないため、PLS-00201ではなくORA-29289を与えるため、このグラントはSQL¥* Plusで実行されません)。 –