組み込みのDBMS_UTILITYパッケージは、さまざまなユーティリティサブプログラムを提供します。
サブプログラム
サブプログラム | 説明 |
ANALYZE_DATABASEプロシージャ | データベース内のテーブルを分析します。 |
ANALYZE_SCHEMAプロシージャ | スキーマ内のテーブルを分析します。 |
ANALYZE_PART_OBJECTプロシージャ | 単一のテーブルを分析します。 |
CANONICALIZEプロシージャ | 指定された文字列を標準化します。 |
COMMA_TO_TABLEプロシージャ | コンマ (,) で区切られた名前識別子のリストを名前テーブルに変換します。 |
DB_VERSIONプロシージャ | データベースのバージョンを取得します。 |
EXEC_DDL_STATEMENTプロシージャ | DDLステートメントを実行します。 |
FORMAT_CALL_STACK関数 | 現在の呼び出し履歴をフォーマットします。 |
FORMAT_ERROR_BACKTRACE関数 | 現在のエラーポイントからエラーをキャッチする例外ハンドラーにスタック情報をフォーマットします。 |
FORMAT_ERROR_STACK関数 | 現在のエラースタックをフォーマットします。 |
GET_CPU_TIME関数 | 現在のCPU時間を100分の1秒で返します。 |
GET_DEPENDENCYプロシージャ | 指定されたオブジェクトの依存関係を表示します。 |
GET_HASH_VALUE関数 | 指定された文字列のハッシュ値を計算します。 |
GET_PARAMETER_VALUE関数 | データベース初期化パラメーター設定を取得します。 |
GET_TIME関数 | 現在のクロック時間を100分の1秒で返します。 |
NAME_TOKENIZEプロシージャ | 指定した名前をコンポーネントに解析します。 |
TABLE_TO_COMMAプロシージャ | 名前識別子のテーブルを、名前識別子がコンマ (,) で区切られたリストに変換します。 |
データ型
LNAME_ARRAY
LNAME_ARRAYデータ型は、完全修飾名を含む長い名前のリストを格納するために使用されます。
タイプLNAME_ARRAYはVARCHAR2(4000) のテーブルです。UNCL_アレイ
UNCL_ARRAYデータ型は、名前識別子のリストを格納するために使用されます。
タイプUNCL_ARRAYはVARCHAR2(227) のテーブルです。ANALYZE_DATABASE
このストアドプロシージャは、データベース内のテーブルを分析するために使用されます。
構文
<bx id="1" type="code" text="code code=" DBMS_UTILITY.ANALYZE_DATABASE (
VARCHAR2のメソッド、INTEGER DEFAULT NULLのestimate_rows、INTEGER DEFAULT NULLのestimate_percent、method_opt INVARCHAR2 DEFAULT NULL);"id=" eg9sgv "title=" "uuid=" lje0dzk3b6ejrxn873r "data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.ANALYZE_DATABASE (
VARCHAR2のメソッド、
INTEGER DEFAULT NULLのestimate_rows、
INTEGER DEFAULT NULLのestimate_percent、
method_opt IN VARCHAR2デフォルトNULL); Parameters
パラメーター | 説明 |
method | ANALYZEステートメントの実行に使用されるメソッド。 有効な値:
COMPUTEメソッドとESTIMATEメソッドには違いはありません。 これらのメソッドは、ANALYZEステートメントの実行に使用されます。 その他のパラメータは、Oracleとの互換性のために提供され、実行中は無視されます。 |
estimate_rows | (オプション) 統計の見積もりに基づく行数。 |
estimate_percent | (オプション) 統計の見積もりに基づく行の割合。 |
method_opt | (オプション) 分析するオブジェクトのタイプ。 |
例
CALL DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');ANALYZE_SCHEMA
このストアドプロシージャは、スキーマ内のテーブルを分析するために使用されます。
構文
<bx id="1" type="code" text="code id=" m70rck "title=" "uuid=" ljf27d2i7li5ugck6i3 "code=" DBMS_UTILITY.ANALYZE_SCHEMA (
スキーマIN VARCHAR2、VARCHAR2のメソッド、INTEGER DEFAULT NULLのestimate_rows、INTEGER DEFAULT NULLのestimate_percent、method_opt VARCHAR2 DEFAULT NULL);"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.ANALYZE_SCHEMA (
スキーマIN VARCHAR2、
VARCHAR2のメソッド、
INTEGER DEFAULT NULLのestimate_rows、
INTEGER DEFAULT NULLのestimate_percent、
method_opt IN VARCHAR2デフォルトNULL); Parameters
パラメーター | 説明 |
schema | スキーマの名前。 |
method | ANALYZEステートメントの実行に使用されるメソッド。 有効な値:
COMPUTEメソッドとESTIMATEメソッドには違いはありません。 これらのメソッドは、ANALYZEステートメントの実行に使用されます。 スキーマおよびメソッド以外のパラメータは、Oracleとの互換性のために提供され、実行中は無視されます。 |
estimate_rows | (オプション) 統計の見積もりに基づく行数。 |
estimate_percent | (オプション) 統計の見積もりに基づく行の割合。 |
method_opt | (オプション) 分析するオブジェクトのタイプ。 |
例
CALL DBMS_UTILITY.ANALYZE_SCHEMA('public' 、'compute');ANALYZE_PART_OBJECT
このストアドプロシージャは、単一のテーブルを分析するために使用されます。
構文
<bx id="1" type="code" text="code id=" vxm4mq "title=" "uuid=" ljf27hm81zpa69w6gvd "code=" DBMS_UTILITY.ANALYZE_PART_OBJECT (
VARCHAR2 DEFAULT NULLのスキーマ、object_name IN VARCHAR2 DEFAULT NULL,
object_type IN CHAR DEFAULT 'T '、CHAR DEFAULT 'E' のcommand_type、command_opt IN VARCHAR2デフォルトNULL,
sample_clause IN VARCHAR2 DEFAULT 'sample 5 percent ');"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.ANALYZE_PART_OBJECT (
VARCHAR2 DEFAULT NULLのスキーマ、
object_name IN VARCHAR2 DEFAULT NULL,
object_type IN CHAR DEFAULT 'T '、
CHAR DEFAULT 'E' のcommand_type、
command_opt IN VARCHAR2デフォルトNULL,
sample_clause IN VARCHAR2 DEFAULT 'サンプル5パーセント'); Parameters
パラメーター | 説明 |
schema | 分析するオブジェクトのスキーマ名。 |
object_name | 分析するオブジェクト。 |
object_type | (オプション) 分析するオブジェクトのタイプ。 |
command_type | (オプション) 実行する分析コマンドのタイプ。 |
command_opt | (オプションパラメーター) command_typeパラメーターで使用できるオプション。 |
sample_clause | (オプション) command_typeパラメーターが |
スキーマおよびobject_name以外のパラメータは、Oracleとの互換性のために提供され、実行中は無視されます。
例
CALL DBMS_UTILITY.analyze_part_object('public' 、'table2');CANONICALIZE
このストアドプロシージャは、特定の文字列を標準化するために使用されます。
構文
<bx id="1" type="code" text="code id=" 9opprt "title=" "uuid=" lje0fqhmb531axezxy8 "code=" DBMS_UTILITY.CANONICALIZE (
VARCHAR2の名前、キヤノンOUT VARCHAR2、canon_len INTEGER);"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.CANONICALIZE (
VARCHAR2の名前、
キヤノンOUT VARCHAR2、
canon_len IN INTEGER); Parameters
パラメーター | 説明 |
name | 標準化する文字列。 |
キヤノン | 標準化されている文字列。 |
canon_len | nameパラメーターで指定された文字列の最初の文字から標準化するバイト数。 |
例
次の例は、特定の文字列を標準化する方法を示しています。
<bx id="1" type="code" text="code id=" bknwzh "title=" "uuid=" lje0hlqsjxynigfp8om "code=" DECLARE
名前varchar2デフォルト 'aBc."dEf"."ghi"';
長さ整数デフォルト50;
キヤノンvarchar2;
開始
DBMS_UTILITY.CANONICALIZE (名前、キヤノン、長さ);
DBMS_OUTPUT.PUT_LINE (キヤノン);
エンド;
- "ABC"."dEf"."ghi""data-tag=" codeblock "outputclass=" language-sql ""/>DECLARE
名前varchar2デフォルト 'aBc."dEf"."ghi" ';
長さ整数デフォルト50;
キヤノンvarchar2;
開始
DBMS_UTILITY.CANONICALIZE (名前、キヤノン、長さ);
DBMS_OUTPUT.PUT_LINE (キヤノン);
エンド;
-「ABC」。「dEf」。「ghi」 COMMA_TO_TABLE
このストアドプロシージャは、コンマ (,) で区切られた名前識別子のリストを名前テーブルに変換するために使用されます。
構文
<bx id="1" type="code" text="code id=" 8hm7kn "title=" "uuid=" lje1bax3hm35kxpovwb "code=" DBMS_UTILITY.COMMA_TO_TABLE (
リストIN VARCHAR2,
tablen OUT INTEGER,
タブOUT UNCL_ARRAY);
DBMS_UTILITY.COMMA_TO_TABLE (
リストIN VARCHAR2,
tablen OUT INTEGER,
tab OUT LNAME_ARRAY);"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.COMMA_TO_TABLE (
リストIN VARCHAR2,
tablen OUT INTEGER,
タブOUT UNCL_ARRAY); Parameters
パラメーター | 説明 |
list | コンマ (,) で区切られた名前識別子のリスト。 |
tablen | tabパラメーターで指定されたテーブルのエントリ数。 |
タブ | listパラメーターで指定された名前識別子の名前を含むテーブル。 |
例
次の例は、コンマ (,) で区切られた名前識別子のリストを名前テーブルに変換する方法を示しています。
<bx id="1" type="code" text="code code=" DECLARE
lname DBMS_UTILITY.LNAME_ARRAY;
長さ整数;
リストvarchar2;
開始
list := 'a.b.c.d , b , c , select1';
DBMS_UTILITY.COMMA_TO_TABLE (リスト、長さ、lname);
FOR i IN 1 .. length LOOP
DBMS_OUTPUT.PUT_LINE('-> ' | | lname(i) | | '<- ' | | | length(lname(i)));
エンドループ;
DBMS_OUTPUT.PUT_LINE('-- finished --');
エンド;
-> a.b.c.d <- 8
-> b <- 3
-> c <- 3
-> select1 <- 8
-- finished -- "id=" uot6gd "title=" "uuid=" lje1gr47lk7gi8ytjyh "data-tag=" codeblock "outputclass=" language-sql ""/>DECLARE
lname DBMS_UTILITY.LNAME_ARRAY;
長さ整数;
リストvarchar2;
開始
list := 'a.b.c.d , b , c , select1';
DBMS_UTILITY.COMMA_TO_TABLE (リスト、長さ、lname);
FOR i IN 1 .. length LOOP
DBMS_OUTPUT.PUT_LINE('-> ' | | lname(i) | | '<- ' | | | length(lname(i)));
END LOOP;
DBMS_OUTPUT.PUT_LINE('-- finished --');
エンド;
-> a.b.c.d <- 8
-> b <- 3
-> c <- 3
-> select1 <- 8
-終了- DB_VERSION
このストアドプロシージャは、データベースバージョンの情報を取得するために使用されます。
構文
<bx id="1" type="code" text="code id=" icncxm "title=" "uuid=" lje1nrs0vwmf2m8r0g "code=" DBMS_UTILITY.DB_VERSION (
バージョンOUT VARCHAR2、互換性OUT VARCHAR2); "data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.DB_VERSION (
バージョンOUT VARCHAR2、
互換性OUT VARCHAR2); Parameters
パラメーター | 説明 |
version | データベースのバージョン。 |
compatibility | このパラメータは、Oracleとの互換性のために提供されており、無視できます。 |
例
次の例は、データベースバージョンの情報を取得する方法を示しています。
<bx id="1" type="code" text="code id=" k3h7cb "title=" "uuid=" lje1ptyfdbng6a6bfcd "code=" DECLARE
バージョンvarchar2(100);
両立性varchar2(100);
開始
DBMS_UTILITY.DB_VERSION (バージョン、互換性);
DBMS_OUTPUT.PUT_LINE (バージョン);
DBMS_OUTPUT.PUT_LINE (互換性);
エンド;
-- PostgreSQL 14.8 (PolarDB 14.8.10.0ビルド0d3bf26cデバッグ)
-- PostgreSQL 14.8 (PolarDB 14.8.10.0 build 0d3bf26c debug)"data-tag=" codeblock "outputclass=" language-sql ""/>DECLARE
バージョンvarchar2(100);
両立性varchar2(100);
開始
DBMS_UTILITY.DB_VERSION (バージョン、互換性);
DBMS_OUTPUT.PUT_LINE (バージョン);
DBMS_OUTPUT.PUT_LINE (互換性);
エンド;
-- PostgreSQL 14.8 (PolarDB 14.8.10.0ビルド0d3bf26cデバッグ)
-- PostgreSQL 14.8 (PolarDB 14.8.10.0ビルド0d3bf26cデバッグ) EXEC_DDL_STATEMENT
このストアドプロシージャは、DDLステートメントの実行に使用されます。
構文
<bx id="1" type="code" text="code id=" ryolxa "title=" "uuid=" lje1uqbbmt41hvpqdj "code=" DBMS_UTILITY.EXEC_DDL_STATEMENT (
parse_string IN VARCHAR2);"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.EXEC_DDL_STATEMENT (
parse_string IN VARCHAR2); Parameters
パラメーター | 説明 |
parse_string | 実行するDDLステートメント。 |
例
次の例は、EXEC_DDL_STATEMENTストアドプロシージャを使用してDDLステートメントを実行する方法を示しています。
<bx id="1" type="code" text="code id=" 9g2bpw "title=" "uuid=" lje1w3dhl4e6gf5057 "code=" CALL DBMS_UTILITY.EXEC_DDL_STATEMENT('CREATE TABLE test(a int, b varchar2(20)))');
SELECT * テストから;
a | b
--- + ---
(0行) "data-tag=" codeblock "outputclass=" language-sql ""/>CALL DBMS_UTILITY.EXEC_DDL_STATEMENT('CREATE TABLE test(a int, b varchar2 (20))');
SELECT * テストから;
a | b
--- + ---
(0行) FORMAT_CALL_STACK
この関数は、現在の呼び出し履歴をフォーマットするために使用されます。
構文
<bx id="1" type="code" text="code id=" gptbif "title=" "uuid=" lje1zdbrq99bxi0s5 "code=" DBMS_UTILITY.FORMAT_CALL_STACK();
RETURN VARCHAR2;"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.FORMAT_CALL_STACK();
戻りVARCHAR2; 戻り値
戻り値 | 説明 |
VARCHAR2 | フォーマットされたコールスタックの情報。 |
例
次の例は、現在の呼び出し履歴をフォーマットする方法を示しています。
<bx id="1" type="code" text="code id=" 2q36rt "title=" "uuid=" lje26x8x18a408m01ss "code=" CREATE FUNCTION func() RETURNS varchar2
IS
開始
dbms_utility.format_call_stack() を返します。エンド;
select * from func();
func
--------------------------------------------------
----- PL/SQLコールスタック -----
オブジェクトラインオブジェクト +
ハンドル番号名 +
0 2関数format_call_stack()+
17089 2関数func()
(1行) "data-tag=" codeblock "outputclass=" language-sql ""/>CREATE FUNCTION func() RETURNS varchar2
IS
開始
dbms_utility.format_call_stack() を返します。エンド;
select * from func();
func
--------------------------------------------------
----- PL/SQLコールスタック -----
オブジェクトラインオブジェクト +
ハンドル番号名 +
0 2関数format_call_stack()+
17089 2関数func()
(1行) FORMAT_ERROR_BACKTRACE
この関数は、現在のエラーポイントからエラーをキャッチする例外ハンドラーにスタック情報をフォーマットします。
構文
<bx id="1" type="code" text="code id=" ntx5ov "title=" "uuid=" lje2a10jndstvidxyer "code=" DBMS_UTILITY.FORMAT_ERROR_BACKTRACE()
RETURN VARCHAR2;"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.FORMAT_ERROR_BACKTRACE()
戻りVARCHAR2; 戻り値
戻り値 | 説明 |
VARCHAR2 | バックトラックされたスタックの情報。 |
例
次の例では、関数の呼び出しチェーンを作成します。 この例では、呼び出された関数は例外をスローし、呼び出し元は例外をキャッシュし、FORMAT_ERROR_BACKTRACE関数を使用してエラースタックの情報を表示します。
<bx id="1" type="code" text="code code=" CREATE FUNCTION inner (整数) RETURNS integer
IS
DECLARE
res integer;
開始
res = a/0;
リターンres;
例外
他の人が
昇格例外「予想される例外」;
エンド;
CREATE FUNCTION outer() 整数を返す
IS
開始
リターンインナー (100);
例外
他の人が
DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE());
リターン-1;
エンド;
デュアルから外側 () を選択します。----- エラースタック -----
ERR-33816706: ゼロによる除算
PL/SQL関数" インナー"(整数) 割り当て時の4行目
PL/SQL関数" アウター"() 行2 at RETURN
ERR-16777248: 予想される例外
PL/SQL関数" インナー"(整数) RAISEで8行目
PL/SQL関数"outer"() 2行目RETURN "id=" bwswxe "title=" "uuid=" lje2b491wzrv16s00sf "data-tag=" codeblock "outputclass=" language-sql ""/>CREATE function inner (整数) RETURNS integer
IS
DECLARE
res integer;
開始
res = a/0;
リターンres;
例外
他の人が
昇格例外「予想される例外」;
エンド;
CREATE FUNCTION outer() 整数を返す
IS
開始
リターンインナー (100);
例外
他の人が
DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE());
リターン-1;
エンド;
デュアルから外側 () を選択します。----- エラースタック -----
ERR-33816706: ゼロによる除算
割り当て時のPL/SQL関数「inner」 (整数) 行4
PL/SQL関数 "outer"() 行2 (RETURN)
ERR-16777248: 予想される例外
RAISEでのPL/SQL関数「inner」 (整数) 行8
PL/SQL関数 "outer"() 行2 at RETURN FORMAT_ERROR_STACK
この関数は、現在のエラースタックをフォーマットするために使用されます。
構文
<bx id="1" type="code" text="code id=" hvqvwt "title=" "uuid=" lje2m23efogbyxdv0ov "code=" DBMS_UTILITY.FORMAT_ERROR_STACK
RETURN VARCHAR2;"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.FORMAT_ERROR_STACK
戻りVARCHAR2; 戻り値
戻り値 | 説明 |
VARCHAR2 | フォーマットされたエラー呼び出しスタックの情報。 |
例
次の例では、呼び出される関数が例外をスローする呼び出しチェーンを作成し、呼び出し元は例外をキャッシュし、FORMAT_ERROR_STACK関数を使用してエラースタックの情報を表示します。
<bx id="1" type="code" text="code id=" w3rymp "title=" "uuuid=" lje2oau08by6f284o1h "code=" CREATE FUNCTION inner (整数) RETURNS integer
IS
DECLARE
res integer;
開始
res = a/0;
リターンres;
例外
他の人が
昇格例外「予想される例外」;
エンド;
CREATE FUNCTION outer() 整数を返す
IS
開始
リターンインナー (100);
例外
他の人が
DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.FORMAT_ERROR_STACK());
リターン-1;
エンド;
デュアルから外側 () を選択します。----- エラースタック -----
ERR-33816706: ゼロによる除算
PL/SQL関数" インナー"(整数) 割り当て時の4行目
PL/SQL関数" アウター"() 行2 at RETURN
ERR-16777248: 予想される例外
PL/SQL関数" インナー"(整数) RAISEで8行目
PL/SQL関数"outer"() 2行目RETURN "data-tag=" codeblock "outputclass=" language-sql ""/>CREATE function inner (整数) RETURNS integer
IS
DECLARE
res integer;
開始
res = a/0;
リターンres;
例外
他の人が
昇格例外「予想される例外」;
エンド;
CREATE FUNCTION outer() 整数を返す
IS
開始
リターンインナー (100);
例外
他の人が
DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.FORMAT_ERROR_STACK());
リターン-1;
エンド;
デュアルから外側 () を選択します。----- エラースタック -----
ERR-33816706: ゼロによる除算
割り当て時のPL/SQL関数「inner」 (整数) 行4
PL/SQL関数 "outer"() 行2 (RETURN)
ERR-16777248: 予想される例外
RAISEでのPL/SQL関数「inner」 (整数) 行8
PL/SQL関数 "outer"() 行2 at RETURN GET_CPU_TIME
この関数は、現在のCPU時間を返すために使用されます。
構文
<bx id="1" type="code" text="code id=" skm4os "title=" "uuid=" lje2twc5rima0gzt03p "code=" DBMS_UTILITY.GET_CPU_TIME
RETURN INTEGER;"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.GET_CPU_TIME
戻りますインテガー; 戻り値
戻り値 | 説明 |
INTEGER | 任意の時点のCPU時間 (100分の1秒) 。 |
例
次の例は、プログラムがスリープする前と後に2つのCPU時間値を返す方法を示しています。 2つのCPU時間値の差は、プログラムのスリープ時間よりもはるかに小さい。
<bx id="1" type="code" text="code code=" BEGIN
DBMS_OUTPUT.PUT_LINE('start cpu time:'| | DBMS_UTILITY.GET_CPU_TIME());
-- 開始cpu時間: 11
DBMS_SESSIONS.LEEP (5);
DBMS_OUTPUT.PUT_LINE('end cpu time:'| | DBMS_UTILITY.GET_CPU_TIME());
-終了cpu時間: 11
END;"id=" x7w3dk "title=" "uuid=" lje2uusa8fi7xwojd35 "data-tag=" codeblock "outputclass=" language-sql ""/>BEGIN
DBMS_OUTPUT.PUT_LINE('start cpu time:'| | DBMS_UTILITY.GET_CPU_TIME());
-- 開始cpu時間: 11
DBMS_SESSIONS.LEEP (5);
DBMS_OUTPUT.PUT_LINE('end cpu time:'| | DBMS_UTILITY.GET_CPU_TIME());
-終了cpu時間: 11
エンド; GET_DEPENDENCY
このストアドプロシージャは、特定のオブジェクトの依存関係を表示するために使用されます。
構文
<bx id="1" type="code" text="code id=" 1ahnqs "title=" "uuid=" lje34a7rs4bh40g8e5h "code=" DBMS_UTILITY.GET_DEPENDENCY
タイプIN VARCHAR2、スキーマIN VARCHAR2、"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.GET_DEPENDENCY
タイプIN VARCHAR2、
スキーマIN VARCHAR2、
名前インVARCHAR2); Parameters
パラメーター | 説明 |
type | nameパラメーターで指定されたオブジェクトの型。 |
schema | nameパラメーターで指定されたオブジェクトが存在するスキーマの名前。 |
name | 依存関係を取得するオブジェクトの名前。 |
例
次の例では、テーブルとテーブルのビューを作成します。 次に、GET_DEPENDENCYストアドプロシージャを使用してビューの依存関係を表示する例を示します。
<g id="1" type="code" text="code id=" 4kgpcs "title=" "uuuid=" lje37scnfaojwe7xy5h "code=" CREATE TABLE t(a int、b int);
ビューを作成するv AS SELECT a, b FROM t;
CALL DBMS_UTILITY.GET_DEPENDENCY('view '、'public' 、'v');
-- TABLE T "data-tag=" codeblock "outputclass=" language-sql "">CREATE TABLE t(a int、b int);
ビューを作成するv AS SELECT a, b FROM t;
CALL DBMS_UTILITY.GET_DEPENDENCY('view '、'public' 、'v');
-- テーブルT GET_HASH_VALUE
この関数は、特定の文字列のハッシュ値を計算するために使用されます。
構文
<bx id="1" type="code" text="code id=" 0upfnk "title=" "uuid=" lje3cfy101mj5vwzf762 "code=" DBMS_UTILITY.GET_HASH_VALUE (
名前VARCHAR2、ベースINTEGER,
hash_size INTEGER)
RETURN INTEGER;"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.GET_HASH_VALUE (
名前VARCHAR2、
ベースINTEGER,
hash_size INTEGER)
戻りますインテガー; Parameters
パラメーター | 説明 |
name | ハッシュ値を計算する文字列。 |
base | 返されたハッシュ値の開始ベース値。 |
hash_size | 返されるハッシュ値の範囲。 |
戻り値
戻り値 | 説明 |
INTEGER | 生成されたハッシュ値。 |
例
次の例は、特定の文字列のハッシュ値を計算する方法を示しています。 この例によって計算されるハッシュ値は1から99の範囲である。
<bx id="1" type="code" text="code id=" it0ugi "title=" "uuid=" lje3mkkjh10j2occ6bm "code=" SELECT DBMS_UTILITY.GET_HASH_VALUE('PolarDB ', 1, 100) デュアルから;
get_hash_value
----------------
67
(1行) "data-tag=" codeblock "outputclass=" language-sql ""/>SELECT DBMS_UTILITY.GET_HASH_VALUE('PolarDB', 1, 100) FROM dual;
get_hash_value
----------------
67
(1行) GET_PARAMETER_VALUE
この関数は、データベース初期化パラメーター設定を取得するために使用されます。
構文
<bx id="1" type="code" text="code id=" n79bdg "title=" "uuid=" lje3ub4yd5vt3enem86 "code=" DBMS_UTILITY.GET_PARAMETER_VALUE (
パルナムIN VARCHAR2,
intval OUT INTEGER,
strval OUT VARCHAR2)
RETURN INTEGER;"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.GET_PARAMETER_VALUE (
パルナムIN VARCHAR2,
intval OUT INTEGER,
strval OUT VARCHAR2)
戻りますインテガー; Parameters
パラメーター | 説明 |
parnam | 値が返されるパラメーターの名前。 パラメーターは pg_settings システムビューにリストされます。 |
intval | 整数パラメーターの値またはstrvalパラメーターの長さ。 |
strval | 文字列パラメーターの値。 |
戻り値
戻り値 | 説明 |
INTEGER | パラメーターがINTEGERに設定されている場合、値0が返されます。 それ以外の場合、値1が返されます。 |
例
次の例は、GET_PARAMETER_VALUE関数を使用して文字列型と整数型のパラメーターを取得する方法を示しています。
<bx id="1" type="code" text="code id=" yxzphx "title=" "uuid=" lje40lw4ok0nsxx9uoh "code=" DECLARE
intval INTEGER;
strval VARCHAR2(80);
retインテガー;
開始
ret := DBMS_UTILITY.GET_PARAMETER_VALUE('client_encoding' 、intval、strval);
DBMS_OUTPUT.PUT_LINE('ret is: '| | | ret | |'; intval is: '| | intval | |'; strval is: '| strval);
ret := DBMS_UTILITY.GET_PARAMETER_VALUE('block_size ', intval, strval);
DBMS_OUTPUT.PUT_LINE('ret is: '| | | ret | |'; intval is: '| | intval | |'; strval is: '| strval);
エンド;
ret is: 1; intval is: 4; strval is: UTF8
ret is: 0; intval is: 8192; strval is:"data-tag=" codeblock "outputclass=" language-sql ""/>DECLARE
intval INTEGER;
strval VARCHAR2(80);
retインテガー;
開始
ret := DBMS_UTILITY.GET_PARAMETER_VALUE('client_encoding' 、intval、strval);
DBMS_OUTPUT.PUT_LINE('ret is: '| | | ret | |'; intval is: '| | intval | |'; strval is: '| strval);
ret := DBMS_UTILITY.GET_PARAMETER_VALUE('block_size ', intval, strval);
DBMS_OUTPUT.PUT_LINE('ret is: '| | | ret | |'; intval is: '| | intval | |'; strval is: '| strval);
エンド;
ret is: 1; intval is: 4; strval is: UTF8
ret is: 0; intval is: 8192; strval is: GET_TIME
この関数は、現在の時刻を返すために使用されます。
構文
<bx id="1" type="code" text="code id=" agy7bt "title=" "uuuid=" lje44bsdmf77621jss "code=" DBMS_UTILITY.GET_TIME
RETURN INTEGER;"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.GET_TIME
戻りますインテガー; 戻り値
戻り値 | 説明 |
INTEGER | 100分の1秒単位の任意の時点での時刻。 |
例
次の例は、GET_TIME関数を使用して、プログラムの実行前後の時差を取得する方法を示しています。
<bx id="1" type="code" text="code id=" 07s3yy "title=" "uuid=" lje46cl0vqf4woamoal "code=" DECLARE
start_time整数;
end_time整数;
開始
start_time := DBMS_UTILITY.GET_TIME;
DBMS_LOCK.S.LEEP (5);
end_time := DBMS_UTILITY.GET_TIME;
DBMS_OUTPUT.PUT_LINE('total time is:'| | end_time - start_time);
END;"data-tag=" codeblock "outputclass=" language-sql ""/>DECLARE
start_time整数;
end_time整数;
開始
start_time := DBMS_UTILITY.GET_TIME;
DBMS_LOCK.S.LEEP (5);
end_time := DBMS_UTILITY.GET_TIME;
DBMS_OUTPUT.PUT_LINE('total time is:'| | end_time - start_time);
エンド; NAME_TOKENIZE
このストアドプロシージャは、指定された名前をそのコンポーネントに解析するために使用されます。
構文
<bx id="1" type="code" text="code id=" pfikra "title=" "uuuid=" ljf13m3okeko72kafq "code=" DBMS_UTILITY.NAME_TOKENIZE (
VARCHAR2の名前、a OUT VARCHAR2、bアウトVARCHAR2、cアウトVARCHAR2、dblink OUT VARCHAR2、nextpos OUT INTEGER);"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.NAME_TOKENIZE (
VARCHAR2の名前、
a OUT VARCHAR2、
bアウトVARCHAR2、
c OUT VARCHAR2、
dblink OUT VARCHAR2、
nextpos OUT INTEGER); Parameters
パラメーター | 説明 |
name | 入力名。 名前は、a [ .] の形式のSQL識別子で構成されます。 b [ . c] [[@ dblink] 。 |
a | nameパラメーター値の最初の識別子。 |
b | nameパラメーター値の2番目の識別子。 |
c | nameパラメーター値の3番目の識別子。 |
dblink | nameパラメーター値のdblinkフィールド。 |
nextpos | 入力名の次の文字位置が解析されます。 |
例
次の例は、NAME_TOKENIZEストアドプロシージャを使用して指定された名前を解析する方法を示しています。
<bx id="1" type="code" text="code code=" DECLARE
varchar2;
b varchar2;
c varchar2;
dblink varchar2;
nextpos整数;
名前varchar2;
開始
名前:= 'sch.tbl @ dblink';
DBMS_UTILITY.NAME_TOKENIZE(name、a、b、c、dblink、nextpos);
DBMS_OUTPUT.PUT_LINE('name : '| | name);
DBMS_OUTPUT.PUT_LINE('a : '| | a);
DBMS_OUTPUT.PUT_LINE('b : '| | b);
DBMS_OUTPUT.PUT_LINE('c : '| | c);
DBMS_OUTPUT.PUT_LINE('dblink : '| | dblink);
DBMS_OUTPUT.PUT_LINE('nextpos: '| | nextpos);
エンド;
名前: sch.tbl @ dblink
a : SCH
b : TBL
c:
dblink : DBLINK
nextpos: 14 "id=" al8vgl "title=" "uuid=" ljf1g81d2nw3tgpxo2v "data-tag=" codeblock "outputclass=" language-sql ""/>DECLARE
varchar2;
b varchar2;
c varchar2;
dblink varchar2;
nextpos整数;
名前varchar2;
開始
名前:= 'sch.tbl @ dblink';
DBMS_UTILITY.NAME_TOKENIZE(name、a、b、c、dblink、nextpos);
DBMS_OUTPUT.PUT_LINE('name : '| | name);
DBMS_OUTPUT.PUT_LINE('a : '| | a);
DBMS_OUTPUT.PUT_LINE('b : '| | b);
DBMS_OUTPUT.PUT_LINE('c : '| | c);
DBMS_OUTPUT.PUT_LINE('dblink : '| | dblink);
DBMS_OUTPUT.PUT_LINE('nextpos: '| | nextpos);
エンド;
名前: sch.tbl @ dblink
a : SCH
b : TBL
c:
dblink : DBLINK
nextpos: 14 TABLE_TO_COMMA
このストアドプロシージャは、名前識別子のテーブルを、名前識別子がコンマ (,) で区切られたリストに変換するために使用されます。
構文
<bx id="1" type="code" text="code id=" 5vvcao "title=" "uuid=" ljf1mpqukfp4exhb8h "code=" DBMS_UTILITY.TABLE_TO_COMMA (
タブUNCL_ARRAYで、tablen OUT INTEGER,
リストOUT VARCHAR2);
DBMS_UTILITY.TABLE_TO_COMMA (
タブLNAME_ARRAYで、tablen OUT INTEGER,
list OUT VARCHAR2);"data-tag=" codeblock "outputclass=" language-sql ""/>DBMS_UTILITY.TABLE_TO_COMMA (
タブUNCL_ARRAYで、
tablen OUT INTEGER,
リストOUT VARCHAR2); Parameters
パラメーター | 説明 |
タブ | 名前識別子を含むテーブル。 |
tablen | tabパラメーターで指定されたテーブルのエントリ数。 |
list | コンマ (,) で区切られた名前識別子のリスト。 |
例
次の例は、名前識別子のテーブルを名前識別子がコンマ (,) で区切られたリストに変換する方法を示しています。
<bx id="1" type="code" text="code code=" DECLARE
結果varchar2;
長さ整数;
リストdbms_utility.lname_array;
開始
list := dbms_utility.lname_array('name1', 'name2', 'name3');
DBMS_UTILITY.TABLE_TO_COMMA (リスト、長さ、結果);
DBMS_OUTPUT.PUT_LINE('result is: '| | result | |'; length is: '| | length );
エンド;
-- result is: name1,name2,name3; length is: 3 "id=" fwgxot "title=" "uuid=" ljf1qf8z7sdeu056hwv "data-tag=" codeblock "outputclass=" language-sql ""/>DECLARE
結果varchar2;
長さ整数;
リストdbms_utility.lname_array;
開始
list := dbms_utility.lname_array('name1', 'name2', 'name3');
DBMS_UTILITY.TABLE_TO_COMMA (リスト、長さ、結果);
DBMS_OUTPUT.PUT_LINE('result is: '| | result | |'; length is: '| | length );
エンド;
-結果は: name1、name2、name3です。長さは: 3