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

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

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

    談笑有鴻儒,往來無白丁

    在恰當的時間、地點以恰當的方式表達給恰當的人...  閱讀的時候請注意分類,佛曰我日里面是談笑文章,其他是各個分類的文章,積極的熱情投入到寫博的隊伍中來,支持blogjava做大做強!向dudu站長致敬>> > 我的微博敬請收聽

    使用 BLOB 及 CLOB 數據類型

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

    當存取 LOB 列時,返回的是定位器,而不像 LONG 或 LONG RAW 數據類型那樣返回它的實際值。
    例如,分析這個表的定義:

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

    如果我們不通過值參數初始化 LOB 定位器, Oracle 將不允許使用下面的語句來更新數據表:

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

    WHERE
    Id = :Id

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

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

    ODAC 寫 LOB 數據到 Oracle 且返回初始值字段,需使用:值參數。
    存儲過程允許自動初始化 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;

    注意:值參數被聲明為 OUT。同時,設置 LOB 數據類型的參數的 ParamType 屬性為 ptInput ,且指定它到所需的數據前來實際調用存儲過程。我們可以這樣調用前面聲明的存儲過程:

    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;

    對 ODAC 來說,在 LOB 操作中使用 ParamType 屬性是非常重要的。如果 ParamType 是 ptInput , ODAC 寫數據到服務器,如果 ParamType 是 ptOutput,它則讀取數據。

    你可以使用 LOB 參數的 dtBlob 和 dtMemo 數據類型來編寫普通的 DML 語句。在這種情況下, Oracle 自動將 LONG 和 LONG ROW 類型的值轉換為 CLOB 或 BLOB 數據。

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

    posted on 2007-08-18 15:07 壞男孩 閱讀(3034) 評論(0)  編輯  收藏 所屬分類: ORACLE篇章DELPHI
    主站蜘蛛池模板: 亚洲av午夜成人片精品电影 | 男人的好看免费观看在线视频| 亚洲av无码国产综合专区 | 亚洲av综合av一区| 久久九九兔免费精品6| 亚洲AV无码男人的天堂| 亚洲免费观看视频| 欧美大尺寸SUV免费| 中文字幕不卡免费视频| 亚洲一区二区三区精品视频| 午夜亚洲福利在线老司机| 久久aⅴ免费观看| 性色av极品无码专区亚洲| 亚洲av日韩综合一区在线观看| 国产精品69白浆在线观看免费 | 美女视频黄免费亚洲| 未满十八私人高清免费影院| 亚洲熟妇无码久久精品| 亚洲国产精品无码久久青草| 日韩版码免费福利视频| 最近免费中文字幕中文高清| 亚洲国产精品ⅴa在线观看| 精品亚洲国产成AV人片传媒| 亚洲精品无码久久毛片| 好男人视频在线观看免费看片| 免费a级毛片无码a∨免费软件 | 97免费人妻无码视频| 999zyz**站免费毛片| 亚洲A∨精品一区二区三区下载| 亚洲午夜精品久久久久久人妖| 国产一区二区三区免费视频| 在线观看成人免费视频不卡| 国产在线观看免费av站| 色网站在线免费观看| 亚洲a∨无码男人的天堂| 国产亚洲AV手机在线观看| 免费国产在线观看老王影院| 91成人免费在线视频| 久9热免费精品视频在线观看| 亚洲精品黄色视频在线观看免费资源| 亚洲欧美日韩综合久久久久|