<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    談笑有鴻儒,往來(lái)無(wú)白丁

    在恰當(dāng)?shù)臅r(shí)間、地點(diǎn)以恰當(dāng)?shù)姆绞奖磉_(dá)給恰當(dāng)?shù)娜?..  閱讀的時(shí)候請(qǐng)注意分類,佛曰我日里面是談笑文章,其他是各個(gè)分類的文章,積極的熱情投入到寫博的隊(duì)伍中來(lái),支持blogjava做大做強(qiáng)!向dudu站長(zhǎng)致敬>> > 我的微博敬請(qǐng)收聽

    使用 BLOB 及 CLOB 數(shù)據(jù)類型

    轉(zhuǎn):http://blog.csdn.net/nxyc_twz/archive/2004/06/16/16061.aspx
    ODAC 組件支持 Oracle 8 的 BLOB 和 CLOB 數(shù)據(jù)類型。你可以使用 TOraQuery 組件來(lái)獲取 LOB 字段的值,使用同樣的方法,你也可以獲取? LONG 或 LONG ROW 字段。 當(dāng)你需要使用 SQL DML 及 PL/SQL 語(yǔ)句存取這些字段時(shí),你就會(huì)發(fā)現(xiàn) LOB 數(shù)據(jù)類型的用法有明顯的不同。
    BLOB 和 CLOB 數(shù)據(jù)類型通過(guò) LOB 定位器(指定數(shù)據(jù)地址) 存儲(chǔ)在表列中;實(shí)際的 BLOB 和 CLOB 數(shù)據(jù)存儲(chǔ)在獨(dú)立的表空間中。與之不同的是,LONG 或 LONG RAW 類型存儲(chǔ)在數(shù)據(jù)庫(kù)中,表中存放著它們的實(shí)際值。

    當(dāng)存取 LOB 列時(shí),返回的是定位器,而不像 LONG 或 LONG RAW 數(shù)據(jù)類型那樣返回它的實(shí)際值。
    例如,分析這個(gè)表的定義:

    CREATE TABLE ClobTable (
    Id NUMBER,
    Name VARCHAR2(30),
    Value CLOB
    )

    如果我們不通過(guò)值參數(shù)初始化 LOB 定位器, Oracle 將不允許使用下面的語(yǔ)句來(lái)更新數(shù)據(jù)表:

    UPDATE ClobTable
    SET
    Name = :Name,
    Value = :Value

    WHERE
    Id = :Id

    要初始化 LOB 定位器,你必須使用 EMPTY_BLOB 或 EMPTY_CLOB Oracle 函數(shù)。要返回初始化后的定位器,應(yīng)在同樣的語(yǔ)句中使用 RETURNING 子句。例如:

    UPDATE ClobTable
    SET
    Name = :Name,
    Value = EMPTY_CLOB()
    WHERE
    Id = :Id
    RETURNING
    Value
    INTO
    :Value

    ODAC 寫 LOB 數(shù)據(jù)到 Oracle 且返回初始值字段,需使用:值參數(shù)。
    存儲(chǔ)過(guò)程允許自動(dòng)初始化 LOB 值,方法如下:

    CREATE OR REPLACE
    PROCEDURE ClobTableUpdate (p_Id NUMBER, p_Name VARCHAR2,
    p_Value OUT CLOB)
    is
    begin
    UPDATE ClobTable
    SET?
    Name = p_Name,
    Value = EMPTY_CLOB()
    WHERE
    Id = p_Id
    RETURNING
    Value
    INTO
    p_Value;
    end;

    注意:值參數(shù)被聲明為 OUT。同時(shí),設(shè)置 LOB 數(shù)據(jù)類型的參數(shù)的 ParamType 屬性為 ptInput ,且指定它到所需的數(shù)據(jù)前來(lái)實(shí)際調(diào)用存儲(chǔ)過(guò)程。我們可以這樣調(diào)用前面聲明的存儲(chǔ)過(guò)程:

    OraStroredProc1.StoredProcName := 'ClobTableUpdate';
    OraStroredProc1.Prepare;
    OraStroredProc1.ParamByName('p_Id').AsInteger := Id;
    OraStroredProc1.ParamByName('p_Name').AsString := Name;
    OraStroredProc1.ParamByName('Value').ParamType := ptInput;
    OraStroredProc1.ParamByName('Value').AsCLOBLocator.
    LoadFromFile(FileName);
    OraStroredProc1.Execute;

    對(duì) ODAC 來(lái)說(shuō),在 LOB 操作中使用 ParamType 屬性是非常重要的。如果 ParamType 是 ptInput , ODAC 寫數(shù)據(jù)到服務(wù)器,如果 ParamType 是 ptOutput,它則讀取數(shù)據(jù)。

    你可以使用 LOB 參數(shù)的 dtBlob 和 dtMemo 數(shù)據(jù)類型來(lái)編寫普通的 DML 語(yǔ)句。在這種情況下, Oracle 自動(dòng)將 LONG 和 LONG ROW 類型的值轉(zhuǎn)換為 CLOB 或 BLOB 數(shù)據(jù)。

    http://support.microsoft.com/kb/322796/en-us

    posted on 2007-08-18 15:07 壞男孩 閱讀(3034) 評(píng)論(0)  編輯  收藏 所屬分類: ORACLE篇章DELPHI
    主站蜘蛛池模板: 在线观看亚洲AV日韩AV| 久久国产亚洲高清观看| 国产亚洲视频在线| 久久天天躁狠狠躁夜夜免费观看| 成人性生交视频免费观看| 国产精品免费视频播放器| 一级毛片人与动免费观看| 亚洲精品美女久久久久9999| 激情综合色五月丁香六月亚洲| 亚洲日韩国产精品无码av| 水蜜桃视频在线观看免费| 久久一区二区三区免费| 亚洲综合小说久久另类区| 最新亚洲人成无码网www电影| 日韩成人毛片高清视频免费看| 成人性生交大片免费看中文| 无码欧精品亚洲日韩一区夜夜嗨 | 91免费在线播放| 亚洲国产精品嫩草影院在线观看| 中文字幕在线免费播放| 麻豆成人精品国产免费| 亚洲国产综合91精品麻豆| 波多野结衣在线免费观看| 亚洲激情黄色小说| 18级成人毛片免费观看| 久久精品国产亚洲AV麻豆王友容| 草久免费在线观看网站| 日韩亚洲国产二区| 免费一级全黄少妇性色生活片 | 亚洲国产一级在线观看| 亚洲欧好州第一的日产suv| 最近中文字幕2019高清免费| 亚洲精品无码不卡| 99re在线精品视频免费| 中文字幕精品亚洲无线码一区 | 亚洲精品午夜在线观看| 久久国产乱子伦精品免费强| 亚洲成a人片77777群色| 24小时免费直播在线观看| 美女羞羞喷液视频免费| 亚洲AV无码成人精品区大在线|