最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2024年08月05日 09:51:44   作者:zxrhhm  
IF [NOT] EXISTS語法用于抑制因給定對象的存在或不存在而引發(fā)的潛在錯誤,允許您編寫冪等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ā)的潛在錯誤,允許您編寫冪等DDL腳本。

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

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

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

注意:在使用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í)行語句也不會導致錯誤。原來的身體保持不變。

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)建時編譯不成功。去掉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)文章

最新評論

桃江县| 高唐县| 台湾省| 珠海市| 海阳市| 祁东县| 平凉市| 满洲里市| 龙江县| 嘉禾县| 永定县| 游戏| 许昌县| 南安市| 阳新县| 道孚县| 云霄县| 鄯善县| 五莲县| 新郑市| 松滋市| 嘉峪关市| 临夏市| 林州市| 武山县| 宿州市| 调兵山市| 江华| 永德县| 定日县| 巨野县| 湘乡市| 克拉玛依市| 武隆县| 北票市| 石棉县| 江达县| 榆社县| 和田市| 滕州市| 竹山县|