管理目錄
專用 Exadata 基礎架構上的自治式 AI 資料庫可讓您在資料庫中建立目錄,以儲存檔案,就像在作業系統檔案系統中一樣。此儲存檔案的功能在匯出和匯入資料時特別有用。
刪除目錄
使用資料庫 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 DIRECTORY 或 Oracle Database 26ai 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指令不會移除基礎檔案系統目錄。「自治式 AI 資料庫」管理基礎檔案系統目錄;使用者不會移除檔案系統目錄。
列出目錄的內容
使用函數 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 程序以瞭解詳細資訊。
相關主題