如何從PL/SQL內部在OS上創建物理目錄?我看了一下CREATE OR REPLACE DIRECTORY
的命令,但那不行。 UTL_FILE
似乎也沒有能力。如何在文件系統上創建目錄?
回答
最後我找到了一個更簡單的解決方案。使用
select os_command.exec('mkdir /home/oracle/mydir') from dual;
或者乾脆
x := os_command.exec('mkdir /home/oracle/mydir');
我相信唯一的方法是使用外部過程(C或Java)並通過PL/SQL調用它。 PL/SQL本身沒有辦法創建物理OS目錄。
PL/SQL Tips提供了一個很好的例子,說明如何創建一個執行shell命令的C外部過程。請注意,我不認爲最好的做法是出於安全原因考慮到這一點。
它,你可以先創建的目錄,然後你可以使用
create or replace directory myDir as '<path-to-dir>/myDir';
請注意,您將需要具有CREATE分配給執行命令的用戶ANY DIRECTORY權限。在使用上述命令創建目錄之後,請確保將該目錄的任何必需特權分配給其他用戶。
grant read, write on directory myDir to testUsers;
UTL_FILE
仍然缺乏這種能力 - 可能是從預DIRECTORY
對象天,你必須明確定義,你可以在啓動參數訪問操作系統文件目錄保持,所以沒有需要動態創建目錄無論如何。
我認爲這樣做最簡單的方法是使用Oracle Java存儲過程:
File f = new File(dirname);
return (f.mkdir()) ? 1 : 0;
如果你走這條路線,確保您使用dbms_java.grant_permission
授予java.io.FilePermission
到擁有執行用戶碼。
感謝。我討厭編寫Java,除非絕對被迫。最後,我找到了一個更簡單的方法,使用os_command.exec和mkdir一起使用PLSQL。看到我下面的評論。 – TrojanName 2011-05-11 10:35:20
我剛剛檢查了數據庫版本11.2的新文檔,並且仍然沒有可以找到創建目錄的例程。因此,與其他受訪者一樣,我建議使用Java或C例程。
- 1. 在hadoop文件系統中創建目錄
- 2. 無法在hadoop文件系統中創建目錄
- 3. 如何在SQL Server 2005調用/查詢中創建文件系統目錄
- 4. 如何在Android數據/數據/項目文件系統中創建文件目錄和文件夾
- 5. 在文件系統中創建文件
- 6. 在文件中創建文件系統
- 7. 如何在保存文件時在文件系統上創建文件夾
- 8. 在ext2文件系統的根目錄下創建一個新文件
- 9. 在AHK上創建文本宏系統
- 10. 如何在文件系統的目錄中刪除ATR文件後重新創建ATR文件?
- 11. 如何在內存中創建一個目錄?僞文件系統/虛擬目錄
- 12. HTML5文件系統:文件未在設備上創建
- 13. 無法創建本地文件系統如何寫入本地文件系統
- 14. 如何在傳統ASP中爲複製文件創建目標目錄結構?
- 15. 如何在枚舉目錄時訪問系統文件夾?
- 16. 如何在Windows操作系統中訪問Undeletable目錄/文件?
- 17. Django的夾層上傳文件 - 如何創建上傳目錄
- 18. Django文件上傳和創建目錄
- 19. 可以在系統的臨時目錄中創建flymake的臨時文件嗎?
- 20. 在/ sys文件系統中創建條目
- 21. Bash遠程文件系統目錄test
- 22. 寫入系統目錄中的文件
- 23. 文件系統路徑創建錯誤(文件上傳)
- 24. 如何在Linux系統中創建/訪問共享文件夾?
- 25. 創建jar文件目錄?
- 26. 創建jar文件目錄
- 27. 如何讓android構建系統來創建jar文件?
- 28. 如果創建目錄不存在以創建文件,該如何創建目錄?
- 29. 文件上傳替代登錄系統
- 30. 如何配置PHP有權創建目錄和創建文件?
我只是在這裏添加一個鏈接到os_command,因爲我之前不知道它.. http://plsqlexecoscomm.sourceforge.net/ – ShoeLace 2013-08-16 01:51:25