管理目錄

Autonomous Database on Dedicated Exadata Infrastructure 可讓您在資料庫中建立目錄,儲存檔案的方式與在作業系統檔案系統中執行相同。此儲存檔案的功能在匯出與匯入資料時特別有用。

相關主題

刪除目錄

使用資料庫 DROP DIRECTORY 命令刪除目錄物件。

例如,下列命令會刪除資料庫目錄物件 staging

DROP DIRECTORY staging;

DROP DIRECTORY 指令不會刪除目錄中的檔案。若要刪除目錄和目錄中的檔案,請先使用 DBMS_CLOUD.DELETE_FILE 程序刪除檔案。請參閱 DELETE_FILE 程序瞭解詳細資訊。

若要刪除目錄,您必須具有 DROP ANY DIRECTORY 系統權限。ADMIN 使用者會被授予 DROP ANY DIRECTORY 系統權限。ADMIN 使用者可以將 DROP ANY DIRECTORY 系統權限授予其他使用者。

請參閱 Oracle Database 19c SQL Language Reference 中的 DROP DIRECTORYOracle Database 23ai SQL Language Reference ,瞭解詳細資訊。

附註:

  • 如果您只想刪除目錄,而不要移除目錄中的檔案,在刪除目錄後,您可以檢視檔案系統中的所有檔案,包括在您刪除之目錄中的任何檔案,如下所示:

    CREATE OR REPLACE DIRECTORY ROOT_DIR AS '';

    然後使用下列命令列出 ROOT_DIR 的內容:

    SELECT * FROM DBMS_CLOUD.LIST_FILES('ROOT_DIR');

    若要以 ADMIN 以外的使用者執行 DBMS_CLOUD.LIST_FILES ,您必須將目錄的讀取權限授與該使用者。如需詳細資訊,請參閱 LIST_FILES 函數

  • DROP DIRECTORY 指令不會移除基礎檔案系統目錄。Autonomous Database 會管理基礎檔案系統目錄;使用者不會移除檔案系統目錄。

列出目錄內容

使用 DBMS_CLOUD.LIST_FILES 函數來列出目錄的內容。

例如,若要列出 stage 目錄的內容,請執行下列查詢:

SELECT * FROM DBMS_CLOUD.LIST_FILES('STAGE');

若要以 ADMIN 以外的使用者執行 DBMS_CLOUD.LIST_FILES,您必須將目錄的讀取權限授與該使用者。如需詳細資訊,請參閱 LIST_FILES 函數

在雲端物件儲存與目錄之間複製檔案

請使用 DBMS_CLOUD.PUT_OBJECT 程序,將檔案從目錄複製到雲端物件儲存。請使用 DBMS_CLOUD.GET_OBJECT 程序將檔案從雲端物件儲存複製到目錄。

例如,若要將檔案從雲端物件儲存複製到 stage 目錄,請執行下列命令:

BEGIN
   DBMS_CLOUD.GET_OBJECT(
   credential_name => 'DEF_CRED_NAME',
   object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/cwallet.sso',
   directory_name => 'STAGE');
END;
/

在此範例中,object_uri 是一個 Oracle Cloud Infrastructure Swift URI,可在 us-phoenix-1 區域的 mybucket 儲存桶中指定 cwallet.sso 檔案。(idthydc0kinr 是儲存桶所在的物件儲存命名空間。)如需有關支援 URI 格式的資訊,請參閱雲端物件儲存 URI 格式

若要以 ADMIN 以外的使用者執行 DBMS_CLOUD.GET_OBJECT ,您必須將目錄的寫入權限授與該使用者。

若要以 ADMIN 以外的使用者執行 DBMS_CLOUD.PUT_OBJECT ,您必須將目錄的讀取權限授與該使用者。

請參閱 GET_OBJECT 程序PUT_OBJECT 程序瞭解詳細資訊。