Oracle
您可以獲得 Oracle SecureFile LOB 的文件句柄嗎?
Oracle 的 SecureFile LOB 是否允許我獲取底層資源的文件句柄。
PostgreSQL through
lo_open
和帶有 FILESTREAM 的 SQL ServerOpenSqlFilestream
都允許您獲取數據庫跟踪的資源的本機文件句柄。Oracle 的替代品是什麼?
- 使用 PostgreSQL,您可以通過提供僅在事務期間有效的資源 id(大對象 id)來獲得文件句柄,並且數據庫提供文件句柄。
- 使用 SQL Server,您會得到一個
transactionToken
僅在事務期間有效的事務,您可以提供給事務處理OpenSqlFilestream
以獲取文件句柄。
不,SecureFile 公開 FileHandle
你不能。(內部)LOB 沒有文件句柄。Oracle 將它們的大型二進制實現分為內部或外部的。內部 Lobs 使用
OCILobLocator
OCI類型的“Lob Locator”(Oracle 術語)進行跟踪。您可以使用 Oracle 呼叫介面 (OCI) 對它們執行操作。OCI 的操作將 Lob Locator 作為句柄,但在其他方面沒有用處,並且沒有所有 POSIX 操作的等效項。例如,沒有fseek
.外部 LOB
Oracle 提供了一個稱為“BFILE”的“外部 LOB”。BFILE 與磁碟上的路徑相關聯。使用該路徑,您可以使用 手動打開文件
open
,但沒有事務令牌,並且文件句柄在事務結束時不會關閉。請注意,“BFILE”不支持重複數據刪除、壓縮或加密,對於這些功能,您將留給磁碟的底層文件系統。
C/C++
我假設您正在尋找
BLOB class
.請注意,它看起來需要“厚客戶端”(OCI)連接。也就是說,任何
client
人都需要Oracle Client
安裝。(伺服器應該已經安裝了它)Oracle 文件系統 (OFS)
我本來想的是
DBFS
和OFS
。這些功能允許您將 aTABLE
轉換為文件系統。如果你在 Linux 上,你甚至mount
可以。https://oracle-base.com/articles/12c/ofs-and-dbfs-enhancements-12cr2