作為一個Oracle數(shù)據(jù)庫管理員,會碰到這樣的數(shù)據(jù)庫管理需求,停止或者打開當(dāng)前用戶(模式)下所有表的約束條件和觸發(fā)器。這在數(shù)據(jù)庫的合并以及對數(shù)據(jù)庫系統(tǒng)的代碼表中某些代碼的修改時需要做的工作之一。
我們來看這樣一種實(shí)際數(shù)據(jù)庫工作業(yè)務(wù)需求,這在目前的許多應(yīng)用中是非常實(shí)際的。某地區(qū)銀行數(shù)據(jù),目前采用市級數(shù)據(jù)集中,隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的不斷提高以及對服務(wù)水平的要求,提出了省級乃至國家級的數(shù)據(jù)集中。除了應(yīng)用需要修改以外,對于數(shù)據(jù)庫管理員來講,最重要的工作就是對各地分散管理的數(shù)據(jù)庫統(tǒng)一集中到一個或者幾個集中數(shù)據(jù)庫中。此時就需要整理以前各地各自為政的代碼表為一個統(tǒng)一的代碼表以及數(shù)據(jù)庫的最后集中合并。
對Oracle數(shù)據(jù)庫管理員來講,這樣的數(shù)據(jù)維護(hù)工作,在更新代碼表中代碼或者合并數(shù)據(jù)之前,首先要作的工作就是將系統(tǒng)中某用戶下所有的外鍵或觸發(fā)器停止,處理完數(shù)據(jù)后,再打開這些關(guān)閉的外鍵和觸發(fā)器。針對這樣的工作需求,本文給出了下面兩個SQL腳本:(1) 系統(tǒng)中某模式或用戶下外鍵或者觸發(fā)器的管理腳本;(2) 外鍵錯誤自動查找腳本。下面就來詳細(xì)介紹這兩個腳本。
一、約束管理腳本
該腳本可用來管理當(dāng)前登錄用戶下的所有外鍵和觸發(fā)器的打開和關(guān)閉,此處沒有處理主鍵和唯一約束條件,該腳本稍加修改就可以處理主鍵和唯一約束條件,但這里建議最好不要在隨意停止主鍵或唯一約束條件后,進(jìn)行數(shù)據(jù)維護(hù)。
腳本運(yùn)行方法如下(SQL/PLUS):
其中,參數(shù)as_alter只能是“ENABLE”或者“DISABLE”,否則程序提示錯誤。當(dāng)參數(shù)為“ENABLE”時,表示將當(dāng)前模式下所有的外鍵和觸發(fā)器打開,相反“DISABLE”就是將當(dāng)前模式下所有的外鍵和觸發(fā)器關(guān)閉。
附存儲過程腳本:
判斷輸入?yún)?shù)是否為DISABLE或者是ENABLE,如果是的話,就繼續(xù)處理,否則退出過程,給出提示
IF (UPPER(AS_ALTER) = 'DISABLE' OR UPPER(AS_ALTER) = 'ENABLE') THEN
OPEN C_CON;
[NextPage]
當(dāng)前用戶下外鍵的處理 ENABLE或者 DISABLE
PL/SQL過程已成功完成。
其中,F(xiàn)K_SB_HJJL_RELATION__SB_PZXH為出現(xiàn)錯誤的外鍵名稱。
附存儲過程腳本:
上一頁
標(biāo)簽:股票投資 聊城 通化 池州 南平 襄陽 南平 嘉峪關(guān)
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle約束管理腳本》,本文關(guān)鍵詞 Oracle,約束,管理,腳本,Oracle,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。