【PostgreSQL】A5M2の疑似命令で配列にパラメータを渡す

【PostgreSQL】A5M2の疑似命令で配列にパラメータを渡す

A5M2の疑似命令で、PostgreSQLの配列にパラメータを渡す方法を紹介します。

A5M2の疑似命令について

A5M2では擬似命令という特殊なコメントを記述することで、通常のSQL文では実行できない命令を実行することができます。

例えば、以下のようにSetParameterを記載することで、実行SQLにパラメータをセットすることができます。

1-- * SetParameter 'name' 'test' String
2SELECT * FROM TableA WHERE name = :name

:nameに「test」とという文字列を渡してます。パラメータを複数使いまわすような時に、値を書き換える箇所が1つにまとめられるので便利です。

疑似命令でPostgreSQLの配列にパラメータを渡す

A5M2のSetParameterには、配列ARRAYを定義することはできません。そのため、以下のように記述する必要があります。

例として、引数に配列が定義されているファンクションにパラメータを渡すには以下のように記載します。

1-- * SetParameter 'no1' '1' Integer
2-- * SetParameter 'no2' '2' Integer
3SELECT * from FunctionA (ARRAY [:no1, :no2] ::bigint []);

配列の中の値を変数にするといった書き方になります。


今回はA5M2の疑似命令の方法を紹介しました。以上で記事を終わりにします。

参考文献