ホーム › フォーラム › A5:SQL Mk-2掲示板 › A5:SQL Mk-2 コマンドラインユーティリティ
-
投稿者投稿
-
katsuwoゲスト
A5:SQL Mk-2 コマンドラインユーティリティを使用したいのですが、実行サンプルがありましたらご教示いただけないでしょうか。
※ファイルを指定してSQLを実行してCSVを出力したいです。
SQLServer、MySQLで利用を考えております。コマンドラインでSQLを実行することが不慣れであるため、的外れな質問になっていた場合申し訳ございません。
お手数をおかけしますが、よろしくお願いいたします。
松原正和キーマスターkatsuwoさんこんにちは。
すみません、A5:SQL Mk-2 コマンドラインユーティリティですが、サンプルもなく、ドキュメントも読みにくいため使いづらいですよね。
例えば、SQLServerでlocalhostの1417ポートで待ち受けする “master” に対して、”sa”ユーザー(パスワード: “FUGAFUGA”)で接続し、test.sqlを実行して結果を得るには、以下のようなコマンドを実行します。
A5M2cmd.exe “/Connect=__ConnectionType=Internal;ProviderName=SQL Server;UserName=sa;Password=FUGAFUGA;ServerName=localhost;Port=1417;Database=master” /RunSQL /FileName=test.sql
実行結果はQuery-1.csv, Query-2.csv のようなCSVファイルで出力されます。
同じように、MySQLでlocalhostの3380ポートで待ち受けする “test_db” に対して、”HOGEHOGE”ユーザー(パスワード: “FUGAFUGA”)で接続し、test.sqlを実行して結果を得るには、以下のようなコマンドを実行します。
A5M2cmd.exe /Connect=__ConnectionType=Internal;ProviderName=MySQL;UserName=HOGEHOGE;Password=FUGAFUGA;ServerName=localhost;Port=3306;Database=test_db /RunSQL /FileName=test.sqlA5:SQL Mk-2 コマンドラインユーティリティは(今のところ)DBに付属するコマンドラインツールのように対話的にSQLを実行するというよりは、A5:SQL Mk-2の機能をバッチなどから単発的に呼び出すツールと思っていただければよいかと思います。
katsuwoゲストありがとうございます!
いろいろ試してみます。
利用は単発でデータ取得したいので、用途には合っていると思います。yyoshゲストコマンドラインユーティリティについて1点確認させてください。
クエリの実行にあたり、A5:SQLで設定済みのDB情報をそのまま利用できると便利だと思ったのですが、今のところそのような機能は無いという理解であっていますでしょうか?
例えば、SSH2トンネルを利用するような少し複雑なDBに対してコマンドラインでクエリを実行できると、その処理のためのプログラムの代わりにこのユーティリティを使用することが出来て助かるなあと思った次第です。宜しくお願い致します。
松原正和キーマスターyyosh さんこんにちは。
はい、現状ではDB登録の設定は別途行うようになっています。GUI版ツールがないとDB登録内容を確認・更新できないという状況が少し困るのと、GUI版ツールで登録したDB情報は必ずしもパスワードを保持していないなど、少し都合が悪いからです。
あと、一応は別ツール扱いであるという理由などもあります。kotenゲストお世話になります。
便利なツールありがとうございます!Oracleで利用していたことはあったのですが、Postgresで利用する必要があり、利用したところ、SQLを投げても
relation “schemaName.tableName” does not exist
というメッセージが返ってきてエラーになってしまいます。
(schemaName:スキーマ、tableName:テーブル)テーブル名をダブルクオーテーションで囲んでも同様なエラーになってしまいます。
読み込むSQLの内容はGUI版では正しく、動くことを確認できております。どのように、記述すべきかご教示いただけると助かります。
どうぞ、よろしくお願いします。
松原正和キーマスターkoten さんこんにちは。
もしかするとですが、接続先DBが違ってしまっているため、該当テーブルが見つからない等の問題が発生していないでしょうか?。kotenゲスト松原様:確認ありがとうございます。
確認したところ、Database パラメータの値が間違っていることがわかりました。
丁寧な対応ありがとうございます。
助かりました!masaruゲスト現在、サクラレンタルサーバーのmysqlにバッチにてデータを登録処理を調査中です。
A5:SQL Mk-2ではSSH2トンネルの設定により接続できたのですが、
コマンドラインユーティリティからは接続できません。SSHの設定ができていないからだと思います。
コマンドラインユーティリティでSSH2トンネルの引数を与える事はできないのでしょうか?
現在下記で試しています。A5M2cmd.exe /Connect=__ConnectionType=Internal;ProviderName=MySQL;UserName=*****;Password=*******;ServerName=**************;Port=3306;Database=hikari-ax_ki /RunSQL /FileName=test.sql
ご回答のほど、よろしくお願いいたします。
松原正和キーマスターmasaru さんこんにちは。
コマンドラインユーティリティでSSH2トンネルを使うには、同根の a5m2cmd.ja.txt を読んで、 “__SSH***” オプションを指定します。
コマンドが長く、大変になるので、GUI版のA5:SQL Mk-2を使用してエクスポートしてそこからパスワードだけ設定しなおして接続文字列を作るとよいかもしれません。hassゲストお世話になっております。
コマンドラインユーティリティでストアドを実行したいのですが、何かオプションを付ける必要がありますでしょうか。
現在、以下のようなコマンドを実行しておりますが、ストアドが実行されていないようです。
【コマンド】
A5M2cmd.exe /Connect=__ConnectionType=Internal;ProviderName=Oracle;UserName=XXX;Password=XXX;Direct=True;ServerName=localhost;Port=1111;Database=XXX /RunSQL /FileName=sql文ファイルパス /OutputFolder=xxx【sql文】
begin
【ストアド名(引数)】;
end;松原正和キーマスターhass さんこんにちは。
A5:SQL Mk-2 コマンドラインユーティリティはデフォルトでは ; をSQLの区切りとして認識してしまうため、不完全なストアドプロシージャを実行しようとしているのかもしれません。
たとえば、 /Separator=Slash オプションをつけるなどすると、 ; をSQLの区切りとしてみなさなくなるため、正しく実行できるの絵はないかと思うのですが、いかがでしょうか?hassゲスト松原様
ご返信いただきありがとうございます。
ご教授いただいたオプションをコマンドにつけることにより、問題なくストアドが実行されることを確認しました。
大変助かりました。今後ともよろしくお願いいたします。
ゲストゲスト/RunSqlの時、実行するSQLファイルに引数を渡す方法はあるでしょうか。
Where文をコマンドラインから制御し、1つのsqlファイルで済むようにしたいと考えております。
もしありましたら例文を頂戴したく存じます。松原正和キーマスターゲストさんこんにちは。
コマンドラインユーティリティでは、/UseEnvVar パラメータを指定すると、 ${env} 形式で環境変数から文字列を取得して置換することができます。
-
投稿者投稿