記事のディレクトリ
一貫性のある、標準のSQL * Plusコマンドライン・ツールので、Oracleデータベースです。しかし、現在では、Oracleは、新しいコマンドラインインターフェイスのインターフェイスツールを導入します。Oracle SQL Developerのコマンドライン(SQLcl)。
SQLclは、位置決めがSQLで、無料のJavaベースのツールであるプラスの後継。対話型またはバッチ実行SQLおよびPL / SQLをサポートSQLcl、インライン編集、文の補完、コマンド履歴機能豊富なを提供し、SQL呼び出すことができますプラスのスクリプトを。
主な特徴
- 内蔵エディタ、インタラクティブな編集は複数行のステートメントやスクリプトを促しSQLcl。
- コマンド履歴、サイクルストレージサポート100 historyコマンド/スクリプト。
- コマンド補完、オートコンプリートのオブジェクト名やキーワードにTABキーを使用します。
- 新しいコマンドは、SQL * Plusで増加がCTAS、DLL、繰り返し、ALIAS、サポートしていません SCRIPT、FORMAT 、および多くの新しいコマンドを。
- クライアント側スクリプトようにダイナミックでインタラクティブ実行セッションを作成し、するにはjavascriptの運転指令によって、クエリの結果。
- SQL * Plusのサポート、SQL * Plus環境の設定、コマンドおよび機能のサポート。
インストールSQLcl
SQLclは、Javaに基づいて、ちょうどJRE、Oracleクライアントをインストールする必要はありませんを持っています。私たちは、Oracle OTNダイレクトにログインすることができ、ダウンロードSQLclツール。ダウンロードが完了解凍したら、binディレクトリは、Unix / LinuxでWindowsで実行可能ファイルとsql.exeツールのSQLコマンドが含まれていることができます。
データベースへの接続
SQL * Plusでデータベースに接続するためSQLcl方法はEZCONNECT、TNS、LDAP、TWO_TASKなどを同様のサポートされ、初期のJava環境を構成しに注意を払います。以下は、Windows環境を使用してデータベースへのEZCONNECT接続の例です。
C:\Users\tony>java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
C:\Users\tony>D:\Applications\sqlcl\bin\sql.exe tony/[email protected]:1521/orcl
SQLcl: 发行版 19.1 Production, 发行日期 星期二 六月 11 10:41:41 2019
版权所有 (c) 1982, 2019, Oracle。保留所有权利。
Last Successful login time: 星期二 6月 11 2019 10:41:42 +08:00
已连接到:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> SELECT user FROM dual;
USER
--------------------------------------------------------------------------------
TONY
使用はじめに
SQL * Plusで使用SQLcl非常に似ていますが、多くの新機能が追加され、我々は単に彼らの次のいくつかの主な特徴を紹介します。
ビューヘルプ
ログイン後、使用HELP
コマンドまたは?
ビューはSQLclはヘルプを提供コマンド。
一部はSQLclに新しく追加されたコマンドを強調しています。そして、のような特定のコマンドを表示CTAS
:
SQL> help ctas;
CTAS
ctas table new_table
使用 DBMS_METADATA 可以提取现有表的 DDL,
然后修改为 create table as select * from
コマンドはDDL文を生成するための新しいテーブルを作成し、既存のテーブルに基づいておりますが、文を実行しません。
内蔵エディタ
SQL * Plusのためには、ファイルまたはSQLバッファを編集する外部エディタを呼び出す必要があります。SQLclは使用し、内蔵のエディタを提供することを目指しDEFINE _EDITOR
セットを:
SQL> define _EDITOR;
DEFINE _EDITOR = "notepad" (CHAR)
SQL> define _EDITOR="inline";
SQL> define _EDITOR;
DEFINE _EDITOR = "inline" (CHAR)
内蔵エディタには、次のショートカットをサポートしています。
- R + Ctrlキー -現在のバッファ内のステートメントを実行するには
- Wは、Ctrlキーを+は -バッファの先頭にカーソルを移動します
- S + 1 CTRL -バッファの底部にカーソルを移動
- A + CTRL -先頭にカーソルを移動
- E + Ctrlキー -行の末尾にカーソルを移動
現在の行はアスタリスク(*)が表示されますが、また、カーソルを移動するには、矢印コントロールを使用することができ、コンテンツを削除するには、DeleteキーとBackspaceキーを使用して編集しています。
コマンド履歴
SQL * Plusを使用すると、歴史はコマンドにアクセスすることはできませんインストールrlwrapない限り、実行されました。この問題を解決するSQLcl、チェックHISTORY
helpコマンドを:
SQL> help history;
HISTORY
---------
history [<index> | FULL | USAGE | SCRIPT | TIME | CLEAR (SESSION)?]
SQL>history full
1 select 1 from dual;
2 select 2
> from dual;
3 select 3 from dual
> where 1=1;
SQL>history usage
1 (2) select 1 from dual;
2 (11) select 2 from dual;
3 (2) select 3 from dual where 1=1;
SQL>history script
select 1 from dual;
select 2 from dual;
select 3 from dual where 1=1;
SQL>history 3
1 select 3 from dual
2* where 1=1;
SQL>his time
1 clear
2 cl bre
3 (00.201) select 1 from dual
コマンドパラメータヘルプ、および例が与えられています。historyコマンドリストの後、コマンドを実行するには、スラッシュ(/)を入力します。この機能は、次の特徴があります。
- 上下の矢印を使用して、表示履歴コマンドをクリックします。
- 使用する
HISTORY
コマンドの履歴を表示するコマンドを。 - デフォルトでは、最後の100歴史的な文を保存します。
- 使用する
SET HISTORY LIMIT N
保存された履歴limitコマンドのデフォルト数を変更します。 - SQLcl間でコマンド履歴サポートセッションを保存します。
- デフォルトでは、
SHOW
、HISTORY
、CONNECT
およびSET
コマンドはヒストリに保存されません。 SET HISTORY BLACKLIST
コマンドは、ブラックリストに保存したくないコマンドを設定するために使用することができます。
コマンド補完
タブキー補完入力機能の使用をサポートしSQLcl、あなたは、オブジェクト名とコマンド全体を埋める入力速度を向上させることができます。
書式付き出力
SQL * Plusのデフォルトの出力形式は、通常、より人間的に思えた設定するための一連のコマンドによって、混沌と表示されます。CSV、JSON、XMLなどを含むプレ共通出力形式のSQLcl品種。
SQL> help set sqlformat;
SET SQLFORMAT
SET SQLFORMAT { csv,html,xml,json,ansiconsole,insert,loader,fixed,default}
以下は、CSV形式の例では、デフォルトのフォーマットと出力されます:
SQL> SELECT *
2 FROM
3 EMPLOYEES
4* WHERE rownum <= 2;
EMPLOYEE_ID FIRST_NAME LAST_NAME
----------- -------------------- -------------------------
EMAIL PHONE_NUMBER HIRE_DATE JOB_ID SALARY
------------------------- -------------------- --------- ---------- ----------
COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
-------------- ---------- -------------
207 Tony Dong
TonyDong 515.123.8000 15-1月 -10 IT_PROG 8800
102 60
100 Steven King
SKING 515.123.4567 17-6月 -03 AD_PRES 24000
90
SQL> set sqlformat csv;
SQL> SELECT *
2 FROM
3 EMPLOYEES
4* WHERE rownum <= 2;
"EMPLOYEE_ID","FIRST_NAME","LAST_NAME","EMAIL","PHONE_NUMBER","HIRE_DATE","JOB_ID","SALARY","COMMISSION_PCT","MANAGER_ID","DEPARTMENT_ID"
207,"Tony","Dong","TonyDong","515.123.8000",15-1月-10,"IT_PROG",8800,,,102,60
100,"Steven","King","SKING","515.123.4567",17-6月-03,"AD_PRES",24000,,,90