OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

関数利用時に指定するパラメータを確認する方法(9.3.1新機能)

公開日:
更新日:
基本操作
新バージョン/機能
#関数
#パラメータ

はじめに

本記事では、vs_procedure_columnsシステムテーブルを参照することによって、関数利用時に指定するパラメータを確認する方法についてご紹介します。

以前のバージョンまで、vs_procedure_columnsのcolumn_name列は空欄でしたが、9.3.1から関数利用時に指定するパラメータを確認できるようになりました。
それにより、マニュアルを参照せずとも、対象の関数を利用する際に指定が必要なパラメータについて参照することが可能です。

関数利用時の指定パラメータを確認する

確認例

以下にexport_catalog関数(※)を対象とした確認例を記載します。
(※)Verticaのオブジェクト定義をエクスポートする関数です。

dbadmin=> SELECT * FROM vs_procedure_columns WHERE proc_name = 'export_tables';
 proc_oid | proc_schema |   proc_name   | column_name | column_type | type_oid | column_remarks | ordinal_position | column_isuserdefined
----------+-------------+---------------+-------------+-------------+----------+----------------+------------------+----------------------
     8059 |             | export_tables | destination |           1 |        9 |                |                1 |                    0
     8059 |             | export_tables | scope       |           1 |        9 |                |                2 |                    0
     8059 |             | export_tables |             |           5 |        9 |                |                0 |                    0
     8060 |             | export_tables | destination |           1 |        9 |                |                1 |                    0
     8060 |             | export_tables |             |           5 |        9 |                |                0 |                    0
     8061 |             | export_tables |             |           5 |        9 |                |                0 |                    0
(6 rows)

 

結果の見方についてご案内します。
この例では、export_catalog関数に対し、「proc_oid =8059」,「proc_oid =8060」,「proc_oid =8061」の3種類のレコードが存在します。
これは、export_catalog関数の利用時に、パラメータの指定方法が以下の3パターンあることを意味します。

「proc_oid =8059」の場合

column_nameから、destinationとscopeの2つの値が確認できます。
これは、destinationとscopeの2つを指定して関数を実行するパターンを指しています。

dbadmin=> SELECT export_catalog('/home/dbadmin/tables.txt','tables'); 
export_catalog 
------------------------------------- 
Catalog data exported successfully
(1 row)

※「/home/dbadmin/all.txtファイルに、実行ユーザーがアクセス権を持つ全てのオブジェクト定義をエクスポートする」という処理が行われています。

「proc_oid =8060」の場合

column_nameから、destinationの値のみが確認できます。
これは、destinationのみを指定して関数を実行するパターンを指しています。

dbadmin=> SELECT export_catalog('/home/dbadmin/all.txt'); 
export_catalog 
------------------------------------- 
Catalog data exported successfully
(1 row)

※「/home/dbadmin/tables.txtファイルに、テーブルのDDLをエクスポートする」という処理が行われています。

「proc_oid =8061」の場合

column_nameが空欄のレコードのみです。
これは、引数に何も指定せずに関数を実行するパターンを指します。

dbadmin=> SELECT export_tables();
                                                                                                                                                                                                                                                                                  export_tables                                                                                                                                                                                           
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

CREATE SEQUENCE v_dbd_design2_design2.vs_design_queries_seq  CACHE 1 ;
(省略)
CREATE TABLE public.t1
(
    col1 int,
    col2 varchar(80)
);


(1 row)


※エクスポート結果を、ファイルではなく画面上に出力しています。

マニュアル記載の構文との対応

EXPORT_CATALOGのマニュアルには、構文が以下のように記載されています。

EXPORT_CATALOG ( '[destination]' [, 'scope' ] )

[ ]内は指定は任意であり、[ ]の外にあるものは指定が必須です。
つまりこの構文では、第1引数'[destination]’は指定が必須であり、第2引数[, ‘scope‘ ]の指定は任意であるといえます。
このことを踏まえ、[パラメータの確認方法]項を再度ご確認いただくとより理解が深まるかと存じます。

参考情報

SQL Functions and Statements
https://www.vertica.com/docs/9.3.x/HTML/Content/Authoring/NewFeatures/9.3/9.3.1/SQLandFunctions.htm

検証バージョンについて

この記事の内容はVertica 9.3で確認しています。

更新履歴

2020/06/26 本記事を公開