目次
はじめに
vsqlで使用する変数には、静的な値を設定するだけでなく、OSで実行したコマンドの結果を設定することが可能です。
この記事ではvsqlの変数にOSコマンドの結果を設定する方法をご紹介します。
vsqlで変数を使う方法は、以下の記事をご確認ください。
http://vertica-tech.ashisuto.co.jp/variable_on_vsql/
構文
OSコマンドをバッククォートで囲むことで実行結果が変数に設定されます。
1 |
dbadmin=> \set 変数 `OSコマンド` |
実行例
ファイルに保存したデータを変数に設定する場合
ファイルに格納されたテーブル名をvsqlの変数に設定して、SQLのテーブル名として変数を使用します。
1 2 3 4 5 6 7 8 9 10 11 |
$ 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の条件値として変数をします。
1 2 3 4 5 6 7 8 |
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) |