欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關于sql腳本導入Oracle時重復生成check約束的問題解決

 更新時間:2017年05月18日 10:27:05   作者:YiYing  
這篇文章主要給大家介紹了關于sql腳本導入Oracle時重復生成check約束的問題解決方法,文中給出了詳細的檢查步驟,對大家理解和解決這個問題具有很好的幫助,需要的朋友們下面來一起看看吧。

前言

最近在工作中一位細心的同事發(fā)現(xiàn)產(chǎn)品的全量sql腳本中有一些重復的check約束檢查,就像下圖這樣的

重復腳本

怪異之處還在于,每次執(zhí)行一遍該腳本,然后導出腳本,在導出腳本中重復的次數(shù)就會增加一遍。通過navicat,最終確認每導入一次就會新增加一條重復的check約束,如下圖所示

navicat

這個全量腳本是直接從數(shù)據(jù)庫中導出的,為了方便導入其他的Oracle數(shù)據(jù)庫中,從產(chǎn)品的出貨庫導出時手動去掉了服務名、雙引號。

通過如下步驟可復現(xiàn)該問題:

1.創(chuàng)建表

CREATE TABLE PD_WEB_FILEUPLOAD_CHUNK (
ID VARCHAR2(32 BYTE) NOT NULL ,
MD5 VARCHAR2(32 BYTE) DEFAULT NULL NULL ,
CHUNK NUMBER DEFAULT NULL NULL ,
FILE_DIR VARCHAR2(200 BYTE) NOT NULL
)

可以看到上面的腳本中有NOT NULL的標識,執(zhí)行完后在navicat中可以看到結(jié)果是這樣的


navicat

注意看,這里的check約束是帶雙引號的。

2.執(zhí)行增加check約束的腳本

ALTER TABLE PD_WEB_FILEUPLOAD_CHUNK ADD CHECK (ID IS NOT NULL);
ALTER TABLE PD_WEB_FILEUPLOAD_CHUNK ADD CHECK (FILE_DIR IS NOT NULL);

執(zhí)行了兩遍后,結(jié)果如圖所示


navicat

測試到這里,以為最終終于找到了原因,確認為雙引號的問題。抱著嚴謹?shù)膽B(tài)度,再次確認了一下

3.執(zhí)行帶雙引號的check約束的腳本

ALTER TABLE PD_WEB_FILEUPLOAD_CHUNK ADD CHECK ("ID" IS NOT NULL);
ALTER TABLE PD_WEB_FILEUPLOAD_CHUNK ADD CHECK ("FILE_DIR" IS NOT NULL);

結(jié)果如圖所示:


navicat

靠!居然還是會重復生成!

解決方法

驗證到這里,算是找出了原因。

在全量導出的腳本中,創(chuàng)建表的腳本中已經(jīng)隱含了檢查約束,如果再顯示的添加檢查約束就會重復生成。所以,解決辦法為需要手動刪除所有顯示的檢查約束。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • PL/SQL?Developer15和Oracle?Instant?Client安裝配置詳細圖文教程

    PL/SQL?Developer15和Oracle?Instant?Client安裝配置詳細圖文教程

    PL/SQL Developer是一種集成的開發(fā)環(huán)境,專門用于開發(fā)、測試、調(diào)試和優(yōu)化Oracle PL/SQL存儲程序單元,比如觸發(fā)器等,這篇文章主要給大家介紹了關于PL/SQL?Developer15和Oracle?Instant?Client安裝配置的詳細圖文教程,需要的朋友可以參考下
    2024-04-04
  • Oracle 中生成流水號的方法

    Oracle 中生成流水號的方法

    這篇文章主要介紹了Oracle 中生成流水號的方法 的相關資料,需要的朋友可以參考下
    2016-06-06
  • Drop、Delete與Trunc的區(qū)別和應用方式

    Drop、Delete與Trunc的區(qū)別和應用方式

    這篇文章主要介紹了Drop、Delete與Trunc的區(qū)別和應用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Oracle數(shù)據(jù)庫如何更改數(shù)據(jù)文件位置

    Oracle數(shù)據(jù)庫如何更改數(shù)據(jù)文件位置

    這篇文章主要給大家介紹了關于Oracle數(shù)據(jù)庫如何更改數(shù)據(jù)文件位置的相關資料,Oracle數(shù)據(jù)庫的數(shù)據(jù)文件的位置和信息都被記錄在控制文件中,需要的朋友可以參考下
    2023-08-08
  • Oracle查詢中OVER (PARTITION BY ..)用法

    Oracle查詢中OVER (PARTITION BY ..)用法

    這篇文章主要介紹了Oracle查詢中OVER (PARTITION BY ..)用法,內(nèi)容和代碼大家參考一下。
    2017-11-11
  • Oracle SqlPlus設置Login.sql的技巧

    Oracle SqlPlus設置Login.sql的技巧

    sqlplus在啟動時會自動運行兩個腳本:glogin.sql、login.sql這兩個文件,接下來通過本文給大家介紹Oracle SqlPlus設置Login.sql的技巧,對oracle sqlplus設置相關知識感興趣的朋友一起學習吧
    2016-01-01
  • ORACLE 分區(qū)表的設計

    ORACLE 分區(qū)表的設計

    分區(qū)致力于解決支持極大表和索引的關鍵問題。它采用他們分解成較小和易于管理的稱為分區(qū)的片(piece)的方法。
    2009-08-08
  • oracle用戶權限管理使用詳解

    oracle用戶權限管理使用詳解

    這篇文章主要介紹了oracle用戶權限管理使用方法,需要的朋友可以參考下
    2014-04-04
  • Oracle中查看引起Session阻塞的2個腳本分享

    Oracle中查看引起Session阻塞的2個腳本分享

    這篇文章主要介紹了Oracle中查看引起Session阻塞的2個腳本分享,本文給出了2個腳本來查詢導致Session阻塞的原因,并給出Kill引起阻塞的Session方法,需要的朋友可以參考下
    2014-10-10
  • Oracle11g調(diào)整SGA方法詳解

    Oracle11g調(diào)整SGA方法詳解

    這篇文章主要介紹了Oracle11gSGA調(diào)整方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07

最新評論