BS結構中使用PHP訪問ORACLE LOB
來源:互聯網
上載者:User
摘要:本文介紹了如何利用PHP的資料庫訪問技術實現對ORACLE LOB資料對象的儲存。
關鍵字:PHP;ORACLE; LOB;儲存;
引言
PHP,即“PHP: Hypertext Preprocessor”,是一種廣泛用於 Open Source(開放原始碼)並可以嵌入 HTML 的多用途指令碼語言。它的文法接近 C、Java 和 Perl,易於學習。該語言的主要目標是讓 Web 開發人員快速的書寫動態產生的網頁,然而,PHP 的功能並不局限於此。PHP普遍被認為可以更快和更有效地實現複雜的編程任務,而且正是因為它的更穩定以及佔用更少資源的優點成為開發B/S結構系統的必備的WEB指令碼設計語言,扮演著類似中介軟體的角色,即文法解析與執行。
ORACLE LOB資料模型
在B/S(Browser/Server,瀏覽器/伺服器)應用系統中,需要儲存的已不僅僅是簡單的文字資訊,同時還包括一些圖片和音像資料或者是超長的文本。比如開發一套公文系統,公文中的圖表、附件等二進位檔案或超長文本將無法使用普通的字元或其他類型的資料描述,這就要求後台資料庫要有儲存這些資料的能力。運用Oracle LOB對象可實現該功能。
Oracle LOB是用來儲存大量的二進位和文本資料的一種資料類型(一個LOB欄位可儲存可多達4GB的資料)。目前,它又分為兩種類型:內部LOB和外部LOB。內部LOB將資料以位元組流的形式儲存在資料庫的內部。因而,內部LOB的許多操作都可以參與事務,也可以像處理普通資料一樣對其進行備份和恢複操作。Oracle8i支援三種類型的內部LOB:BLOB(位元據)、CLOB(單位元組字元資料)、NCLOB(多位元組國家字元資料)。其中CLOB和NCLOB類型適用於儲存超長的文本資料,BLOB欄位適用於儲存大量的位元據,如映像、視頻、音頻等。目前,Oracle8i只支援一種外部LOB類型,即BFILE類型。在資料庫內,該類型僅儲存資料在作業系統中的位置資訊,而資料的實體以外部檔案的形式存在於作業系統的檔案系統中。因而,該類型所表示的資料是唯讀,不參與事務。該類型可協助使用者管理大量的由外部程式訪問的檔案。
PHP Oracle 8 函數分析
PHP中有兩套ORACLE函數擴充庫,其中的ORACLE8函數允許訪問 Oracle8 和 Oracle7 資料庫,這些函數使用了Oracle8 Call-Interface(OCI8),支援向 Oracle 位置標誌符綁定局部和全域 PHP 變數,全面支援 LOB、FILE 和 ROWID,允許使用者使用使用者自訂的變數,即使用者資料庫的自訂對象類。
Oracle8函數庫中函數OCIFetchInto用於取回一行資料記錄放入數組中,該函數的文法描述如下: