談笑有鴻儒,往來無白丁

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

          第一日:

          1.建立數據表
          create table aaa(id varchar2(9) not null,img blob);

          2.存儲過程
          create or replace procedure pro_upd(
          ? sid in string,
          ? bblob in blob? default empty_blob())
          is
          ?lobloc blob;
          ?vLength integer;
          begin??
          ? insert into aaa(id,img) values(sid,empty_blob());
          ???? IF (bblob IS NOT NULL) THEN?
          ??????? SELECT img INTO lobloc FROM aaa WHERE ID = sid FOR UPDATE;?
          ??????? vLength := dbms_lob.getlength(bblob);
          ?DBMS_LOB.OPEN(lobloc,DBMS_LOB.lob_readwrite);
          ?DBMS_LOB.copy(lobloc,bblob,vLength);
          ????? END IF;
          ????? commit;
          ?? exception??
          ???????? when??? others??? then??
          ???????? rollback;??
          end;

          3.程序代碼
          ? 用的ODAC的oraquery
          ? orqry1.SQL.Text := 'call pro_upd(:id,:bblob)';
          ? orqry1.Params.ParamByName('id').Value := '123';
          ? orqry1.Params.ParamByName('bblob').LoadFromFile('D:\work\照片上傳\pic\005.jpg',ftBlob);
          ? orqry1.ExecSQL;?

          目的:就是把圖片上傳到數據庫,結果4k一下的可以成功上傳;4k以上稍小點的圖片就ORA-03113: 通信通道的文件結束如果幾百k就會報ora-12571錯誤;經過兩天的努力發現的一個規律!

          繼續找原因。。。。。。

          第二日
          8月18日問題終于得到解決,但是存儲過程和調用都經過了改變!

          ? with orstrdprc1 do begin
          ??? StoredProcName := 'pro_upd';
          ??? PrepareSQL;? // receive parameters
          ??? Randomize;
          ??? ParamByName('SID').AsString := IntToStr(Random(1000));
          ??? ParamByName('bblob').ParamType := ptInput;? // to transfer Lob data to Oracle
          ??? ParamByName('bblob').AsOraBlob.LoadFromFile('D:\work\照片上傳\pic\10000027_005.jpg');
          ??? Execute;
          ? end;

          這樣可以了,但是要求
          --這個存儲過程得到了解決
          create or replace procedure pro_upd(
          ? sid in string,
          ? bblob out blob)
          is
          begin??
          ? insert into aaa(id,img) values(sid,empty_blob())
          ? RETURNING img INTO bblob;
          end;

          繼續前進,看看原來的存儲過程什么原因不可以!

          總結:lob 文件4k以內的內容放到表段,其他的放到blob的表空間!
          插入時,首先要插入empty_blob,然后select? for update!這樣才能更新blob字段
          另外如果是存儲過程,則注意參數,想下面的一樣:

          ? bblob out blob

          這樣才能得到blob字段的定位器;;;更新內容!

          但是現在還不知道?bblob? in? blob 這種方式下如何修改,上傳圖片

          第三天:
          經過3天的努力尋找,終于找到了完美的解決方案居然就是一句話的問題,完全可以解決?in blob的問題了
          TemporaryLobUpdate := True;
          加一句就好了
          到此在存儲過程里面解決上傳blob的問題解決完畢。
          到此可以圓滿結束,明天的合同就簽了。
          注意文章轉載注明出處:http://blogjava.net/badboyryan

          posted on 2007-08-17 01:36 壞男孩 閱讀(4205) 評論(26)  編輯  收藏 所屬分類: ORACLE篇章DELPHI

          FeedBack:
          # re: 通過存儲過程來上傳BLOG
          2007-08-17 08:38 | i
          "通過存儲過程來上傳BLOG",是“BLOB”吧?  回復  更多評論
            
          # re: 通過存儲過程來上傳BLOB
          2007-08-18 14:17 | Alpha

          呵呵,沒有遇到過這樣的,沒這樣做過,沒經驗。。。

            回復  更多評論
            
          # re: 通過存儲過程來上傳文件大于4kBLOB[未登錄]
          2007-10-23 13:35 | liu
          請問
          TemporaryLobUpdate := True;
          是在什么地方設置的,怎么都找不到這個屬性阿!
          麻煩能給說一下嗎,多謝了!
          E-main:wxsan@163.com  回復  更多評論
            
          # re: 通過存儲過程來上傳文件大于4kBLOB
          2008-12-24 17:06 | df
          汗,偶也不懂哦。。偶遇到了。是用Delphi。麻煩你發一份結局的東東給我吧。郵箱:mlb_1@163.com
          謝謝。。非常感謝  回復  更多評論
            
          # re: 通過存儲過程來上傳文件大于4kBLOB
          2012-09-22 22:46 | SEO
          建立數據表  回復  更多評論
            
          # rock
          2012-10-06 19:02 | slot machine gratis
          。偶遇到了。是用Delphi。麻煩你發一份結局的東東給我吧。郵箱:mlb_1@163.com
          謝謝。。非常感謝  回復  更多評論
            
          # rock
          2012-10-08 16:14 | slot machine gratis
          偶遇到了。是用Delphi。麻煩你發一份結局的東東給我吧。郵箱:mlb_1@163.com
          謝謝。  回復  更多評論
            
          # rock
          2012-10-08 18:58 | online casino
          終于找到了完美的解決方案居然就是一句話的問題,完全可以解決 in blob的問題了  回復  更多評論
            
          # rock
          2012-10-15 19:14 | casinò online
          麻煩你發一份結局的東東給我吧。郵箱  回復  更多評論
            
          # poker gratis
          2012-10-16 19:02 | poker gratis
          是在什么地方設置的,怎么都找不到這個屬性阿!
          麻煩能給說一下嗎,多謝了!   回復  更多評論
            
          # rock
          2012-10-16 19:27 | video poker gratis
          美的解決方案居然就是一句話的問題,完全可以解  回復  更多評論
            
          # re: 通過存儲過程來上傳文件大于4kBLOB
          2012-11-24 11:38 | cheap beats by dre headphones
          美的解決方案居然就是一句話的問題,完全可以解  回復  更多評論
            
          # re: 通過存儲過程來上傳文件大于4kBLOB
          2012-11-30 13:23 | Austin Home Builder
          這位大哥,能把那四個工具給我發下不,找了挺長時間都沒找著,很多鏈接都沒法用了!我的郵箱  回復  更多評論
            
          # re: 通過存儲過程來上傳文件大于4kBLOB
          2012-12-22 13:22 | www.posicionamientoeficaz.net/
          這位大哥,能把那四個工具給我發下不,找了挺長時間都沒找著,很多鏈接都沒法用了!我的郵箱  回復  更多評論
            
          # rock
          2012-12-27 15:34 | film streaming
          終于找到了完美的解決方案居然就是一句話的問題,完全可以解決 in blob的問  回復  更多評論
            
          # contaminacion por electromagnetismo bioelectrica
          2013-01-25 17:38 | nitinkhare246@@gmail.com
          ??? ??? ?? ????? ??! ??? ? ??, ??? ??? ?? ?? ?? ? ????., ?? ?? ??  回復  更多評論
            
          # rock
          2013-02-06 15:24 | http://www.google-seo-top.com/
          這位大哥,能把那四個工具給我發下不,找了挺長時間都沒找著,很多鏈接都沒法用了!  回復  更多評論
            
          # re: 通過存儲過程來上傳文件大于4kBLOB
          2013-02-06 17:40 | alternador precio
          這位大哥,能把那四個工具給我發下不,找了挺長時間都沒找著,很多鏈接都沒法用了  回復  更多評論
            
          # re: 通過存儲過程來上傳文件大于4kBLOB
          2013-02-18 05:34 | tiendas padel
          ??? ????? “???? ???? ??? ????? ??? ????”? ????. ?????? ??? ??? ????. “???? ???? ??? ?? ??? ???? ??? ??? ??? ?? ???”?. ????? ??? ?? 70???? ???? ??? ??, ??? ????. ??? ??? ???, ??? ??? ??, ??? ??, ??? ???, ?? ??? ??? ??? ???? ???.  回復  更多評論
            
          # re: 通過存儲過程來上傳文件大于4kBLOB
          2013-03-01 17:27 | servicio inmobiliario madrid
          感謝您的分享您的想法!我將不勝感激,但如果你想更詳細的問題,因為我覺得缺了點什么,在這里和那里。  回復  更多評論
            
          # re: 通過存儲過程來上傳文件大于4kBLOB
          2013-05-22 09:29 | jual jilbab murah
          這位大哥,能把那四個工具給我發下不,找了挺長時間都沒找著,很多鏈接都沒法用了!我的郵箱  回復  更多評論
            
          # presentation templates
          2013-06-17 04:23 | honey3370@gmail.com
          ???? ?? ??? ????? ???? ?? ??? ? ? ????? ?? ?? ????
            回復  更多評論
            
          # re: 通過存儲過程來上傳文件大于4kBLOB
          2013-06-20 17:30 | uk essays
          偶遇到了。是用Delphi。麻煩你發一份結局的東東給我吧。  回復  更多評論
            
          # re: 通過存儲過程來上傳文件大于4kBLOB
          2013-08-08 18:12 | Clipping Path
          ?? ?? ??? ????? ???? ?? ??? ? ? ????? ?? ?? ????  回復  更多評論
            
          # re: 通過存儲過程來上傳文件大于4kBLOB
          2013-11-22 00:47 | toko sepatu online
          謝謝你的每一個其他的信息網站。  回復  更多評論
            
          # my site
          2014-01-11 00:22 | toko sepatu terpercaya
          首先,對你的寫作成績表示祝賀。謝謝您的分享這些信息的口齒方式。  回復  更多評論
            
          主站蜘蛛池模板: 西藏| 铁岭县| 山东省| 延边| 延安市| 富宁县| 蓬莱市| 奉贤区| 阿克苏市| 宜宾县| 巴彦淖尔市| 英吉沙县| 庐江县| 新密市| 都昌县| 文成县| 东阳市| 竹溪县| 乐清市| 曲沃县| 彭阳县| 博罗县| 广饶县| 本溪市| 彭水| 仁化县| 永定县| 乌鲁木齐市| 芒康县| 罗山县| 晋州市| 利川市| 克拉玛依市| 绥阳县| 修水县| 崇阳县| 新丰县| 苗栗县| 杭州市| 长宁区| 枞阳县|