B SQLclコマンドライン・インタフェースの拡張機能について
SQLclリリース25.4には、高度な行編集、インテリジェントな自動補完およびカスタマイズ可能なキーボード・ショートカットを備えた、大幅に改善されたコマンドライン・インタフェースが含まれています。
トピック
B.1 SQLclインタフェースの新しいコマンド
SQLclコマンドライン・インタフェースで使用可能な新しいコマンドは次のとおりです:
行番号表示
コマンド: SET LINENUMBERS ON|OFF
デフォルト: ON
説明: 複数行からなるSQL文の行番号を有効にします。これは、ナビゲーション、コーディングおよびデバッグに役立ちます。
コーディングまたはデバッグにはONを使用し、行番号のないクリーンな出力にはOFFを使用します。
拡張ステータス・バー
コマンド: SET STATUSBAR ON|OFF
デフォルト: OFF
説明: リアルタイムのフィードバックおよびセッション・コンテキストを得るために、編集モード、現在の行/列、ユーザーおよびデータベースIDなどのステータス・バーのコンポーネントを表示またはカスタマイズします。
-
EDITMODE: 現在の編集モードがEmacs、VicmdまたはViinsかを表示します。
-
LINECOL: 現在の行および列番号を表示します。
-
USERNAME: 接続しているデータベース・ユーザーの名前を表示します。
-
DBID: 接続しているデータベースのIDを表示します。
ステータス・バーで使用可能なコマンド:
-
SHOW STATUSBAR: 使用可能なすべてのコンポーネントを表示します。
- SET STATUSBAR ON: ステータス・バーを有効にします。
- SET STATUSBAR OFF: ステータス・バーを無効にします。
- SET STATUSBAR ADD ALL: 使用可能なすべてのコンポーネントを追加します。
- SET STATUSBAR ADD <comp>..: 特定のコンポーネントを追加します。
- SET STATUSBAR REMOVE <comp>..: 特定のコンポーネントを削除します。
- SET STATUSBAR DEFAULT: デフォルトのステータス・バー・コンポーネントを表示します。
- SET STATUSBAR DEFAULT <comp>..: 特定のコンポーネントをデフォルトとして追加します。
トラブルシューティング: レンダリングの問題がある場合は、CLEAR SCREENを実行して解決します。
インテリジェントな自動ペアリング
デフォルト: 組込み
説明: 一致するカッコと引用符を自動的に挿入して、構文エラーを減らし、SQLの入力速度を短縮します。
サポートされる文字ペア:
- カッコ( )
- 角カッコ[ ]
- 中カッコ{ }
- 一重引用符' '
- 二重引用符" "
- 抑音符` `
パーソナライズされた自動提案
コマンド: SET AUTOSUGGESTIONS ON|OFF
デフォルト: OFF
説明: 前のセッション履歴に基づいてコマンド補完を提案します。
入力すると、セッション履歴から一致するコマンドがグレーのテキストで表示されます。提案は、キーストロークごとに動的に更新されます。
この設定がOFFの場合は、タブ補完が使用されます。
自動提案およびタブ補完の主な違い
| - | 自動提案 | タブ補完 |
|---|---|---|
| ソース | コマンド履歴 | データベース・スキーマ |
| 最適な状況 | 問合せの繰返し | オブジェクトの検出 |
| 表示内容 | 完全な前のコマンド | オブジェクト、キーワード、関数 |
| タイミング | 入力時 | [Tab]キーを押す |
キーボード・コントロール
- 右矢印: 提案を受け入れます。
- 下矢印: 提案を無視します。
- バックスペース: 入力値で提案を更新します。
B.2 キーボード・ショートカット
次の表に、ナビゲーション、編集および検索を合理化する、EmacsおよびViの両方の編集モードのショートカット・サポートを示します。
ナビゲーション
| ショートカット | アクション | 説明 | モード |
|---|---|---|---|
| [Ctrl]+[L] | 画面のクリア | 端末をリフレッシュしてクリアします | すべて |
| [Ctrl]+[E] | Emacsモード | Emacs編集に切り替えます | VI挿入 |
| [Ctrl]+[\]または[Esc] | 編集の取消し | 入力行をクリアします | すべて |
| [Alt]+[A] | バッファの先頭 | 最初の行に移動します | すべて |
| [Alt]+[E] | バッファの末尾 | 最後の行に移動します | すべて |
| [Ctrl]+[R] | 即時実行 | セミコロンまたはスラッシュによる終了なしでコマンドを実行します | すべて |
履歴および検索操作
| ショートカット | アクション | 説明 | モード |
|---|---|---|---|
| [Alt]+[R] ([Option]+[R]) | 逆方向に検索 | リアルタイム一致でコマンド履歴を逆方向に検索 | すべて |
| [Alt]+[<] | 履歴の先頭 | 最も古いコマンドに移動します | すべて |
| [Alt]+[>] | 履歴の末尾 | 最も新しいコマンドに移動します | すべて |
テキスト編集操作
| ショートカット | アクション | 説明 | モード |
|---|---|---|---|
| [Ctrl]+[U] | 行全体を削除 | 現在の行を削除してキルリングに入れます | すべて |
| [Ctrl]+[W] | 単語を後向きに削除 | カーソルより前にある単語を削除します | すべて |
| [Ctrl]+[Y] | Yank (貼付け) | 最後に削除したテキストをカーソル位置に挿入します | すべて |
| [Ctrl]+[T] | 文字の置換 | カーソルより前の2文字を入れ替える(入力ミス修正) | Emacs |
| [Ctrl]+[_] | 元に戻す | 最後の操作を元に戻します | Emacs |
キルリングは、削除したテキストを格納するクリップボードとして機能します。繰返し貼り付けるためのテキストを取得するには、[Ctrl]+[Y]を使用します。
例:
SQL> SELECT * FROM employees WHERE salary > 5000;
-- Press Ctrl+U to kill entire line
SQL> █
-- Type new command
SQL> DELETE FROM temp_table;
-- Press Ctrl+Y to paste the killed line
SQL> DELETE FROM temp_table;SELECT * FROM employees WHERE salary > 5000;
| ショートカット | アクション | 説明 | モード |
|---|---|---|---|
| [Alt]+[B] ([Option]+[B]) | 単語を後向きに移動 | カーソルを左に1単語移動します | すべて |
| [Alt]+[F] ([Option]+[F]) | 単語を前向きに移動 | カーソルを右に1単語移動します | すべて |
| [Alt]+[C] ([Option]+[C]) | 単語を大文字で始める | カーソル位置の単語を大文字で始めます | すべて |
| [Alt]+[U] ([Option]+[U]) | 単語を大文字にする | カーソル位置の単語を大文字に変換します | すべて |
| [Alt]+[L] ([Option]+[L]) | 単語を小文字にする | カーソル位置の単語を小文字に変換します | すべて |
単語は、空白文字およびSQLの句読点文字で区切られます。
-- Type SQL keyword in lowercase
SQL> select * from employees;
↑ Position cursor on "select"
-- Press Alt+U to convert to uppercase
SQL> SELECT * from employees;
↑ Keyword now properly formatted
補完ヘルプ
| ショートカット | アクション | 説明 | モード |
|---|---|---|---|
| [Tab] | 補完 | 現在のコンテキストの補完メニューをトリガーします | すべて |
| [Tab] [Tab] | すべての選択肢をリスト | 現在のコンテキストのすべてのオプションを表示します | すべて |
SQLclは次にあげる複数のソースからインテリジェントな補完を提供します:
- データベース・スキーマ・オブジェクト(表、ビュー、順序、シノニム)
- SQLのキーワードおよび予約語
- SQLclの拡張機能およびコマンド
- コマンド履歴から取得した以前に使用された識別子
B.3 ヘルプ、構成およびトラブルシューティング
この項では、新しいコマンドに関する情報を取得し、ログイン・スクリプトを使用して永続的な構成を確保し、一般的な問題を解決する方法について説明します。
SQLcl組込みヘルプ
SQLclセッション中に、コマンドおよび設定の詳細を得るには、次のコマンドを入力します:
- HELP SET LINENUMBERS: 行番号の使用に関する詳細を示します。
- HELP SET STATUSBAR: ステータス・バーの構成オプションについて説明します。
- HELP SET AUTOSUGGESTIONS: 自動提案の有効化について詳しく説明します。
現在の設定
セッションの現在の値または設定を確認するには、次を使用します:
- SHOW LINENUMBERS: 行番号が有効かどうかを示します。
- SHOW STATUSBAR: 現在のステータス・バーの構成を表示します。
- SHOW AUTOSUGGESTIONS: 自動提案が有効かどうかを確認します。
ログイン・スクリプト
SQLclは、login.sqlファイルを使用した永続設定をサポートします。これは、次の場所にある場合に、SQLclが起動時に自動的に実行するスクリプトです:
- 現在の作業ディレクトリまたは
- ホーム・ディレクトリ(UNIX/LINUX/MACの場合は
~/login.sql、およびWINDOWSの場合は%USERPROFILE%\login.sql)。
例
希望する設定でlogin.sqlファイルを作成します:
-- Enable enhanced features
SET LINENUMBERS ON
SET STATUSBAR ON
SET AUTOSUGGESTIONS ON
-- Configure display
SET PAGESIZE 50
SET LINESIZE 120
-- Set default formats
SET SQLFORMAT ANSICONSOLE
一般的な問題のトラブルシューティング
次の表に、一般的な問題の解決方法を示します。
| 問題 | コマンド/アクション | 説明 |
|---|---|---|
| 表示の破損 | CLEAR SCREEN | 端末の表示をクリアします。 |
| 履歴の問題 | HISTORY -clear (SESSION)? | 履歴をクリアまたはリセットします |
| 設定のリセット | login.sql | 競合する構成を確認します |
| 機能が動作しない | SHOW <設定> | 機能が有効であることを確認します |