全部產品
Search
文件中心

PolarDB:DBMS_TYPES

更新時間:Aug 09, 2025

DBMS_TYPES內建包是PL/SQL中一個常用的工具包,提供了與動態類型(如REF CURSORLOB等)相關的操作及資料類型定義。通過DBMS_TYPES包,您能夠便捷地處理進階PL/SQL資料類型,從而提升資料庫開發的靈活性與適配能力。

前提條件

支援的PolarDB PostgreSQL版(相容Oracle)的版本如下:

  • Oracle文法相容 2.0(核心小版本2.0.14.17.34.0及以上)

說明

您可在控制台查看核心小版本號碼,也可以通過SHOW polardb_version;語句查看。如未滿足核心小版本要求,請升級核心小版本

功能優勢

  • 支援處理動態類型:提供針對動態資料類型(如動態資料指標REF CURSOR和大對象LOB等)的功能支援,顯著增強了PL/SQL動態處理能力。

  • 類型定義與操作:通過使用DBMS_TYPES內建包,您可以引用內建常量子類型,從而更加靈活地控制資料類型的行為。

  • 進階資料處理:在複雜資料傳遞和動態查詢中提供了便利,例如動態構造結果集和跨平台的資料操作。

注意事項

  • 相容性DBMS_TYPESPolarDB PostgreSQL版(相容Oracle)所提供的PL/SQL內建包,類似於其他資料庫中的標準實現,使用時請確保相關查詢和表結構符合PolarDB使用規範。

  • 動態資料指標REF CURSOR:在動態資料指標操作中,請確保查詢結果的輸出與遊標的定義相匹配,避免類型不符的錯誤。

使用說明

DBMS_TYPES提供了大量的常量與類型,這些元素能夠有效增強PL/SQL程式中動態查詢和複雜類型支援的能力。以下列出了其中一些關鍵內容:

常量說明

常量

描述

DBMS_TYPES.TYPECODE_NUMBER

用於表示NUMBER類型。

DBMS_TYPES.TYPECODE_VARCHAR2

用於表示VARCHAR2類型。

DBMS_TYPES.TYPECODE_DATE

用於表示DATE類型。

DBMS_TYPES.TYPECODE_BLOB

用於表示BLOB類型。

DBMS_TYPES.TYPECODE_CLOB

用於表示CLOB類型。

說明

TYPECODE_BLOBTYPECODE_CLOB常量在處理大對象時非常有用,可結合其他內建包(如DBMS_LOB)實現更強大的功能。

子類型說明

子類型

描述

SYS_REFCURSOR

PL/SQL 動態資料指標類型,用於在預存程序中動態返回查詢結果。

樣本

通過DBMS_TYPES.TYPECODE_BDOUBLE常量比較變數類型,實現變數類型的動態判斷。

DECLARE
    l_typecode PLS_INTEGER;
    v_data ANYDATA := anydata.ConvertBDouble(null);
    v_type ANYTYPE;
BEGIN
    l_typecode := v_data.GETTYPE(v_type);

    IF l_typecode = DBMS_TYPES.TYPECODE_BDOUBLE THEN
        DBMS_OUTPUT.PUT_LINE('It is a double');
    ELSE
        DBMS_OUTPUT.PUT_LINE('It is not a double');
    END IF;
END;

輸出結果

It is a double