OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

vsqlの変数にOSコマンドの結果を設定する方法

公開日:
更新日:
基本操作
#vsql

はじめに

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 本記事を公開