はじめに

Verticaには汎用的なデータベース製品同様に、ファンクションが提供されています。ファンクションを使うことで、与えられたパラメータで計算やロジックを行い戻り値を返す処理を実行できます。

この記事では2種類のファンクションの使い方についてご紹介します。


2種類のファンクション機能

Verticaでは以下2種類のファンクション機能が提供されています。

(1)SQLファンクション
(2)ユーザ定義ファンクション


SQLファンクションの使い方

以下の例では、myzeroifnullというファンクション名を定義して、NULL値を0(ゼロ)として表示するファンクションの実行手順を纏めています。

1)ファンクションの作成



2)テーブルの作成



3)テストデータの挿入


ファンクションを使わない通常のSELECT文では上記結果になります。


4)ファンクションの実行


ファンクションを使わった場合にはNULL値を0(ゼロ)として表示しています。


5)その他

集計結果の実行例は以下のとおりです。

【補足】集計結果の例



ユーザ定義ファンクションの使い方

ユーザ定義ファンクション(User Defined Function=UDF)は、ユーザが独自に関数を定義する機能です。
C++、Java、Rを使用してCREATE FUNCTION 文で定義します。
※事前にコンパイルを実施してから下記手順を実行してください。


1)ライブラリの作成



2)定義したライブラリを使用したUDFの作成



3)ユーザ定義ファンクションの状態確認


4)ユーザ定義ファンクションの実行例


上記例はAdd2Ints(int_a,int_b)で指定したint_a + int_bを計算するUDFです。



まとめ

消費税の計算など定型的な処理であったり、簡略化したいような処理がある場合にファンクションを使うと処理を効率化できます。是非ご活用ください。


参考情報

以下マニュアルも合わせてご確認ください。
CREATE FUNCTION (SQL Functions)

CREATE FUNCTION (UDF)


検証バージョンについて

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