我有一個包含大量數據的CLOB列的Oracle SQL數據庫。我遇到了一個問題,即普通的PHP字符串變量不能保存我在CLOB列中的所有數據。它只能讀取4618位,但我的文件要大得多。 CLOB列有一系列IP地址。我需要做的是分析CLOB列,以便我可以提取這些IP地址;但是,字符串變量不會保留足夠的數據,甚至無法訪問存儲IP地址的文檔部分。有什麼想法嗎?如何讀取太大而不適合字符串的CLOB列?
1
A
回答
0
根據您的意見:
如果你就在你的瀏覽器中單擊並說「查看源文件」,你會看到你確實有整個文件。
最有可能你只需要發射的數據返回給瀏覽器時,設置相應的ContentType。
0
首先,嘗試增加PHP內存限制,看看是否有錯誤產生任何影響。如果正在檢索的CLOB對象真的很大,比如2 GiB,那麼在PHP中無法處理它,因爲整個對象必須保存在內存中。
如果列具有固定長度的數據,它應該是相當容易的構成,其提取它的一部分的適當的查詢。假設數據被編碼爲固定長度的文本,然後像這樣將工作:
// assumes subfield is xxx.xxx.xxx.xxx: 19 fixed characters
SELECT substr (TO_CHAR(gnarly_ipadddress_fieldname), 1, 19) as ipaddr1,
substr (TO_CHAR(gnarly_ipadddress_fieldname), 20, 19) as ipaddr2,
substr (TO_CHAR(gnarly_ipadddress_fieldname), 39, 19) as ipaddr3
FROM table
WHERE (whatever);
如果子字段是可變長度的話,說不定抓住像16K塊,並在PHP解析它是要走的路。
相關問題
- 1. iPhone 4字體太大而不適合
- 2. 用大字符串更新oracle CLOB列
- 3. 文件太大,不適合
- 4. 從字符串到Clob和Clob到字符串的轉換
- 5. 如何讀取文件的行是列表而不是python中的字符串
- 6. 列值讀取日期而不是字符串 - 熊貓
- 7. ==操作符不適合字符串
- 8. 如何讀取字節和字符串的混合文件
- 9. 讀取未知大小的字符串
- 10. 如何從文件中讀取字符串而不使用字符數組?
- 11. 從數據庫中讀取大字符串而不分段大對象堆
- 12. Matlab圖像太大而不適合屏幕
- 13. CreateProcess():「程序太大,不適合內存」
- 14. 字符串在Java CLOB?
- 15. 檢查在CLOB字符串
- 16. 從CLOB到字符串列的JPA unescape法語字符
- 17. 從大字符串讀取行
- 18. QTableView長標題字符串不適合
- 19. 如何在C++中讀取未知大小的字符串
- 20. 如何讀取動態大小的字符串流?
- 21. 如何從文件中讀取大的clob數據?
- 22. HttpClient的大字符串響應太慢
- 23. 獲取列表[Serializable接口]而不是列表[(字符串,字符串)
- 24. 如何從較大的字符串中提取字符串?
- 25. VGroup或列表不適合TileWindow,太高
- 26. 將字符串讀入字符數組,然後獲取字符串的大小
- 27. 反射 - 讀取類的屬性而不是字符串或int
- 28. 如何在Oracle clob數據類型列中一次存儲大於4000個字符的字符串長度?
- 29. 如何以字符串的形式讀取表的第一列?
- 30. 如何在mssql中獲取字符串列的不同字符?
我有,你應該用一個外鍵指向回原來的表存儲在單獨的表你的IP地址的感覺。 – Bojangles
PHP中字符串的長度沒有限制(系統內存或memory_limit除外)。你是否收到錯誤信息? – timdev
好吧,當我做到這一點,並嘗試回聲$ IPADDR,頁面加載罰款,對文件的只顯示了一部分: $ IPADDR = $ clob->閱讀(700); 然而,當我做到這一點,頁面沒有加載: $ IPADDR = $ clob->閱讀($ clob->大小()); 然後,我會收到以下錯誤消息: XML分析錯誤:格式不正確 – stix122