最新国产好看的视频,伊人天堂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í)行語句也不會導(dǎo)致錯誤。原來的身體保持不變。

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)文章

最新評論

凤山市| 中牟县| 衡阳市| 永平县| 鄂温| 太保市| 吉安县| 高密市| 怀宁县| 治多县| 沈阳市| 麻栗坡县| 吐鲁番市| 江油市| 敦化市| 通州区| 遂川县| 江陵县| 桃江县| 天峻县| 宝鸡市| 开原市| 东宁县| 商水县| 韶山市| 桐城市| 稷山县| 台中县| 永寿县| 邵东县| 天长市| 台北市| 成都市| 平原县| 英超| 枣强县| 哈密市| 鹤峰县| 界首市| 资中县| 高尔夫|