スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス
CALL COMMAND文(コマンド又はユティリティの実行)
機能
HiRDBのコマンド又はユティリティを実行し,実行結果(標準出力,標準エラー出力,戻り値)を取得できます。
使用権限
システム共通定義のpd_sql_command_exec_usersオペランドで指定されている認可識別子を持つユーザ
形式
CALL COMMAND{:埋込み変数1|?パラメタ1|定数1} 〔WITH{:埋込み変数2|?パラメタ2|定数2}〔,{:埋込み変数2|?パラメタ2|定数2}〕…〕 〔INPUT{:埋込み変数3|?パラメタ3|定数3}〕 〔OUTPUT TO{:埋込み変数4 :標識変数1|?パラメタ4}〕 〔ERROR TO{:埋込み変数5 :標識変数2|?パラメタ5}〕 〔RETURN CODE TO{:埋込み変数6|?パラメタ6}〕 〔ENVIRONMENT{:埋込み変数7|?パラメタ7|定数4}〕 〔SERVER{:埋込み変数8|?パラメタ8|定数5}〕 |
オペランド
実行するコマンドやユティリティの名称を格納した埋込み変数,?パラメタ又は定数を指定します。コマンド又はユティリティの名称に,相対パスや絶対パスは指定できません。埋込み変数及び?パラメタのデータ型は,最大長が30バイト以下の可変長文字列にしてください。ただし,埋込み変数及び?パラメタに文字集合名UTF16を指定した場合,最大長が60バイト以下の可変長文字列になります。定数の長さは,30バイト以下にしてください。
コマンドやユティリティに渡す引数を格納した埋込み変数,?パラメタ又は定数を指定します。引数の並びが長いために,一つの埋込み変数,?パラメタ又は定数で指定できない場合は,複数の埋込み変数,?パラメタ又は定数を用いて指定してください。この場合は,指定した順序で文字列を結合します。複数の引数を与えたい場合は,セミコロンで区切って記述してください。セミコロン自身を引数に指定する場合は,2個の連続するセミコロンを指定してください。埋込み変数及び?パラメタのデータ型は,最大長が32,000バイト以下の可変長文字列にしてください。定数の長さは,32,000バイト以下にしてください。引数の中にパスを含む場合は,絶対パスで指定してください。
実行するコマンドやユティリティに渡す標準入力の内容を格納した埋込み変数,?パラメタ又は定数を指定します。埋込み変数及び?パラメタのデータ型は,最大長が32,000バイト以下の可変長文字列にしてください。定数の長さは,32,000バイト以下にしてください。パスワードの入力を要求するコマンドやユティリティに対して,INPUT句を用いてパスワードを与えることはできません。
実行したコマンドやユティリティの標準出力の内容を格納する埋込み変数又は?パラメタを指定します。埋込み変数及び?パラメタのデータ型は,最大長が2ギガバイト以下のバイナリデータ列(BLOB)です。標準出力が埋込み変数又は?パラメタの最大長を超える場合は,出力の先頭から最大長までの情報が格納され,それ以降の情報は切り捨てられます。この場合,標識変数には出力を切り捨てたことを示す標準出力の長さが格納されます。埋込み変数を使用する場合は,必ず標識変数を指定してください。
実行したコマンドやユティリティの標準エラー出力の内容を格納する埋込み変数又は?パラメタを指定します。埋込み変数及び?パラメタのデータ型は,最大長が2ギガバイト以下のバイナリデータ列(BLOB)です。標準エラー出力が埋込み変数又は?パラメタの最大長を超える場合は,出力の先頭から最大長までの情報が格納され,それ以降の情報は切り捨てられます。この場合,標識変数には出力を切り捨てたことを示す標準エラー出力の長さが格納されます。埋込み変数を使用する場合は,必ず標識変数を指定してください。
実行したコマンドやユティリティの戻り値を格納する埋込み変数又は?パラメタを指定します。埋込み変数及び?パラメタのデータ型は,整数型です。
コマンドやユティリティを実行する時のクライアント環境定義を格納した埋込み変数,?パラメタ又は定数を指定します。埋込み変数及び?パラメタのデータ型は,最大長が32,000バイト以下の可変長文字列にしてください。定数の長さは,32,000バイト以下にしてください。
クライアント環境定義は,「クライアント環境定義名=値」の形式で指定してください。複数のクライアント環境定義を指定したい場合は,セミコロンで区切って記述してください。セミコロン自身を引数に指定する場合は,2個の連続するセミコロンを指定してください。
コマンドやユティリティを実行する環境にデフォルトで設定されるクライアント環境定義は,HiRDB起動時のクライアント環境定義(PDDIR,PDCONFPATHなど)を引き継ぎます。また,システム定義のputenv形式で設定されているクライアント環境定義も引き継ぎます。指定可能なクライアント環境定義の詳細は,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
コマンドやユティリティを実行するサーバ名を格納した埋込み変数,?パラメタ又は定数を指定します。サーバ名とは,システム共通定義のpdstartオペランドの-sオプションで指定されているサーバ名のことです。埋込み変数及び?パラメタのデータ型は,最大長が8バイト以下の可変長文字列にしてください。ただし,埋込み変数及び?パラメタに文字集合名UTF16を指定した場合,最大長が16バイト以下の可変長文字列になります。定数の長さは,8バイト以下にしてください。HiRDB/パラレルサーバでシステムマネジャユニットを指定する場合は,MGRを指定してください。SERVER句が省略された場合,HiRDB/パラレルサーバではMGR,HiRDB/シングルサーバではSDSのサーバ名が仮定されます。
共通規則
% pdfbkup /hirdb/ios/db0 /hirdb/ios/db0.backup 1605756 19:27:29 SQA2 KFPI21514-Q HiRDB file system area /hirdb/ios/db0 backup to /hirdb/ios/db0.backup. [G:continue, T:terminate]
EXEC SQL CALL COMMAND 'pdfbkup' WITH '/hirdb/ios/db0;/hirdb/ios/db0.backup' INPUT 'G';
EXEC SQL BEGIN DECLARE SECTION; char input_data[10]; EXEC SQL END DECLARE SECTION; sprintf(input_data, "G\n"); EXEC SQL CALL COMMAND 'pdfbkup' WITH '/hirdb/ios/db0; /hirdb/ios/db0.backup' INPUT :input_data;
注意事項
表5-2 コマンド又はユティリティを実行できなかった場合に取得する情報と情報の格納先
取得する情報 | 取得する情報の格納先 |
---|---|
|
埋込み変数5又は?パラメタ5 |
OSのシステム関数の終了コード | 埋込み変数6又は?パラメタ6 |
使用例
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB(1M) OUTPUT; EXEC SQL END DECLARE SECTION; EXEC SQL CALL COMMAND 'pdfls' WITH '-H;/hirdb/ios/rdfiles' OUTPUT TO :OUTPUT;
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB(1M) OUTPUT; EXEC SQL END DECLARE SECTION; EXEC SQL CALL COMMAND 'pdhold' WITH '-r;RU01,RU02,RU03' OUTPUT TO :OUTPUT;
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB(1M) OUTPUT; EXEC SQL END DECLARE SECTION; EXEC SQL CALL COMMAND 'pdhold' WITH '-r;RU01',',RU02,RU03' OUTPUT TO :OUTPUT;
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB(1M) OUTPUT; char RDAREAS[100]; EXEC SQL END DECLARE SECTION; sprintf(RDAREAS, "RU01,RU02,RU03"); EXEC SQL CALL COMMAND 'pdhold' WITH '-r;',:RDAREAS OUTPUT TO :OUTPUT;
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.