濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Oracle約束管理腳本

Oracle約束管理腳本

熱門(mén)標(biāo)簽:修改高德地圖標(biāo)注 宜賓外呼系統(tǒng)廠家 語(yǔ)音電話機(jī)器人缺點(diǎn) 廣州市400電話辦理 語(yǔ)音電話機(jī)器人營(yíng)銷方案 南通防封外呼系統(tǒng)運(yùn)營(yíng)商 地圖標(biāo)注原件 百變地圖標(biāo)注 淮安自動(dòng)外呼系統(tǒng)開(kāi)發(fā)
正在看的ORACLE教程是:Oracle約束管理腳本。

作為一個(gè)Oracle數(shù)據(jù)庫(kù)管理員,會(huì)碰到這樣的數(shù)據(jù)庫(kù)管理需求,停止或者打開(kāi)當(dāng)前用戶(模式)下所有表的約束條件和觸發(fā)器。這在數(shù)據(jù)庫(kù)的合并以及對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的代碼表中某些代碼的修改時(shí)需要做的工作之一。 

  我們來(lái)看這樣一種實(shí)際數(shù)據(jù)庫(kù)工作業(yè)務(wù)需求,這在目前的許多應(yīng)用中是非常實(shí)際的。某地區(qū)銀行數(shù)據(jù),目前采用市級(jí)數(shù)據(jù)集中,隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的不斷提高以及對(duì)服務(wù)水平的要求,提出了省級(jí)乃至國(guó)家級(jí)的數(shù)據(jù)集中。除了應(yīng)用需要修改以外,對(duì)于數(shù)據(jù)庫(kù)管理員來(lái)講,最重要的工作就是對(duì)各地分散管理的數(shù)據(jù)庫(kù)統(tǒng)一集中到一個(gè)或者幾個(gè)集中數(shù)據(jù)庫(kù)中。此時(shí)就需要整理以前各地各自為政的代碼表為一個(gè)統(tǒng)一的代碼表以及數(shù)據(jù)庫(kù)的最后集中合并。 

  對(duì)Oracle數(shù)據(jù)庫(kù)管理員來(lái)講,這樣的數(shù)據(jù)維護(hù)工作,在更新代碼表中代碼或者合并數(shù)據(jù)之前,首先要作的工作就是將系統(tǒng)中某用戶下所有的外鍵或觸發(fā)器停止,處理完數(shù)據(jù)后,再打開(kāi)這些關(guān)閉的外鍵和觸發(fā)器。針對(duì)這樣的工作需求,本文給出了下面兩個(gè)SQL腳本:(1) 系統(tǒng)中某模式或用戶下外鍵或者觸發(fā)器的管理腳本;(2) 外鍵錯(cuò)誤自動(dòng)查找腳本。下面就來(lái)詳細(xì)介紹這兩個(gè)腳本。 

  一、約束管理腳本

  該腳本可用來(lái)管理當(dāng)前登錄用戶下的所有外鍵和觸發(fā)器的打開(kāi)和關(guān)閉,此處沒(méi)有處理主鍵和唯一約束條件,該腳本稍加修改就可以處理主鍵和唯一約束條件,但這里建議最好不要在隨意停止主鍵或唯一約束條件后,進(jìn)行數(shù)據(jù)維護(hù)。 

  腳本運(yùn)行方法如下(SQL/PLUS): 


  其中,參數(shù)as_alter只能是“ENABLE”或者“DISABLE”,否則程序提示錯(cuò)誤。當(dāng)參數(shù)為“ENABLE”時(shí),表示將當(dāng)前模式下所有的外鍵和觸發(fā)器打開(kāi),相反“DISABLE”就是將當(dāng)前模式下所有的外鍵和觸發(fā)器關(guān)閉。 

  附存儲(chǔ)過(guò)程腳本: 


  判斷輸入?yún)?shù)是否為DISABLE或者是ENABLE,如果是的話,就繼續(xù)處理,否則退出過(guò)程,給出提示
IF (UPPER(AS_ALTER) = 'DISABLE' OR UPPER(AS_ALTER) = 'ENABLE') THEN
OPEN C_CON;

[NextPage]

當(dāng)前用戶下外鍵的處理 ENABLE或者 DISABLE


  二、約束錯(cuò)誤自動(dòng)查找腳本 

  一般,數(shù)據(jù)庫(kù)管理員在對(duì)數(shù)據(jù)進(jìn)行維護(hù)時(shí),如新數(shù)據(jù)的導(dǎo)入前,首先要關(guān)閉所有的外鍵和觸發(fā)器,數(shù)據(jù)成功導(dǎo)入后,再打開(kāi)導(dǎo)入前關(guān)閉的外鍵和觸發(fā)器。這時(shí)經(jīng)常會(huì)遇到錯(cuò)誤號(hào)為ORA-02298的“未找到父項(xiàng)關(guān)鍵字”的錯(cuò)誤。該錯(cuò)誤的原因就是數(shù)據(jù)庫(kù)表中出現(xiàn)了不能滿足外鍵約束條件的記錄。這里,另外給出了一個(gè)腳本(P_CON_ERR)用來(lái)自動(dòng)查找造成這類錯(cuò)誤的原因,也就是找出不滿足外鍵約束條件的字段值。 

  該存儲(chǔ)過(guò)程可單獨(dú)運(yùn)行,同時(shí)在前面介紹的存儲(chǔ)過(guò)程P_ALTERCONS中也進(jìn)行了調(diào)用,在存儲(chǔ)過(guò)程P_ALTERCONS中,可以看到在打開(kāi)外鍵時(shí),如果出現(xiàn)錯(cuò)誤號(hào)為ORA-02298的錯(cuò)誤,就調(diào)用該存儲(chǔ)過(guò)程,自動(dòng)查找造成外鍵不能啟動(dòng)的原因。 

  下面是單獨(dú)運(yùn)行該存儲(chǔ)過(guò)程的例子,在SQL/PLUS環(huán)境下: 

PL/SQL過(guò)程已成功完成。 

  其中,F(xiàn)K_SB_HJJL_RELATION__SB_PZXH為出現(xiàn)錯(cuò)誤的外鍵名稱。 

  附存儲(chǔ)過(guò)程腳本: 

上一頁(yè)    

您可能感興趣的文章:
  • 關(guān)于sql腳本導(dǎo)入Oracle時(shí)重復(fù)生成check約束的問(wèn)題解決
  • Oracle數(shù)據(jù)庫(kù)的字段約束創(chuàng)建和維護(hù)示例
  • 在Oracle數(shù)據(jù)庫(kù)中添加外鍵約束的方法詳解
  • oracle刪除主鍵查看主鍵約束及創(chuàng)建聯(lián)合主鍵
  • oracle 11g em重建報(bào)唯一約束錯(cuò)誤解決方法
  • Oracle如何給數(shù)據(jù)庫(kù)添加約束過(guò)程解析

標(biāo)簽:股票投資 聊城 通化 池州 南平 襄陽(yáng) 南平 嘉峪關(guān)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle約束管理腳本》,本文關(guān)鍵詞  Oracle,約束,管理,腳本,Oracle,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle約束管理腳本》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Oracle約束管理腳本的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    太原市| 兴仁县| 南宫市| 青阳县| 梁山县| 施甸县| 黄石市| 苍山县| 彭泽县| 禹城市| 阜城县| 灵山县| 延吉市| 加查县| 苏尼特左旗| 印江| 四会市| 高雄市| 全椒县| 武胜县| 盈江县| 新竹市| 桃园市| 成安县| 棋牌| 栾城县| 开封县| 泰安市| 贵港市| 阳新县| 鲁山县| 七台河市| 公主岭市| 西青区| 商洛市| 凤冈县| 鲁山县| 类乌齐县| 伊吾县| 湘潭县| 卢氏县|