日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle 临时表解决ORA-22992问题

發布時間:2024/9/5 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle 临时表解决ORA-22992问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過Database Link集成遠程數據庫時,從遠程數據庫上查詢Blob字段時總返回ORA- 22992 錯誤 。有人采用物化視圖解決這個問題,但物化視圖同步機制會帶來麻煩,如果同步時間設置過短,則占用大量的系統資源,給服務器帶來極大的壓力;如果設置時間過長,前臺用戶不可接受。

參考網上資料,據說來自 AskTom,使用全局臨時表,實現了自認為優雅的解決。?

?
代碼如下:
create or replace package pkg_photo as
? type sys_refcursor is ref cursor;
? procedure proc_photo(p_sfzh in string,
? p_photo OUT pkg_rkzp.sys_refcursor);
? end pkg_photo;
?
? create or replace package body pkg_photo as
?? procedure proc_photo(p_sfzh in string, p_photo OUT pkg_rkzp.sys_refcursor)
????? AS
????? v_num number;
????? v_sql varchar2(2000);
????? v_sfzh string(18);
????? BEGIN???
????????? select count(*) into v_num from user_tables where table_name=upper('tmp_jn_czrk_zp');
????????? dbms_output.PUT_LINE(v_num);
????????? if v_num<1 then
????????????? v_sql := 'create global temporary table tmp_ryzp(sfzh char(18),photo blob) on commit preserve rows';
????????????? EXECUTE IMMEDIATE v_sql;
????????? end if;
?????????
????????? v_sql := 'insert into tmp_photo select sfzh,photo from v_remote_table@mydblink where sfzh=:1';
????????? EXECUTE IMMEDIATE v_sql using p_sfzh;
?????????
????????? OPEN p_photo FOR v_sql;
????????? EXCEPTION
??????????? WHEN NO_DATA_FOUND????????????
????????????? THEN NULL;
??????????? WHEN OTHERS
????????????? THEN RAISE;
????? END proc_photo;
end pkg_photo;

本篇文章來源于 Linux公社網站(www.linuxidc.com)? 原文鏈接:http://www.linuxidc.com/Linux/2011-06/37920.htm

轉載于:https://www.cnblogs.com/Csharpblogs/archive/2011/07/08/2101457.html

總結

以上是生活随笔為你收集整理的Oracle 临时表解决ORA-22992问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。