($title_img_alt)

こちらからの投稿は、先頭に表示されているコメントへの返信になります。
SQLで変数を使いたい OSA さん [ 11月27日(火) 10時1分 ]
DataTransferFromAS400(DTF)かRunSQLScripts
どちらでもいいのですが、SQLで

SELECT * FROM TOKYOLIB.売上ファイル;

という東京の売上ファイルを参照するSQLがあったとして、
このTOKYOをOSAKAやFUKUOKAに一時的に
変更する術は無いのでしょうか。

変数で指定できればいいのですが。

ちなみに副問い合わせで
SELECT * FROM (SELECT LIB||'.売上ファイル' FROM ....);
と指定するのは無理でした。
FROM句の副問い合わせは単なる文字の組み合わせで
実現できないようです。当たり前かもしれませんが。

何がしたいかと言うと、1つのSQLスクリプトファイルで
大阪でも福岡でも動くように変数化したいのです。

解るかた教えてください。よろしくお願いいたします。



RE:SQLで変数を使いたい この手の質問 さん [ 11月28日(水) 8時27分 ]
自分では理解して想像できているのかもしれませんが、状況や環境がわからな
いので、
質問への回答は難しいでしょうね。

DataTransferFromAS400っていうのは?
想像ですが、windows環境から何かを動作させ、AS400にあるデータをSQLで抜
こうってこと
なのですか?

あなた様はわかっているのでしょう。
でも答える側は知っている前提で質問されても、???ですよ。
RE:SQLで変数を使いたい SAKI さん [ 11月28日(水) 9時21分 ]
AS400で実行するのでしたらざっとですが以下
で出来ます。詳細は調べて頂けたらと思います。

QRYを作成
RTVQMQRYで上記QRYからソースを作成(タイプはブランクで良い)
受け渡したい項目を変数(&XXX)で記載
CRTQMQRYでコンパイル。
CLPにてライブラリー名?を変数(パラメータ)で受取
STRQMQRYコマンドで実行RTVQMQRYで作成したQMQRYを実行
その際SETVARパラメータで受取ったライブラリー名を使用
RE:SQLで変数を使いたい OSA さん [ 11月28日(水) 10時4分 ]
SAKI様

ご返事ありがとうございます。

ごめんなさい。せっかくご返事いただいたのですが、
QRYやQMQRYやCLを使うのはやりたい方法とは違いまして、
前述した、
DTF(IBM iからのデータ転送)
RunSQLScripts(ACSに組み込まれています)
もしくはiナビゲーターにもSQLスクリプトを
直接入力できると思いますが、
そちらで出来る方法を探しておりまして。

ご丁寧にお答えくださり感謝します。
RE:SQLで変数を使いたい シャリース さん [ 11月28日(水) 15時43分 ]
やりたい事をしっかり把握できていないのですが、
簡単なbatファイルを用意して、その中で直接DTFの内容をshellやVBScriptで
書き換える仕組を組み込んだらどうでしょうか。
外していたら無視して下さい。
RE:SQLで変数を使いたい OSA さん [ 11月28日(水) 16時17分 ]
シャリース様

確かにvbscriptを使えばDTFの中身を
書き換えて実行することが可能だと思いますが、
ファイルが.vbsと.dtfの2つになるのでちょっと厳しいです。

無視しては失礼ですからお礼だけ。
ありがとうございました。
RE:SQLで変数を使いたい シャリース さん [ 11月28日(水) 16時52分 ]
OSAさんの利用シーンが分からないので、ご参考までに弊社では...
データダウンロードを基幹システムのいたる所に組込んでいます。
ダウンロードの仕組は全て統一されていて
ダウンロード用の中間ファイルを必ず作成します。

この中間ファイルは、同一DBに対して同時に複数名が処理されても
問題無いように端末ID(弊社は固定)をメンバー名にして書き出します。
そこでデータダウンロードする際は、メンバー名を操作端末IDにVBSで書き換えてから
ダウンロードが始まる様にしています。

dtfを書き換えるvbsは全てのダウンロードで共通で利用していますので
1本用意しているだけとなります。

他の方の参考になればと思い記載させていただきました。
RE:SQLで変数を使いたい OSA さん [ 4月2日(火) 11時13分 ]
シャリース様

よく解りました。
ありがとうございました。
RE:SQLで変数を使いたい OSA さん [ 11月28日(水) 16時27分 ]
言葉足らずで申し訳ありません。

現在、

拠点ごとにライブラリを分けて売上や仕入などを
ファイル管理しているので、
TOKYOLIB/URIAGE → tokyo_uriage.dtf
OSAKALIB/URIAGE → osaka_uriage.dtf
CYUBULIB/URIAGE → cyubu.uriage.dtf
といった感じでdtfを複数作っています。


やりたいことは、

それを、1本のdtf
変数/URIAGE → uriage.dtf
にしたいのです。
今のままではファイルX拠点分のDTFが
存在するので管理が大変なのです。


そのやり方として考えたのが、

使用端末(win10)のユーザーIDかIPアドレスをSQLで取得して、
さらにそのSQL内でその情報とライブラリ関連に関する情報を
JOINすることで拠点のライブラリを取得し、
SELECT * FROM :LIB/URIAGE;
といった感じで組み込めないかと
思いました。

一応補足しておきます。

お名前

パスワード

メールアドレス

タイトル

ホームページ

アドレス

項目