最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PDO取Oracle lob大字段,當(dāng)數(shù)據(jù)量太大無法取出的問題的解決辦法

 更新時(shí)間:2009年03月26日 11:20:09   作者:  
最近,做sns的項(xiàng)目,用PDO連接Oracle數(shù)據(jù)庫,讀取Clob字段,當(dāng)數(shù)據(jù)量非常大的時(shí)候(上萬個(gè)字符),返回空值,從網(wǎng)上也沒有查到相關(guān)的資料。自己刻苦研究加上同事幫助,終于解決了。廢話就不說了,下面把內(nèi)容貼出來。
首先,創(chuàng)建一個(gè)存儲過程 get_clob:
t_name:要查詢的表名;f_name:要查詢的字段名;u_id:表的主鍵,查詢條件;l_pos:截取的開始位置; l_amount :截取長度;
CREATE OR REPLACE PROCEDURE get_clob(t_name in varchar2, f_name in varchar, u_id in integer, l_pos in integer, l_amount in BINARY_INTEGER, ReturnValue out varchar2) is
rule_xml clob;
l_buffer varchar2(3999);
l_amount_ BINARY_INTEGER;
begin
execute immediate 'select ' ||f_name|| ' from ' ||t_name|| ' where id=:1' into rule_xml using u_id;
l_amount_:=l_amount;
DBMS_LOB.read(rule_xml, l_amount_, l_pos, l_buffer);
ReturnValue := l_buffer;
end get_clob;
然后是php的處理程序:
$content = "";
$num = 0;//clob字段長度
$stmt = $oracle->prepare("select length(content) as num from test where id = $id");
if ($stmt->execute()) { //zjh為查詢的條件
$row = $stmt->fetch();
$num = $row['NUM'];
}
$start = 1;//初始化開始位置
$len = 2500;//截取長度
$t_name = 'test';//操作表名
$f_name = 'content';//需要查詢的clob字段名
while ($start <= $num){
$ret='';
$sql = "begin get_clob(?,?,?,?,?,?); end;";
$stmt = $oracle->prepare($sql);
$stmt->bindParam(1, $t_name, PDO::PARAM_STR, 100);
$stmt->bindParam(2, $f_name, PDO::PARAM_STR, 100);
$stmt->bindParam(3, $id, PDO::PARAM_STR, 100);
$stmt->bindParam(4, $start, PDO::PARAM_STR, 100);
$stmt->bindParam(5, $len, PDO::PARAM_STR, 100);
$stmt->bindParam(6, $ret, PDO::PARAM_STR, 5000);
$stmt->execute();
$content .= $ret;
$start=$start+$len;
}
$oracle = null;
以上就是完整的解決辦法,這個(gè)方法不是俺的首創(chuàng),做過pb項(xiàng)目的人大多數(shù)應(yīng)該比較熟悉這種操作。
php操作Oracle的資料網(wǎng)上還是比較少的,能解決問題的就更不多了,發(fā)出來跟大家分享一下,肯定還有其他比較好的解決辦法,歡迎跟大家一起探討。

相關(guān)文章

  • Windows10系統(tǒng)中Oracle完全卸載正確步驟

    Windows10系統(tǒng)中Oracle完全卸載正確步驟

    自己剛到公司就是熟悉數(shù)據(jù)庫的安裝卸載,所以分享一下學(xué)到的,下面這篇文章主要給大家介紹了關(guān)于Windows10系統(tǒng)中Oracle完全卸載正確步驟的相關(guān)資料,文章通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • Oracle數(shù)據(jù)庫實(shí)現(xiàn)建表、查詢方式

    Oracle數(shù)據(jù)庫實(shí)現(xiàn)建表、查詢方式

    這篇文章主要介紹了Oracle數(shù)據(jù)庫實(shí)現(xiàn)建表、查詢方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2007-02-02
  • MSSQL與Oracle數(shù)據(jù)庫事務(wù)隔離級別與鎖機(jī)制對比

    MSSQL與Oracle數(shù)據(jù)庫事務(wù)隔離級別與鎖機(jī)制對比

    事務(wù)隔離級別是并發(fā)控制的整體解決方案,其實(shí)際上是綜合利用各種類型的鎖和行版本控制,來解決并發(fā)問題。鎖是數(shù)據(jù)庫并發(fā)控制的內(nèi)部機(jī)制,是基礎(chǔ)。對用戶來說,只有當(dāng)事務(wù)隔離級別無法解決一些并發(fā)問題和需求時(shí),才有必要在語句中手動(dòng)設(shè)置鎖。
    2014-08-08
  • oracle 11g數(shù)據(jù)庫安全加固注意事項(xiàng)

    oracle 11g數(shù)據(jù)庫安全加固注意事項(xiàng)

    這篇文章主要介紹了oracle11g數(shù)據(jù)庫安全加固須謹(jǐn)慎 ,需要的朋友可以參考下
    2015-08-08
  • Oracle重建控制文件的實(shí)例教程

    Oracle重建控制文件的實(shí)例教程

    前些天在做Oracle數(shù)據(jù)庫恢復(fù)測試時(shí),因?yàn)橐恍┊惓2僮鲗?dǎo)致控制文件出了問題,數(shù)據(jù)庫無法正常使用,下面這篇文章就來給大家介紹了關(guān)于Oracle重建控制文件的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧
    2018-05-05
  • oracle報(bào)錯(cuò)(ORA-00600)問題處理

    oracle報(bào)錯(cuò)(ORA-00600)問題處理

    最近在做一個(gè)項(xiàng)目,使用的是Oracle數(shù)據(jù)庫,近兩天不知道怎么回事,告警日志里總是顯示這個(gè)錯(cuò)誤(ORA-00600:internalerrorcode,arguments:[kcblasm_1],[103],[],[],[],[],[],[])度娘了一下,終于找到解決方式,分享給大家
    2014-08-08
  • Oracle數(shù)據(jù)庫處理多媒體信息

    Oracle數(shù)據(jù)庫處理多媒體信息

    Oracle數(shù)據(jù)庫處理多媒體信息...
    2007-03-03
  • 解決pl/sql developer中數(shù)據(jù)庫插入數(shù)據(jù)亂碼問題(SSM項(xiàng)目開發(fā))

    解決pl/sql developer中數(shù)據(jù)庫插入數(shù)據(jù)亂碼問題(SSM項(xiàng)目開發(fā))

    這篇文章主要介紹了解決pl/sql developer中數(shù)據(jù)庫插入數(shù)據(jù)亂碼問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • oracle關(guān)聯(lián)查詢報(bào)invalid number錯(cuò)誤的解決方法

    oracle關(guān)聯(lián)查詢報(bào)invalid number錯(cuò)誤的解決方法

    這篇文章主要介紹了oracle關(guān)聯(lián)查詢報(bào)invalid number錯(cuò)誤的解決方法,文中通過代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-09-09
  • 修改Oracle監(jiān)聽默認(rèn)端口號1521的方法

    修改Oracle監(jiān)聽默認(rèn)端口號1521的方法

    我們都知道,Oracle的監(jiān)聽默認(rèn)端口是1521,但是如果系統(tǒng)上1521已經(jīng)被占用或業(yè)務(wù)要求不用默認(rèn)端口,又或者是為了安全,這個(gè)時(shí)候我們就需要修改監(jiān)聽的默認(rèn)端口。下面這篇文章主要介紹了修改Oracle監(jiān)聽默認(rèn)端口號1521的方法,需要的朋友可以參考下。
    2017-01-01

最新評論

太和县| 罗江县| 尚志市| 安西县| 和平区| 济阳县| 四会市| 华阴市| 常宁市| 同仁县| 南京市| 高邑县| 伊金霍洛旗| 遂昌县| 鸡东县| 拉萨市| 奉贤区| 漠河县| 浮山县| 嘉义市| 包头市| 蒲城县| 资中县| 大宁县| 临夏县| 南木林县| 大冶市| 赤城县| 延安市| 寿宁县| 吉林市| 英山县| 河南省| 通城县| 叶城县| 明水县| 宁陕县| 乌拉特中旗| 哈巴河县| 苍梧县| 新化县|