はじめに
vsqlで使用する変数には、静的な値を設定するだけでなく、OSで実行したコマンドの結果を設定することが可能です。
この記事ではvsqlの変数にOSコマンドの結果を設定する方法をご紹介します。
vsqlで変数を使う方法は、以下の記事をご確認ください。
https://www.ashisuto.co.jp/cm/analytics-database/variable_on_vsql.html
構文
OSコマンドをバッククォートで囲むことで実行結果が変数に設定されます。
dbadmin=> \set 変数 `OSコマンド`実行例
ファイルに保存したデータを変数に設定する場合
ファイルに格納されたテーブル名をvsqlの変数に設定して、SQLのテーブル名として変数を使用します。
$ cat tbl.txt
lineorder
dbadmin=> \set var `cat tbl.txt` ★ファイルの表示結果を変数に設定します。
dbadmin=> \echo :var ★変数の内容を確認します。
lineorder
dbadmin=> select count(*) from :var; ★変数に設定したテーブル名を使用して検索を行います。
count
----------
30000000
(1 row)vsqlでVerticaに接続して検索した結果を変数に設定する場合
テーブルの検索結果をvsqlの変数に設定して、SQLの条件値として変数をします。
dbadmin=> \set var `vsql -w vertica -AXtnqc 'select min(d_datekey) from date1'` ★検索結果を変数に設定します。
dbadmin=> \echo :var ★変数の内容を確認します。
19920101
dbadmin=> select count(*) from lineorder where lo_orderdate = :var; ★ 設定した変数を条件に検索を行います。
count
-------
12849
(1 row)注意事項
変数に設定可能な値は1つになります。
検証バージョンについて
この記事の内容はVertica 9.3で確認しています。
更新履歴
2020/4/17 本記事を公開