2014-10-22 23 views
-1

我已經創建了一個服務器數據庫目錄,然後使用PL/SQL保存了一些excel文件。現在我想檢查文件是否已成功保存?如何知道服務器數據庫目錄中的庫存文件?

+0

_「我想檢查文件是否已成功保存」_什麼讓你覺得你不能相信「文件寫入功能」,但你可以更信任「文件檢查功能」?你只是想檢查文件的存在嗎?你還需要檢查內容嗎?和/或元數據? – 2014-10-22 11:52:52

+0

我想檢查文件的存在。 – 2014-10-22 11:56:54

+0

@NG你可以嘗試重新打開文件,或者使用'UTL_FILE.FGETATTR'。我已將兩種解決方案都公佈爲不同的答案,因此社區(包括*您*)將能夠顯示其偏好。 – 2014-10-22 12:15:11

回答

0

我想檢查文件的存在。如果文件不

F1 := UTL_FILE.FOPEN('MYDIR','MYFILE','RB'); 
UTL_FILE.FCLOSE(F1); 

假設你知道你的文件的名字,如果你只是想測試文件的存在,你可以嘗試repoen它以只讀模式存在,你將有一個例外:

INVALID_PATH: File location or name was invalid. 

此外,一旦文件被打開,你將能夠與預期的實際內容進行比較。例如,您可以檢查一些文件簽名(又名"magic numbers"

0

的其他選項的存在(乾淨?更理想?)是使用UTL_FILE.FGETATTR

UTL_FILE.FGETATTR(
    location IN VARCHAR2, 
    filename IN VARCHAR2, 
    fexists  OUT BOOLEAN, 
    file_length OUT NUMBER, 
    blocksize OUT BINARY_INTEGER); 

第三個參數指示文件是否存在或不。另外,你將能夠得到實際的文件大小(以字節爲單位)。可以幫助比較預期文件的大小。

相關問題