国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

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

2024-08-29 13:48:27
字體:
供稿:網(wǎng)友

  
平臺:windows 2000 server sp3

數(shù)據(jù)庫:Oracle 9.0.1.1.1




現(xiàn)場描述:用戶抱怨不能同時對多個單位進行數(shù)據(jù)處理,執(zhí)行出現(xiàn)的錯誤信息為:

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: 數(shù)字或值錯誤 :  字符串緩沖區(qū)太小

ORA-06512: 在"SIDB.SP_HYB_DA_RYXX_DWBH_TEST", line 55

ORA-06502: PL/SQL: 數(shù)字或值錯誤 :  字符串緩沖區(qū)太小

ORA-06512: 在"SIDB.SP_HYB_DA_RYXX", line 145

ORA-06502: PL/SQL: 數(shù)字或值錯誤 :  字符串緩沖區(qū)太小

ORA-06512: 在"SIDB.SP_HYB_DA_RYXX_YZ1", line 25

ORA-20901: 過程SP_HYB_DAXX出錯;grbh = 1000607288 ORA-02049: 超時:

分布式事務處理等待鎖定

請聯(lián)系系統(tǒng)治理員;1

ORA-06512: 在line 1




經(jīng)檢查后發(fā)現(xiàn)是后臺存儲過程中使用了‘臨時’表,這些臨時表用于臨時保存部分正式表的數(shù)據(jù),應用程序存儲過程的代碼形如

DELETE <TEMP TABLE>;

INSERT INTO <TEMP TABLE> SELECT *FROM <NORMAL TABLE> WHERE …;

這種方法造成了在同時執(zhí)行的時候由于對<TEMP TABLE>鎖定的等待而只能同時進行一個單位的數(shù)據(jù)處理。

可以通過使用Oracle真正意義上的臨時表消除對臨時表的鎖定。

臨時表的基本定義是:

數(shù)據(jù)庫中的所有會話均可以訪問臨時表,但只有插入數(shù)據(jù)到臨時表中的會話才能看到本身插入的數(shù)據(jù)??梢园雅R時表指定為事務相關(guān)(默認)或者是會話相關(guān):

ON COMMIT DELETE ROWS:指定臨時表是事務相關(guān)的,Oracle在每次提交后截斷表。

ON COMMIT PRESERVE ROWS:指定臨時表是會話相關(guān)的,Oracle在會話中止后截斷表。

通過使用Oracle的臨時表后可以并行的對數(shù)據(jù)進行處理,有效的提高了數(shù)據(jù)處理的速度。




附:創(chuàng)建臨時表的例子




CREATE GLOBAL TEMPORARY TABLE <TEMP TABLE>

AS

SELECT *FROM <NORMAL TABLE> WHERE 1 = 2;

CREATE INDEX <INDEX NAME> ON <TEMP TABLE> (<COLUMN NAME>);

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 通山县| 什邡市| 绵竹市| 集贤县| 陈巴尔虎旗| 永年县| 登封市| 读书| 资源县| 施甸县| 青神县| 凉城县| 平果县| 丰城市| 屯留县| 易门县| 寿宁县| 紫阳县| 望江县| 子洲县| 古丈县| 巴彦淖尔市| 南开区| 连城县| 年辖:市辖区| 哈密市| 津市市| 武乡县| 五河县| 新野县| 武宣县| 新巴尔虎右旗| 子洲县| 泾川县| 兴文县| 宽甸| 三门县| 雷山县| 东乡| 巴彦淖尔市| 进贤县|