はじめに

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

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

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

確認例

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


 

結果の見方についてご案内します。
この例では、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つを指定して関数を実行するパターンを指しています。


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


「proc_oid =8060」の場合

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


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


「proc_oid =8061」の場合

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


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

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

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


[ ]内は指定は任意であり、[ ]の外にあるものは指定が必須です。
つまりこの構文では、第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 本記事を公開