ここでの初心者の質問: 私は FreeTDS を動作させ、Microsoft SQL Server 2008 r2 db をクエリし、ミント linux vm から、インターウェブを読み取り、ほとんどが stackoverflow を使用してい ます。 FreeTDSを使用してデータベースにアクセスできるため、cliの一部であることに加えて、sqshが追加するものを理解していません..これを解決するための情報をいただければ幸いです。
3 に答える
私は過去にsqshをたくさん使ってきました。本当に役に立ちました。
sybase/mSServer isql を使用したことがある場合は、これが非常に面倒であることがわかるでしょう。コマンドライン編集と履歴の実際のサポートはありません。SQSH はもともと、データベースとのインターフェース用にシェルのようなコマンドライン環境を提供するために作成されました。データベースからデータを抽出してファイルに保存するのは非常に簡単です。その後、必要に応じてファイルを編集し、bcp またはその他を使用してデータを新しいテーブルにロードできます。
SQSH シェルは、環境変数、ファイル リダイレクトをサポートしています (内部的に入力方向を使用したことは覚えていませんが、
select c1, c2, c3,c7, c120 from customer > customerFile
とても便利でした。
左側のメニューの機能リンクの下にあるhttp://www.sqsh.orgで機能の完全なリストを参照してください。
Commands
Variables
Redirection and Pipes
Aliasing
Command Substitution
Backgrounding & Job Control
SQL Batch History
Configurable Exit Status
Inter-Server BCP
Remote Procedure Calls
Semicolon "go"
Simple Scripting
Flow-of-Control
Functions
Multiple Display Styles
X Windows Support
Macro Pre-Processing
Miscellaneous
Commands
フロー制御では、複数行の結果セットを返す 1 つのクエリを使用し、各レコードdo
で , およびwhile
ループ処理を使用できることに注意してください。if ... elif ..fi
これもブロックをサポートします。これらの機能をあまり使用したことは覚えていませんが、エイリアスと環境変数を見つけ、リダイレクトによって何時間も節約できました。
とはいえ、私はやる気のあるユーザーでした。ドキュメントはすべての回答を提供するものではありません。そのため、実験、頭を悩ませること、およびレビューに時間がかかる場合があります。
私はそれについて読んだことを除いて、TDS の経験はありません。基本的に、あなたが答える必要がある質問は、私はシェル コマンド ライン ジャンキーですか、テキスト ベースの SQL クライアントでコマンド ライン パワーを取得する方法を学ぶために少し時間を割いても構わないということです。
IHTH。
TDS (Tabular Data Stream) は、Sybase と MSSQL が使用しているネイティブのクライアント - サーバー通信プロトコルであり、ミドルウェア ソフトウェアとユーティリティの専用セットである CT_Library に実装されています。FreeDTS は、CT-Library に相当するオープンソースです。Sqsh は CT-Library 呼び出しを使用してサーバーと通信し、Sybase CT-Library または FreeTDS の両方でビルド/リンクできます。Sybase CT-Library は TDS バージョン 5.0 以下のみをサポートしますが、MSSQL は現在 TDS バージョン 7.0 または 8.0 を使用しています。これらのプロトコル バージョンは、FreeTDS でもサポートされています。したがって、sqsh を MSSQL に接続できるようにする場合は、ミドルウェア層として FreeTDS が必要になります。FreeTDS には、サーバーに接続していくつかの SQL ステートメント (fisql、tsql) を実行するために使用できるいくつかの基本的なユーティリティも付属しています。ただし、Sqsh は、実際のシェルのように、より多くの機能を提供します。
私は、ubuntu で unixodbc と freetds を perl の ODBC モジュールと組み合わせて使用しています。時々(非常にまれですが)isql
簡単なクエリに使用しますが、それだけです。SQSH は、より優れた機能を持つ isql に似たものです。SQSHウィキをチェックしてください
SQSH には、isql よりも多くの機能があります。ただし、isql / sqsh を広範囲に使用しなければならないユースケースに遭遇したことはありません。私が持っているものは何でも、私はperlを介してそれを行います.