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

首頁 > 數據庫 > Oracle > 正文

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

2024-08-29 13:30:09
字體:
來源:轉載
供稿:網友

平臺: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 55

ora-06502: pl/sql: 數字或值錯誤 :  字符串緩沖區太小

ora-06512: 在"sidb.sp_hyb_da_ryxx", line 145

ora-06502: pl/sql: 數字或值錯誤 :  字符串緩沖區太小

ora-06512: 在"sidb.sp_hyb_da_ryxx_yz1", line 25

ora-20901: 過程sp_hyb_daxx出錯;grbh = 1000607288 ora-02049: 超時:

分布式事務處理等待鎖定

請聯系系統管理員;1

ora-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>

as

select *from <normal table> where 1 = 2;

create index <index name> on <temp table> (<column name>);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 咸阳市| 濮阳市| 博白县| 平江县| 宜阳县| 奉化市| 堆龙德庆县| 邢台县| 龙陵县| 巴东县| 饶阳县| 定陶县| 玛多县| 阿拉善盟| 兴山县| 和顺县| 晋城| 紫云| 辽源市| 兰州市| 和政县| 都兰县| 三门县| 大邑县| 汤阴县| 鄂尔多斯市| 天峨县| 聂拉木县| 宣城市| 临漳县| 黎平县| 无极县| 怀化市| 璧山县| 宜宾县| 霍山县| 斗六市| 新营市| 安陆市| 顺义区| 广河县|