Sublime Text 3でSQLを実行したい欲求と戦った話
はじめに
いろいろなテキストエディタがありますが、
私は会社の研修がきっかけでSublime Text(以下Sublime)を使用しています。
SQLエディタは普段OsqlEditを使用していますが、
ログに吐かれるSQLを整形⇒分析するのに使い勝手が悪いなと悶々としていました。
これはSublimeで整形から実行/挙動確認までを完結してやりたいという欲求と戦った話です。
環境
OS : windows
接続DB : oracle
導入手順
Package ControlからSQLToolsをインストール
SQLToolsというプラグインを使用することで実現することが可能
http://mtxr.github.io/SQLTools/
1. Ctrl
+Shift
+p
でコマンドパレットを開く
2. installと入力しPackage Control:Install Package
を選択
3. sqltoolsと入力しSQLTools
をインストール
【SQLToolsの設定】
SQLToolsのインストールが終わったら実行ファイルとDB接続情報の設定
【実行ファイルの設定】
-
Preferences
→Package Settings
→SQLTools
→Settings
と進み設定を開く
#最初はこんな感じなのでUser設定に一式コピー(下図、左側を右側に)
- 実行ファイルのPathを設定
User設定にコピーした"cli" :{}
の中を編集し実行ファイルのPATHに書き換える。
#今回はoracleを使用するので"sqlplus"
の部分をsqlplus.exe
のPATHに書き換え
【注意】windowsのPATHは\ (バックススラッシュ)
になるので/
に直すかエスケープを意識しましょう
"cli" : {
"mysql" : "mysql",
"pgsql" : "psql",
// "oracle" : "sqlplus",
"oracle" : "C:\\oraclexe\\app\\oracle\\product\\11.2.0\\server\\bin\\sqlplus.exe",
"vertica" : "vsql",
"sqsh" : "sqsh",
"firebird": "isql",
"sqlite" : "sqlite3"
},
以上で実行ファイルの設定は完了です。
【DB接続情報の設定】
-
Preferences
→Package Settings
→SQLTools
→Connections
と進み設定を開く
User設定のOracle接続情報を書き換え
"Connection Oracle": {
"type" : "oracle",
"host" : "127.0.0.1",
"port" : 1521,
"database": "dbname",
"username": "anotheruser",
"password": "password",
"service" : "servicename",
"encoding": "utf-8"
},
#ここで指定した値を使用してsqlplusを起動しています。
以下、settingsに記載の引数定義
"args": "{username}/{password}@"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={host})(PORT={port})))(CONNECT_DATA=(SERVICE_NAME={service})))""
以上でDB接続情報の設定は完了です。
動作確認
導入まで終わったら動作確認。
- Sublimeを再起動して
Ctrl
+Shift
+p
でコマンドパレットを開く 登録したDBが表示されればOK。DBを選択しSublimeからsqlplusに接続完了。
以上でSublimeでSQLを触るための環境が完成です!
早速やってみよう!
・・・
思いっきり文字化けした( ꒪⌓꒪)
接続DBがS-JISだったので、UTF-8のSublimeとの相性が悪い。。。
いろいろ試した結果、環境変数触るといけるのではということで、、
◆1/23追記
プラグインのUpdateでオプション追加が可能になりました。
Preferences
→ Package Settings
→ SQLTools
→ Connections
の
nls_lang
の設定で文字化けを解消できます!
"Connection Oracle": {
"type" : "oracle",
"host" : "127.0.0.1",
"port" : 1521,
"database": "dbname",
"username": "anotheruser",
"password": "password",
"service" : "servicename",
// nls_lang is optional
"nls_lang": "american_america.al32utf8",
"encoding": "utf-8"
},
無事日本語表示できました(๑˃̵ᴗ˂̵)و
参考
Sublime Text 3 で SQL を実行する方法 (SQLTools)
文字化けに関するトラブルに強くなる【基礎編】
おわりに
これでログから整形→分析→実行確認まで出来るようになりました!
- Example
【ログ】こんなSQLを
【整形】ぱっと整形して
【分析】エラー箇所/修正箇所の特定・修正
【実行】SQLToolsでそのまま実行/挙動確認
osqleditを使わずSublimeで完結できるようになってすっきりです!
#ちなみに整形に使用しているのはuroboroSQL Formatterです。
参考リンクで解決できる方が多いでしょうが、ところどころ戸惑ったので記事にしました。
他のデータベースでも同様に接続可能です。
Sublimeってほんとなんでもできますね( ✧Д✧) カッ!!
Author And Source
この問題について(Sublime Text 3でSQLを実行したい欲求と戦った話), 我々は、より多くの情報をここで見つけました https://qiita.com/NacchoruKun/items/01aa1730523595f6f8e0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .