久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

oracle里面使用臨時表解決表沖突一例(轉貼)

瀏覽:127日期:2023-11-16 12:47:02
平臺:windows 2000 server sp3數據庫:Oracle 9.0.1.1.1 現場描述:用戶抱怨不能同時對多個單位進行數據處理,執行出現的錯誤信息為:SQL> exec sp_hyb_da_ryxx_dwbh_test('331028') BEGIN sp_hyb_da_ryxx_dwbh_test('331028'); END; *ERROR 位于第 1 行:ORA-02055: 分布式更新操作失效;要求回退ORA-06502: PL/SQL: 數字或值錯誤 :; 字符串緩沖區太小ORA-06512: 在'SIDB.SP_HYB_DA_RYXX_DWBH_TEST', line 55ORA-06502: PL/SQL: 數字或值錯誤 :; 字符串緩沖區太小ORA-06512: 在'SIDB.SP_HYB_DA_RYXX', line 145ORA-06502: PL/SQL: 數字或值錯誤 :; 字符串緩沖區太小ORA-06512: 在'SIDB.SP_HYB_DA_RYXX_YZ1', line 25ORA-20901: 過程SP_HYB_DAXX出錯;grbh = 1000607288 ORA-02049: 超時:分布式事務處理等待鎖定請聯系系統治理員;1ORA-06512: 在line 1 經檢查后發現是后臺存儲過程中使用了‘臨時’表,這些臨時表用于臨時保存部分正式表的數據,應用程序存儲過程的代碼形如DELETE <TEMP TABLE>;INSERT INTO <TEMP TABLE> SELECT *FROM <NORMAL TABLE> WHERE …;這種方法造成了在同時執行的時候由于對<TEMP TABLE>鎖定的等待而只能同時進行一個單位的數據處理。可以通過使用Oracle真正意義上的臨時表消除對臨時表的鎖定。臨時表的基本定義是:數據庫中的所有會話均可以訪問臨時表,但只有插入數據到臨時表中的會話才能看到本身插入的數據。可以把臨時表指定為事務相關(默認)或者是會話相關:ON COMMIT DELETE ROWS:指定臨時表是事務相關的,Oracle在每次提交后截斷表。ON COMMIT PRESERVE ROWS:指定臨時表是會話相關的,Oracle在會話中止后截斷表。通過使用Oracle的臨時表后可以并行的對數據進行處理,有效的提高了數據處理的速度。 附:創建臨時表的例子 CREATE GLOBAL TEMPORARY TABLE <TEMP TABLE>ASSELECT *FROM <NORMAL TABLE> WHERE 1 = 2;CREATE INDEX <INDEX NAME> ON <TEMP TABLE> (<COLUMN NAME>);
標簽: Oracle 數據庫
主站蜘蛛池模板: 大厂| 平谷区| 万年县| 蒙山县| 湄潭县| 迭部县| 唐海县| 平武县| 浦县| 北辰区| 青铜峡市| 峨山| 民丰县| 浦江县| 读书| 玉林市| 尼勒克县| 分宜县| 榆社县| 武平县| 五家渠市| 溧水县| 巫山县| 奎屯市| 阳信县| 博罗县| 格尔木市| 偏关县| 广平县| 饶河县| 合肥市| 西平县| 常德市| 洪江市| 沈阳市| 通江县| 广元市| 太仓市| 合江县| 彭泽县| 潞西市|