亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Oracle23ai 新特性IF [NOT] EXISTS語法支持的使用

 更新時(shí)間:2024年08月05日 09:51:44   作者:zxrhhm  
IF [NOT] EXISTS語法用于抑制因給定對象的存在或不存在而引發(fā)的潛在錯(cuò)誤,允許您編寫冪等DDL腳本,本文主要介紹了Oracle23ai 新特性IF [NOT] EXISTS語法支持的使用,感興趣的可以了解一下

官方文檔地址
https://docs.oracle.com/en/database/oracle/oracle-database/23/lnpls/release-changes.html#GUID-9EE96980-43F9-4068-893E-C191CD83ACA6

IF [NOT] EXISTS 語法支持

CREATE、ALTER和DROP DDL語句支持IF NOT EXISTS和IF EXISTS子句。它們用于抑制因給定對象的存在或不存在而引發(fā)的潛在錯(cuò)誤,允許您編寫冪等DDL腳本。

CREATE DDL語句支持IF NOT EXISTS子句,以防止在具有給定名稱的對象已存在時(shí)拋出錯(cuò)誤。如果對象已經(jīng)存在,則忽略該命令,原始對象保持不變。

另一方面,IF EXISTS子句在與ALTER和DROP DDL語句一起使用時(shí)會抑制錯(cuò)誤。如果不存在給定名稱的對象,則忽略該命令,并且沒有對象受到ALTER或DROP的影響。

子句的使用或排除為您提供了更多的控制,具體取決于您是否需要在執(zhí)行DDL語句之前知道對象是否存在。有了這種靈活性,您可以確定是寧愿忽略該語句,還是在對象存在(或不存在)的情況下引發(fā)錯(cuò)誤。

注意:在使用CREATE DDL語句的命令中,IF NOT EXISTS不能與OR REPLACE結(jié)合使用。

Note:IF NOT EXISTS cannot be used in combination with OR REPLACE in commands using the CREATE DDL statement.

CREATE PROCEDURE with IF NOT EXISTS

假設(shè)您的架構(gòu)中不存在同名過程,則執(zhí)行一次此語句會創(chuàng)建過程hello。
Executing this statement one time results in the creation of procedure hello, assuming a procedure by the same name does not already exist in your schema.

TESTUSER@FREEPDB1> col BANNER format a100
TESTUSER@FREEPDB1> select BANNER from v$version;

BANNER
----------------------------------------------------------------------------------------------------
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

CREATE PROCEDURE IF NOT EXISTS hello AS
BEGIN
  DBMS_OUTPUT.PUT_LINE('Hello there');
END;
/

在這里插入圖片描述

在這里插入圖片描述

即使更改了存儲過程體,多次執(zhí)行語句也不會導(dǎo)致錯(cuò)誤。原來的身體保持不變。

Executing the statement additional times, even with an altered procedure body, results in no error. The original body remains unchanged.

TESTUSER@FREEPDB1> CREATE PROCEDURE IF NOT EXISTS hello AS
  2  BEGIN
  3    DBMS_OUTPUT.PUT_LINE('Second hello');
  4  END;
  5  /

Procedure created.


TESTUSER@FREEPDB1> col text format a100
TESTUSER@FREEPDB1> SELECT TEXT FROM USER_SOURCE WHERE NAME='HELLO';

TEXT
----------------------------------------------------------------------------------------------------
PROCEDURE               hello AS
BEGIN
  DBMS_OUTPUT.PUT_LINE('Hello there');
END;

Orcle19c及之前版本都不支持該語法

在這里插入圖片描述

發(fā)現(xiàn)創(chuàng)建時(shí)編譯不成功。去掉IF NOT EXISTS則成功創(chuàng)建,并執(zhí)行成功!

HR@orcl> CREATE PROCEDURE hello AS
  2  BEGIN
  3    DBMS_OUTPUT.PUT_LINE('Second hello');
  4  END;
  5  /

Procedure created.

HR@orcl> col BANNER format a100
HR@orcl> select BANNER from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

HR@orcl> set serveroutput on
HR@orcl> begin
  2         hello();
  3       end;
  4      /
Second hello

PL/SQL procedure successfully completed.

到此這篇關(guān)于Oracle23ai 新特性IF [NOT] EXISTS語法支持的使用的文章就介紹到這了,更多相關(guān)Oracle23ai IF [NOT] EXISTS內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Oracle SQL Developer顯示的時(shí)間包含時(shí)分秒的設(shè)置方法

    Oracle SQL Developer顯示的時(shí)間包含時(shí)分秒的設(shè)置方法

    Oracle SQL Developer是Oracle公司出品的一個(gè)免費(fèi)的集成開發(fā)環(huán)境,本篇文章給大家介紹Oracle SQL Developer顯示的時(shí)間包含時(shí)分秒的設(shè)置方法,需要的朋友參考下吧
    2015-09-09
  • PLSQL安裝與使用圖文教程

    PLSQL安裝與使用圖文教程

    這篇文章詳細(xì)介紹了PL/SQL的下載、安裝、配置以及使用方法,內(nèi)容包括如何下載和安裝PL/SQL和Oracle Instant Client,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-02-02
  • mybatis?調(diào)用?Oracle?存儲過程并接受返回值的示例代碼

    mybatis?調(diào)用?Oracle?存儲過程并接受返回值的示例代碼

    這篇文章主要介紹了mybatis?調(diào)用?Oracle?存儲過程?并接受返回值,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 詳解Oracle的sqlldr理論

    詳解Oracle的sqlldr理論

    這篇文章主要介紹了詳解Oracle的sqlldr理論,SQL*LOADER是ORACLE的數(shù)據(jù)加載工具,通常用來將操作系統(tǒng)文件(數(shù)據(jù))遷移到ORACLE數(shù)據(jù)庫中,SQL*LOADER是大型數(shù)據(jù)倉庫選擇使用的加載方法,因?yàn)樗峁┝俗羁焖俚耐緩?DIRECT,PARALLEL),需要的朋友可以參考下
    2023-07-07
  • Oracle Listener 動態(tài)注冊 與 靜態(tài)注冊

    Oracle Listener 動態(tài)注冊 與 靜態(tài)注冊

    注冊就是將數(shù)據(jù)庫作為一個(gè)服務(wù)注冊到監(jiān)聽程序??蛻舳瞬恍枰罃?shù)據(jù)庫名和實(shí)例名,只需要知道該數(shù)據(jù)庫對外提供的服務(wù)名就可以申請連接到數(shù)據(jù)庫
    2015-12-12
  • Oracle/SQL中TO_DATE函數(shù)詳細(xì)實(shí)例解析

    Oracle/SQL中TO_DATE函數(shù)詳細(xì)實(shí)例解析

    Oracle to_date()函數(shù)用于日期轉(zhuǎn)換,下面這篇文章主要給大家介紹了關(guān)于Oracle/SQL中TO_DATE函數(shù)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用oracle具有一定的參考解決價(jià)值,需要的朋友可以參考下
    2024-06-06
  • oracle 分頁問題解決方案

    oracle 分頁問題解決方案

    測試說分頁查詢貌似不起作用,翻到第4頁以后,看到的數(shù)據(jù)結(jié)果都是相同的,此等問題應(yīng)該如何解決,本文將詳細(xì)介紹
    2012-11-11
  • Oracle遞歸查詢樹形數(shù)據(jù)實(shí)例代碼

    Oracle遞歸查詢樹形數(shù)據(jù)實(shí)例代碼

    Oracle數(shù)據(jù)庫中常要處理一些父子關(guān)系的記錄,在OLTP中要用得多一些,oracle提供了遞歸查詢可以很容易的滿足這個(gè)需求,下面這篇文章主要給大家介紹了關(guān)于Oracle遞歸查詢樹形數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Oracle創(chuàng)建和管理分區(qū)索引的操作方法

    Oracle創(chuàng)建和管理分區(qū)索引的操作方法

    創(chuàng)建和管理分區(qū)索引(Partitioned Index)是數(shù)據(jù)庫管理中的重要任務(wù),特別是在處理大規(guī)模數(shù)據(jù)集時(shí),以下是如何在Oracle數(shù)據(jù)庫中創(chuàng)建和管理分區(qū)索引的詳細(xì)步驟和示例代碼,感興趣的朋友一起看看吧
    2024-08-08
  • oracle中讀寫blob字段的問題解析

    oracle中讀寫blob字段的問題解析

    這篇文章以程序?qū)嵗f明通過JDBC操縱Oracle數(shù)據(jù)庫LOB類型字段的幾種情況
    2013-09-09

最新評論