管理目錄
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 DIRECTORY 或 Oracle 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 程序瞭解詳細資訊。