2 Oracle SQLclの使用
Oracle SQLcl (SQL Developerコマンドライン)は、Oracle Database用のJavaベースのコマンドライン・インタフェースです。SQLclを使用すると、SQL文およびPL/SQL文を対話式またはバッチ・ファイルで実行できます。SQLclは、インライン編集、文の完了、コマンドの再呼出しを提供し、既存のSQL*Plusスクリプトもサポートします。
Oracle SQLclはOracle Technology Networkからダウンロードできます。
ノート:
- 
                        
                        SQLclを実行するには、Oracle Java 11以降のバージョンをインストールする必要があります。Javaバージョンが11未満の場合、SQLclのインストールは失敗し、次のエラー・メッセージが表示されます。 Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError:。
- 
                        
                        Windowsでは、次のディレクトリでJavaが検索されます。- SQLcl (sql.exe)の場合: 
                                 ..\..\jdk\jre\bin;%JAVA_HOME%\bin;%PATH%;%ORACLE_HOME%\jdk\jre\bin
- Oracle DatabaseとともにインストールされるSQLclの場合:
                                        
                                 %JAVA_HOME%\bin;%PATH%;..\jdk\jre\bin;%ORACLE_HOME%\jdk\jre\bin
 
- SQLcl (sql.exe)の場合: 
                                 
- これらのディレクトリにJavaファイルが見つからない場合、最小バージョンが11.0.9 (つまり、これ以上のバージョン)のJavaがレジストリで検索されます。
この章のトピックは、次のとおりです:
2.1 SQLclコマンド(アルファベット順)
@{url | file_name[.ext]} [arg ]
@@ { url | file_name[.ext] } [arg ]
/ (スラッシュ)
ACC[EPT]  [NUM[BER] | CHAR | DATE | BINARY_FLOAT | BINARY_DOUBLE] [FOR[MAT] format] [DEF[AULT] default] [PROMPT text | NOPR[OMPT]] [HIDE]
ALIAS [<name>=<SQL statement>;| LOAD [<filename>]|SAVE [<filename>] | LIST [<NAME>] | DROP <name> | DESC <name>  <Description String>]
APEX [export <application_id>]
A[PPEND] text
ARCHIVE LOG LIST
BRE[AK] [ON report_element [action [action]]] ...
BRIDGE
BTI[TLE] [printspec [text | variable] ...] | [ON | OFF]
CD [<directory>]
C[HANGE] sepchar old [sepchar [new [sepchar]]]
CL[EAR] option ...
COL[UMN] [{column | expr} [option ...]]
COMP[UTE] [function [LAB[EL] text] ... OF {expr | column | alias} ...ON {expr | column | alias | REPORT | ROW} ...]
CONN[ECT] [{<logon>| / |proxy} [AS {SYSOPER | SYSDBA | SYSASM}] [edition=value]]
CTAS table new_table
COPY {FROM database | TO database | FROM database TO database} {APPEND | CREATE | INSERT | REPLACE | APPEND_BYTE | CREATE_BYTE | REPLACE_BYTE} destination_table[(column, column, column, ...)] USING query
DDL [object_name [type] [SAVE filename]]
DEF[INE] [variable] | [variable = text]
DEL [n | n m | n * | n LAST | * | * n | * LAST | LAST]
DESC[RIBE] {[schema.]object[@connect_identifier]}
DG
DISC[ONNECT]
ED[IT] [file_name[.ext]]
EXEC[UTE] statement
{EXIT | QUIT} [SUCCESS | FAILURE | WARNING | n | variable  | :BindVariable] [COMMIT | ROLLBACK]
FIND [<filename>]
FORMAT [BUFFER | RULES <filename> | FILE <input_file> <output_file>]
GET  [FILE] file_name[.ext] [LIST | NOLIST]
HELP | ? [topic]
HISTORY [index | FULL | USAGE | SCRIPT | TIME | CLEAR (SESSION)?]
HO[ST] [command]
INFO[RMATION] {[schema.]object[@connect_identifier]}
I[NPUT] [text]
L[IST] [n | n m | n * | n LAST | * | * n | * LAST | LAST]
LOAD [schema.]table_name[@db_link] file_name
OERR <facility> <error>
PASSW[ORD] [username]
PAU[SE] [text]
PRINT [variable ...]
PRO[MPT] [text]
{QUIT | EXIT} [SUCCESS | FAILURE | WARNING | n | variable  | :BindVariable] [COMMIT | ROLLBACK]
REM[ARK]
REPEAT <iterations> <sleep>
REST [export [<module_name> | <module_prefix>] | modules | privileges | schemas]
R[UN]
SAV[E] [FILE] file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]]
SCRIPT <script file>
SET system_variable value
SHO[W] [option]
SHUTDOWN [ABORT | IMMEDIATE | NORMAL | TRANSACTIONAL [LOCAL]]
SODA
SPO[OL] [filename[.ext] [CRE[ATE] | REP[LACE] | APP[END]] | OFF | OUT]
SSHTUNNEL <username>@<hostname> -i <identity_file> [-L localPort:Remotehost:RemotePort]
STA[RT] { url | file_name[.ext] } [arg ...]
STARTUP db_options | cdb_options | upgrade_options
STORE {SET} file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]]
TNSPING <address>
TTI[TLE] [printspec [text | variable] ...] | [ON | OFF]
UNDEF[INE] variable ...
WHENEVER OSERROR {EXIT [SUCCESS | FAILURE | n | variable | :BindVariable] [COMMIT | ROLLBACK] | CONTINUE[COMMIT | ROLLBACK | NONE]}
WHENEVER SQLERROR {EXIT [SUCCESS | FAILURE | WARNING | n | variable  | :BindVariable] [COMMIT | ROLLBACK] | CONTINUE [COMMIT | ROLLBACK | NONE]}
WHICH <filename>
XQUERY xquery_statement
ノート:
上下の矢印キーを使用して、前の100の文またはスクリプトを循環表示できます。2.2 SQL*Plusでサポートされていないコマンドおよび機能のリスト
コマンド
- REPHEADER
- REPFOOTER
- TIMING
TIMINGコマンドは、SET TIMINGコマンドに置き換えられています。
                     
SETコマンドを介したシステム変数および環境設定
- describe
- flagger
- fullcolname
- logsource
- loboffset
- markup
- recsep
- shiftinout
- sqlterminator
- underline
- xmloptimizationcheck
2.3 SQLclの起動および終了
ログインとログアウト
次のコマンドを使用して、SQLclへのログインおよびログアウトを行います。
SQLCL [[option] [logon | / NOLOG] [start]]
ここで、optionの構文は次のとおりです。
                     
-H[ELP]  | -V[ERSION]  | [ [-C[OMPATIBILITY] x.y[.z]]]  [-L[OGON]]   [-NOLOGINTIME] [-R[ESTRICT] {1 | 2 | 3}] [-S[ILENT]] [-AC]]
ここで、logonの構文は次のとおりです。
                     
{username[/password] [@connect_identifier]  | /}  [AS {SYSASM |SYSBACKUP |SYSDBA |SYSDG |SYSOPER |SYSRAC |SYSKM}]  [edition=value]
ここで、startの構文は次のとおりです。
                     
@{url | file_name[.ext]} [arg ...]
{EXIT | QUIT} [SUCCESS | FAILURE | WARNING | n | variable  | :BindVariable] [COMMIT | ROLLBACK]
保留中の変更をすべてコミットまたはロールバックし、OracleをログアウトしてSQLclを終了し、制御をオペレーティング・システムに戻します。
{QUIT | EXIT} [SUCCESS | FAILURE | WARNING | n | variable  | :BindVariable] [COMMIT | ROLLBACK]
保留中の変更をすべてコミットまたはロールバックし、OracleをログアウトしてSQLclを終了し、制御をオペレーティング・システムに戻します。
JVMオプションの設定
JAVA_TOOL_OPTIONS次の例は、WindowsでSQLclのユーザー・インタフェース言語をスペイン語(es)に変更する方法を示しています。
c:\SQLDev\sqlcl\20.2\sqlcl\bin>SET JAVA_TOOL_OPTIONS=-Duser.language=es
c:\SQLDev\sqlcl\20.2\sqlcl\bin>sql hr/oracle
Picked up JAVA_TOOL_OPTIONS: -Duser.language=es
SQLcl: Versi≤n 20.2 Production en mar. ago. 25 15:37:58 2020
Copyright (c) 1982, 2020, Oracle. Todos los derechos reservados.
Last Successful login time: Mar Ago 25 2020 15:38:01 -04:00
Conectado a:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Se ha encontrado login.sql en el CWD. El acceso a la DB estß restringido para login.sql.
Ajuste SQLPATH para incluir la ruta y activar la funcionalidad completa.
SQL>c:\SQLDev\sqlcl\20.2\sqlcl\bin>SET JAVA_TOOL_OPTIONS=-Duser.language=fr -Xmx800m
c:\SQLDev\sqlcl\20.2\sqlcl\bin>sql hr/oracle
Picked up JAVA_TOOL_OPTIONS: -Duser.language=fr -Xmx800m
SQLcl : version 20.2 Production sur mar. ao√t 25 15:57:21 2020
Copyright (c) 1982, 2020, Oracle. Tous droits rΘservΘs....2.4 データベースの起動および停止
データベースの起動および停止には、DBA権限が必要です。
STARTUP db_options  | cdb_options | upgrade_options
ここで、db optionsの構文は次のとおりです。
                     
[FORCE] [RESTRICT] [PFILE=filename] [QUIET]  [ MOUNT [dbname] |  [ OPEN [open_db_options] [dbname] ] | NOMOUNT ]
ここで、open_db_optionsの構文は次のとおりです。
                     
READ {ONLY | WRITE [RECOVER]} | RECOVER
ここで、cdb_optionsの構文は次のとおりです。
                     
root_connection_options | pdb_connection_options
ここで、root_connection_optionsの構文は次のとおりです。
                     
PLUGGABLE DATABASE pdbname  [FORCE] | [RESTRICT]  [ OPEN {open_pdb_options}]
ここで、pdb_connection_optionsの構文は次のとおりです。
                     
[FORCE] | [RESTRICT]  [ OPEN {open_pdb_options}]
ここで、open_pdb_optionsの構文は次のとおりです。
                     
READ WRITE | READ ONLY
ここで、upgrade_optionsの構文は次のとおりです。
                     
[PFILE=filename] {UPGRADE | DOWNGRADE} [QUIET]
データベースのマウントおよびオープンを含む様々なオプションを付けて、Oracle Databaseインスタンスを起動します。
SHUTDOWN [ABORT | IMMEDIATE |NORMAL| TRANSACTIONAL [LOCAL]]
現在実行中のOracleインスタンスを停止します。データベースのクローズおよびディスマウントが実行されます。
2.5 コマンドの入力および実行
次のコマンドを使用して、SQLコマンドおよびPL/SQLブロックの実行と経過時間に関する情報を収集します。
/ (スラッシュ)
SQLバッファに格納されている、最後に実行されたSQLコマンドまたはPL/SQLブロックを実行します。コマンドは表示されません。SQLclコマンドラインのコマンド・プロンプトまたは行番号プロンプトでスラッシュ(/)を使用します。
EXEC[UTE] statement
1つのPL/SQL文またはストアド・プロシージャを実行します。
R[UN]
SQLバッファに格納されている、最後に実行されたSQLclコマンドまたはPL/SQLブロックを表示して実行します。バッファにはコマンド履歴リストはなく、またSQLclコマンドは記録されません。
TIMI[NG] 
タイミングはスイッチとしてのみ使用できます。
次のコマンドを使用して、ヘルプ・システムにアクセスします。
HELP | ? [topic]
コマンドラインのヘルプ・システムにアクセスします。トピックのリストを表示するには、HELP INDEX または? INDEXを入力します。Oracle Databaseライブラリ(http://www.oracle.com/technology/documentation)を参照できます。
                     
次のコマンドを使用して、オペレーティング・システムのコマンドを実行します。
HO[ST] [command]
SQLclを終了せずに、オペレーティング・システムのコマンドを実行します。オペレーティング・システムのプロンプトを表示するには、コマンドを含めずにHOSTを入力します。そのプロンプトでは、複数のオペレーティング・システム・コマンドを入力できます。
                     
オペレーティング・システムによっては、HOSTのかわりに「!」などの文字を使用できます。(UNIXの場合、Windowsの場合は「$」)。詳細は、各オペレーティング・システム向けに提供されているOracleインストレーション・ガイドおよびユーザーズ・ガイドを参照してください。
_RC変数を使用すると、HOSTで実行されたコマンドの終了ステータスを返すことができます。
                     
ノート:
bequeathプロトコルを使用してデータベースに接続する場合(クライアント接続がリスナーを介さずに専用サーバー・プロセスに直接渡される場合)、_RC変数は自動的に更新されません。sqlnet.ora構成ファイルでbequeath_detach=yesを設定して、_RC変数を更新します。
                        次のコマンドを使用して、SQLclコマンドの履歴を再呼出しします。
HISTORY [index | FULL | USAGE | SCRIPT | TIME | CLEAR (SESSION)?] | FAILS
- 
                           上下の矢印キーを使用して、プロンプトで履歴アイテムをナビゲートします。 
- 
                           HISTORYコマンドは、履歴の内容を出力する場合に使用します。
- 
                           履歴は、最後の100文に制限されています。 
- 
                           SET HISTORY LIMIT Nでは、デフォルトの制限を変更できます。Nは最大数です。
- 
                           履歴はSQLclセッション間で保持されます。 
- 
                           デフォルトでは、 SHOW、HISTORY、CONNECTおよびSETコマンドは履歴に保存されません。
- 
                           SET HISTORY FILTERを指定すると、履歴に記録しないコマンドを設定できます。
2.6 SQL、SQLclおよびPL/SQLコマンドの操作
次のコマンドを使用して、SQLコマンドおよびPL/SQLブロックを編集します。
A[PPEND] text
指定されたテキストを、SQLバッファ内の現在の行の末尾に追加します。前にある文字とtext を空白で区切るには、間に空白を2つ入力します。セミコロンで終わるtextを追加するには、コマンドを2つのセミコロンで終了します(単一のセミコロンはコマンド終了記号と解釈されます)。
                     
C[HANGE] sepchar old [sepchar [new [sepchar]]]
SQLバッファの現在の行で最初に出現するoldを変更します。バッファにはコマンド履歴リストはなく、またSQLclコマンドは記録されません。sepcharには、スラッシュ(/)や感嘆符(!)などの英数字以外の文字が使用できます。CHANGEと最初のsepcharの間の空白は省略できます。 
                     
DEL [n | n m | n * | n LAST | * | * n | * LAST | LAST]
SQLバッファ内の行を1行以上削除します(アスタリスク(*)は現在の行を意味します)。DELとnまたは*の間の空白は省略できますが、DELとLASTの間の空白は省略できません。バッファの現在の行を削除するには、句を指定せずにDELを入力します。バッファにはコマンド履歴リストはなく、またSQLclコマンドは記録されません。
                     
I[NPUT] [text]
SQLバッファの現在の行の後に、1行以上のテキストを追加します。バッファにはコマンド履歴リストはなく、またSQLclコマンドは記録されません。
L[IST] [n | n m | n * | n LAST | * | * n | * LAST | LAST]
SQLバッファに格納されている、最後に実行された1行以上のSQLコマンドまたはPL/SQLブロックを表示します。アスタリスク(*)は現在の行を示します。LISTとnまたは*の間の空白は省略できますが、LISTとLASTの間の空白は省略できません。すべての行を表示するには、句を指定せずにLISTを入力します。 
                     
SQLclでは、SQLバッファのすべての行を表示するために「;」を使用することもできます。バッファにはコマンド履歴リストはなく、またSQLclコマンドは記録されません。
次のコマンドを使用して、スクリプトを実行します。
@ { url | file_name[.ext] } [arg ]
指定したスクリプトのSQLcl文を実行します。スクリプトは、ローカル・ファイル・システムまたはWebサーバーから呼び出すことができます。通常どおり、値はスクリプト変数に代入できます。
@@ { url | file_name[.ext] } [arg ]
指定したスクリプトのSQLcl文を実行します。このコマンドは、@コマンドとほぼ同じです。呼出し元スクリプトと同じパスまたはurlで指定されたスクリプトを検索する追加機能があるため、ネストされたスクリプトを実行する場合に便利です。 
                     
REPEAT <iterations> <sleep>
スリープ間隔でバッファ内の現在のSQLを指定された回数繰り返します。最大スリープ間隔は120秒です。
SCRIPT <script file>
指定したスクリプトのSQLcl文を実行します。
STA[RT] { url | file_name[.ext] } [arg ...]
指定したスクリプトのSQLcl文を実行します。スクリプトは、ローカル・ファイル・システムまたはWebサーバーから呼び出すことができます。通常どおり、値はスクリプト変数に代入できます。
次のコマンドを使用して、スクリプトを作成および変更します。
ED[IT] [file_name[.ext]]
オペレーティング・システムのテキスト・エディタを起動します。テキスト・エディタには、指定したファイルの内容またはSQLバッファの内容が表示されます。バッファの内容を編集するときは、ファイル名を省略します。
DEFINE変数_EDITORを使用して、使用するエディタを設定できます。SQLclでは、_EDITORを好みのエディタに設定できます。Inlineは、エディタをSQLclエディタに設定します。次のショートカットがサポートされます。
                     
- 
                           ^R- 現行のバッファを実行
- 
                           ^W- バッファの先頭に移動
- 
                           ^S- バッファの最後に移動
- 
                           ^A- 行頭に移動
- 
                           ^E- 行末に移動
FORMAT
- 
                           FORMAT BUFFER- SQLclバッファ内のスクリプトをフォーマットします
- 
                           FORMAT RULES <filename>- SQLDeveloperフォーマッタ・ルール・ファイルをフォーマッタにロードします
- 
                           FORMAT FILE <input_file> <output_file>
GET file_name[.ext] [LIST | NOLIST]
ファイルからSQLバッファに、SQL文またはPL/SQLブロックをロードします。バッファにはコマンド履歴リストはなく、またSQLclコマンドは記録されません。
REM[ARK]
スクリプト内でコメントを開始します。REMARKコマンドは、コメント行の先頭に指定する必要があります。また、コメントはその行の終わりで終了します(1行にコメントとコマンドの両方は記述できません)。SQLclはコメントをコマンドとして解釈しません。
SAV[E]  [FILE] file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]]
SQLバッファの内容をスクリプトに保存します。バッファにはコマンド履歴リストはなく、またSQLclコマンドは記録されません。
STORE {SET} file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]]
現行のSQLcl環境の属性をファイルに保存します。
WHENEVER OSERROR {EXIT [SUCCESS | FAILURE | n | variable  | :BindVariable] [COMMIT | ROLLBACK] | CONTINUE [COMMIT | ROLLBACK | NONE]}
オペレーティング・システム・エラー(ファイルの書込みエラーなど)が発生した場合に、指定された処置(デフォルトでは、SQLclの終了)を実行します。
WHENEVER SQLERROR {EXIT [SUCCESS | FAILURE | WARNING | n | variable  | :BindVariable] [COMMIT | ROLLBACK] | CONTINUE [COMMIT | ROLLBACK | NONE]}
SQLコマンドまたはPL/SQLブロックでエラーが発生した場合に、指定された処置(デフォルトでは、SQLclの終了)を実行します。
次のコマンドを使用して、対話形式のコマンドを記述します。
ACC[EPT]  [NUM[BER] | CHAR | DATE | BINARY_FLOAT | BINARY_DOUBLE] [FOR[MAT] format] [DEF[AULT] default] [PROMPT text | NOPR[OMPT]] [HIDE]
入力された行を読み込み、指定された置換変数に行の内容を格納します。
DEF[INE] [variable] | [variable = text]
置換変数を指定してCHAR型の値を割り当てるか、1つまたはすべての変数の値および変数タイプを表示します。
PAU[SE] [text]
指定されたテキストを表示して、[Enter]キーを押すまで一時停止します。
PRO[MPT] [text]
指定されたメッセージまたは空白行をユーザーの画面に送信します。
UNDEF[INE] variable ...
指定された1つ以上の置換変数を削除します。削除する置換変数には、DEFINEコマンドによって明示的に定義された変数、またはSTARTコマンドの引数によって暗黙的に定義された変数を指定できます。
次のコマンドを使用して、バインド変数を作成または表示します。
PRINT [variable ...]
バインド変数の現在の値またはすべてのバインド変数を表示します。
次の記号を使用して、スクリプト内で使用する置換変数およびパラメータを作成します。
&n
STARTコマンドで起動するスクリプトのパラメータを指定します。スクリプト名に続いて入力した最初の値が&1に代入され、2番目の値が&2に代入され、以降同様に続きます。
&user_variable, &&user_variable
SQLまたはSQLclコマンドで使用される置換変数を示します。SQLclは、検出した各置換変数に、指定された置換変数の値を代入します。置換変数が定義されていない場合、SQLclは&変数を検出するたびに値の入力をユーザーに要求します。&&変数の場合は、最初に検出したときのみ値の入力をユーザーに要求します。
. (ピリオド)
置換変数に続く文字が変数名の一部と解釈される可能性がある場合、ピリオド(.)によって置換変数名の末尾を示します。
2.7 問合せ結果の書式設定
次のコマンドを使用して、問合せ結果の書式設定、保存および表示を行います。
BRE[AK] [ON report_element [action [action]]] ...
次に示すような、レポートのどこで変更が発生するか、および実行する書式設定に関するアクションを指定します。
- 
                           特定の列について重複する値の非表示 
- 
                           特定の列値が変更されるたびに1行スキップ 
- 
                           特定の列値が変更されるたび、またはレポートの終わりに、計算された数値を出力 
現在のBREAKの定義を表示するには、句を指定せずにBREAKを入力します。
                     
ここで、report_elementの構文は次のとおりです。
                     
{column | expression | ROW | REPORT}
ここで、actionの構文は次のとおりです。
                     
[SKI[P] n | [SKI[P]] PAGE] [NODUP[LICATES] | DUP[LICATES]]
BTI[TLE] [printspec [text | variable] ...] | [ON | OFF]
各レポート・ページの下部にタイトルを配置し書式設定するか、または現行のBTITLE定義を表示します。printspecのかわりに、次のいずれかの句を使用します。
                     
- BOLD
- CE[NTER]
- COL n
- FORMAT text
- LE[FT]
- R[IGHT]
- S[KIP] [n]
- TAB n
CL[EAR] option ...
指定したオプションの現行の値または設定をリセットまたは消去します。
optionは、次のいずれかの句を表します。
                     
- BRE[AKS]
- BUFF[ER]
- COL[UMNS]
- COMP[UTES]
- CONTEXT
- SCR[EEN]
- SQL
- TIMI[NG]
COL[UMN] [{column | expr} [option ...]]
特定の列について次のような表示属性を指定します。
- 
                           列ヘッダーのテキスト 
- 
                           列ヘッダーの位置 
- 
                           NUMBERデータの書式 
- 
                           列データの折返し 
また、1つまたはすべての列の現行の表示属性も表示します。
optionは、次のいずれかの句を表します。
                     
- ALI[AS] alias
- CLE[AR]
- ENTMAP {ON | OFF}
- FOR[MAT] format
- HEA[DING] text
- JUS[TIFY] {L[EFT] | C[ENTER] | R[IGHT]}
- LIKE {expr | alias}
- NEWL[INE]
- NEW_V[ALUE] variable
- NOPRI[NT] | PRI[NT]
- NUL[L] text
- OLD_V[ALUE] variable
- ON | OFF
- WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]
ノート:
現在、NEW_V[ALUE]変数構文のみがサポートされています。 
                     COLUMN [{column |expr} FORMAT format]と入力します。ここでformat要素は列の表示書式を指定します。 
                     
NUMBER列の表示書式を変更するには、FORMATの後に、次の表のいずれかの要素を指定します。
                     
| 要素 | 例 | 説明 | 
|---|---|---|
| 
 | 9,999 | 指定した位置にカンマが表示されます。 | 
| 
 | 99.99 | 数値の整数部と小数部を区切るピリオド(小数点)が表示されます。 | 
| 
 | $9999 | 先行ドル記号が表示されます。 | 
| 
 | 0999 9990 | 先行または後続ゼロ(0)を表示します。 | 
| 
 | 9999 | 9の数で指定した桁数の値が表示されます。値には、正の値の場合は先行空白、負の値の場合は先頭に先行マイナス記号が表示されます。先行0(ゼロ)には空白が表示されます。0(ゼロ)の値には0(ゼロ)が表示されます。 | 
| 
 | B9999 | 書式モデル内の0(ゼロ)にかかわらず、整数部が0(ゼロ)の場合、固定小数点数の整数部に空白が表示されます。 | 
| 
 | C999 | 指定した位置にISO通貨記号が表示されます。 | 
| 
 | 99D99 | 数値の整数部と小数部を区切る小数点文字が表示されます。 | 
| 
 | 9.999EEEE | 値を科学表記法に従って表示します(指定するときは、必ずEを正確に4つ入力します)。 | 
| 
 | 9G999 | 数値の整数部の指定した位置に桁グループ・セパレータが表示されます。 | 
| 
 | L999 | 指定した位置に各国通貨記号が表示されます。 | 
| 
 | 9999MI | 負の値の後に後続マイナス記号が表示されます。正の値の後に、後続空白を表示します。 | 
| 
 | 9999PR | 負の値は<山カッコ>で囲まれて表示されます。正の値の場合は、先行空白および後続空白が表示されます。 | 
| 
 | RN rn | 大文字のローマ数字が表示されます。小文字のローマ数字が表示されます。値は1から3999の整数となります。 | 
| 
 | S9999 9999S | 先行マイナス記号またはプラス記号が表示されます。後続マイナス記号またはプラス記号が表示されます。 | 
| 
 | TM | 小数点文字の最小の数が表示されます。デフォルトはTM9です。出力に使用される固定表記法の場合は最大64文字、科学表記法の場合は65文字以上です。TMの前に他の要素を指定することはできません。TMの後には単一の9またはEのみを指定できます。 | 
| 
 | U9999 | 指定した位置に、第2通貨記号が表示されます。 | 
COMP[UTE] [function [LAB[EL] text] ... OF {expr | column | alias} ...ON {expr | column | alias | REPORT | ROW} ...]
BREAKコマンドと組み合せて、様々な標準計算を使用してサマリー行を計算および出力します。すべてのCOMPUTE定義もリスト表示します。次の表に有効な関数を示します。NUMBER以外の関数は、NULL値に対して使用できません。COMPUTEの関数は、常にAVG、COUNT、MINIMUM、MAXIMUM、NUMBER、SUM、STD、VARIANCEの順に実行されます。
                     
| 関数 | 計算結果 | 適用されるデータ型 | 
|---|---|---|
| AVG | NULL以外の値の平均 | NUMBER | 
| COU[NT] | NULL以外の値の数 | すべての型 | 
| MIN[IMUM] | 最小値 | NUMBER、CHAR、NCHAR、VARCHAR2(VARCHAR)、NVARCHAR2(NCHAR VARYING) | 
| MAX[IMUM] | 最大値 | NUMBER、CHAR、NCHAR、VARCHAR2(VARCHAR)、NVARCHAR2(NCHAR VARYING) | 
| NUM[BER] | 行数 | すべての型 | 
| SUM | NULL以外の値の合計 | NUMBER | 
| STD | NULL以外の値の標準偏差 | NUMBER | 
| VAR[IANCE] | NULL以外の値の平方偏差 | NUMBER | 
SET SQLFORMAT {csv | html | xml | json | ansiconsole | insert | loader | fixed | default}
レポートを様々な形式で出力します。ansiconsoleオプションでは、読みやすくするために、列の幅に応じてデータの書式を設定したりサイズを変更します。jsonオプションは、問合せをJSON形式で返します。
                     
SET SQLFORMAT DELIMITED <delimiter> <left enclosure> <right enclosure>を指定すると、カスタム区切り形式を設定できます。
                     
SET SQLFORMAT JSON-FORMATTEDは、問合せを適切に書式設定されたJSON出力で返します。
                     
SPO[OL] [filename[.ext] [CRE[ATE] | REP[LACE] | APP[END]] | OFF | OUT]
問合せ結果をファイルに格納し、必要に応じてそのファイルをプリンタに送信します。OFFはスプールを停止します。OUTはスプールを停止し、そのファイルをコンピュータのデフォルト・プリンタに送信します。現在のスプール状態を表示するには、句を指定せずにSPOOLを入力します。ファイル拡張子が指定されていない場合は、デフォルトの拡張子(.lstまたは.lis)が使用されます。 
                     
TTI[TLE] [printspec [text | variable] ...] | [ON | OFF]
各レポート・ページの上部に、指定したタイトルを配置して書式設定したり、現行のTTITLE定義を表示します。TTITLEコマンドの後に引用符で囲まれた単一の語または文字列のみを指定した場合は、旧形式のTTITLEが使用されます。
printspecは、次の1つ以上の句を表します。
                     
- BOLD
- CE[NTER]
- COL n
- FORMAT text
- LE[FT]
- R[IGHT]
- S[KIP] [n]
- TAB n
2.8 データベースへのアクセス
次のコマンドを使用して、異なるデータベース上の表との間でデータのアクセスおよびコピーを行います。
CONN[ECT] [{<logon>| / |proxy} [AS {SYSOPER | SYSDBA | SYSASM}] [edition=value]]
ここで、logonの構文は次のとおりです。
                     
username[/password]@connect_identifier 
                     
ここで、proxyの構文は次のとおりです。
                     
proxyuser[username] [/password] [@connect_identifier]   
                     
ノート:
proxy内のusernameを囲むカッコは必須構文です。
                        
指定されたユーザー名でOracle Databaseに接続します。connect_identifierを省略すると、SQLclによって、デフォルトのデータベースに接続されます。usernameまたはpasswordあるいはその両方を省略すると、SQLclによってそれらの入力を求めるプロンプトが表示されます。CONNECTの後にスラッシュ(/)を入力すると、デフォルト(OPS$)のログオンが接続に使用されます。 
                     
CONNECTコマンドを実行すると、サイト・プロファイルglogin.sqlおよびユーザー・プロファイルlogin.sqlがその順序で処理されます。CONNECTは、初期接続が失敗した場合、ユーザー名またはパスワードの再入力をプロンプトしません。
                     
DISC[ONNECT]
データベースに対する保留中の変更をコミットし、現行のユーザーをOracleからログオフします。ただし、SQLclは終了しません。SQLclコマンドラインでは、EXITまたはQUITを使用してOracleからログアウトし、コンピュータのオペレーティング・システムに制御を戻します。 
                     
COPY {FROM database | TO database | FROM database TO database} {APPEND | CREATE | INSERT | REPLACE | APPEND_BYTE | CREATE_BYTE | REPLACE_BYTE} destination_table[(column, column, column, ...)] USING query
ここで、databaseの構文は次のとおりです。
                     
username[/password]@connect_identifier
問合せから、同じデータベースまたは別のデータベースにある表にデータをコピーします。APPEND、CREATE、INSERTまたはREPLACEは、COPYによる宛先表の既存のコピー(存在する場合)の処理方法を指定します。USING queryは、ソース表を識別し、COPYでコピーされる行と列を決定します。COPYでは、CHAR、DATE、LONG、NUMBERおよびVARCHAR2の各データ型がサポートされます。
                     
PASSW[ORD] [username]
パスワードを変更できます。入力デバイスには表示されません。
XQUERY xquery_statement
SQLclからXQueryを実行できます。
2.9 その他のコマンド
ALIAS [<name>=<SQL statement>;| LOAD [<filename>]|SAVE [<filename>] | LIST [<NAME>] | DROP <name> | DESC <name>  <Description String>]
Aliasは、SQL、PL/SQLまたはSQL*Plusスクリプトを保存して、ショートカット・コマンドを割り当てるコマンドです。
- 
                           
                           ALIAS— 別名のリストを出力します
- 
                           
                           ALIAS LIST <alias_name>— 別名のコンテンツをリストします
次の例は、単純な別名の作成方法を示しています。
SQL> ALIAS action1=select :one from dual;ノート:
別名を簡単に定義するには、aliasキーワードの後に単一の識別子名を付けて、その後に'='を付けます。'='の後にあるものが別名のコンテンツとして使用されます。SQLの場合、';'で終了します。PL/SQLの場合、'/'で終了します。APEX
 Application Expressアプリケーションをリストします。APEX EXPORT <app id>を使用して、ファイルへの書込みを行うためにスプールと結合できるアプリケーションをエクスポートします。
                     
ARCHIVE LOG LIST
REDOログ・ファイルに関する情報を表示します。
BRIDGE <targetTableName> as "<jdbcURL>"(<sqlQuery>);
主に2つの接続/スキーマ間のデータ移動を記述するために使用されます。JDBCを介して受け取るデータを「調整する」Oracle表を動的に作成する機能も含まれます。次の機能を使用できます。
- 
                           
                           他の接続の問合せ表 
- 
                           
                           同じ文の複数の接続の問合せ表 
- 
                           
                           ある接続から別の接続へのデータの挿入 
- 
                           
                           表の作成および別の接続からのデータの挿入 
CTAS table new_table
DBMS_METADATAを使用して既存の表のDDLを抽出し、次にcreate table as select * fromに変更します。
DDL [object_name [type] [SAVE filename]]
リストされているオブジェクトを再構築するコードを生成します。マテリアライズド・ビューにはtypeオプションを使用します。SAVEオプションを使用してDDLをファイルに保存します。
DESC[RIBE] {[schema.]object[@connect_identifier]}
表、ビューまたはシノニムに関する列定義、またはファンクションまたはプロシージャに関する仕様を表示します。
FIND [<filename>]
SQLPATHとそのディレクトリを検索して、指定されたファイル名を探します。FIND where <filename>には、指定されたファイル名と一致するファイルを捜す、すべてのSQLPATHの場所がリストされます。
                     
INFO[RMATION] {[schema.]object[@connect_identifier]}
表、ビューまたはシノニムに関する列定義、またはファンクションまたはプロシージャに関する仕様の詳細を表示します。
ノート:
INFORMATION+には列統計が表示されます。OERR <facility> <error>
エラーに関する情報を表示します。ファシリティは、エラー・メッセージ内の接頭辞文字列で識別されます。たとえば、ORA-7300を受け取った場合、"ora"がファシリティで"7300"がエラーです。このため、"oerr ora 7300"と入力する必要があります。
SSHTUNNEL <username>@<hostname> -i <identity_file> [-L localPort:Remotehost:RemotePort]
ローカル・ホスト上の特定のポートがリモート側の特定のリモート・ホストおよびポートに転送されるポート転送型のオプション-Lなど、標準sshオプションを使用してトンネルを作成します。ssh -iオプションを使用したIDファイルもサポートされます。パスワードが必要な場合は、プロンプトが表示されます。
TNSPING <address>
TNSPINGユーティリティでは、Oracle Netネットワーク上のサービスのリスナーに正常に到達できるかどうかを判断します。
WHICH
指定されたファイル名をSQLPATHとそのディレクトリで検索し、SQLPATHで指定されたファイル名と一致する最初のファイルの名前を出力します。
2.9.1 REST
RESTでは、Oracle REST Data Services 3.xサービスをエクスポートできます。これは、Oracle REST Data Servicesリリース3.0.5以降で適用可能です。Oracle REST Data Servicesの旧バージョンの場合は、アップグレードする必要があります。詳細は、『REST Data Servicesインストレーション、構成および開発ガイド』の、Oracle REST Data Servicesのインストールに関する項を参照してください。
次のオプションがあります。
- 
                              
                              REST export— RESTでは、すべてのOracle REST Data Services 3.xサービス・モジュールをエクスポートします
- 
                              
                              REST export <module_name>— 特定のモジュールをエクスポートします
- 
                              
                              REST export <module_uri_uri prefix>— 指定された接頭辞に関連する特定のモジュールをエクスポートします
- 
                              
                              REST modules— 使用可能なモジュールをリストします
- 
                              
                              REST privileges— 既存の権限をリストします
- 
                              
                              REST schemas— 使用可能なスキーマをリストします
2.9.2 SODA
SODAでは、JSONデータ・モデルを使用してスキーマレス・アプリケーション開発を行うことができます。次のオプションがあります。
- 
                              
                              SODA create <collection_name>— 新しいコレクションを作成します
- 
                              
                              SODA list— すべてのコレクションをリストします
- 
                              
                              SODA get <collection_name> [-all | -f | -k | -klist] [{<key> | <k1> <k2> ... | <qbe>}]— コレクションのドキュメントをリストします。オプションの引数は次のとおりです。- 
                                    
                                    all: コレクション内のすべてのドキュメントのキーをリストします
- 
                                    
                                    k: 特定の<key>に一致するドキュメントをリストします
- 
                                    
                                    klist: キーのリストに一致するドキュメントをリストします
- 
                                    
                                    f: <qbe>に一致するドキュメントをリストします
 
- 
                                    
                                    
- 
                              
                              SODA insert <collection_name> <json_str | filename>— コレクション内に新規ドキュメントを挿入します
- 
                              
                              SODA drop <collection_name>— 既存のコレクションを削除します
- 
                              
                              SODA count <collection_name> [<qbe>]— コレクション内のドキュメント数をカウントします。オプション・パラメータ<qbe>は一致するドキュメントの数を返します
- 
                              
                              SODA replace <collection_name> <oldkey> <new_{str | doc}>— ドキュメントを別のドキュメントに置き換えます
- 
                              
                              SODA remove <collection_name> [-k | -klist | -f] {<key> | <k1> <k2> ...| <qbe>}— コレクションからドキュメントを削除します。オプションの引数は次のとおりです。- 
                                    
                                    k: 特定の<key>に一致するコレクション内のドキュメントを削除します
- 
                                    
                                    klist: リスト<key1> <key2>に一致するコレクション内のドキュメントを削除します...
- 
                                    
                                    f: <qbe>に一致するコレクション内のドキュメントを削除します
 
- 
                                    
                                    
2.9.3 MODELER
MODELERコマンドは、Oracle SQL Developer Data Modeler機能のコマンドライン・インタフェースを提供します。
                     
使用できるオプションは次のとおりです。
- 
                              
                              modeler help <command>—指定されたモデラー・コマンドに関するヘルプ情報を表示します。
- 
                              
                              modeler ddl <parameters>—選択されたData Modeler設計からデータ定義言語文を生成します。
- 
                              
                              modeler report <parameters>-選択されたData Modeler設計からレポートを生成します。
MODELER DDL
選択されたData Modeler設計からデータ定義言語文を生成します。
構文
MODELER DDL -design <file> -relmodel <name> [-outputfile <name>]| パラメータ | 説明 | 
|---|---|
| -design (d) <file> | 設計のファイル名のフルパス。 | 
| -relmodel (rm) <name> | リレーショナル・モデルの名前。 | 
| -dbsite (ds) <name> | (オプション)物理モデル・データベース・サイトの名前。これが指定されていない場合、指定されたリレーショナル・モデルのデフォルトのリレーショナル・データベース管理システム・サイトが使用されます。 | 
| -outputfile (o) <file> | 生成されるDDLコンテンツの出力ファイルのフルパス。 | 
| -systemTypesDir (td) <path> | システム・タイプ・ディレクトリのフルパス。 | 
| -settingsFile (s) <file> | エクスポートされるData Modeler設定ファイルのフルパス。 | 
| -ddlConfigFile (c) <file> | エクスポートされるDDL構成ファイルのフルパス。 | 
例
modeler ddl -design "C:/Designs/SH.dmd" -relmodel "SH" -outputfile "C:/DDL.sql"MODELER REPORT
選択されたData Modeler設計からレポートを生成します。
構文
MODELER REPORT -design <file> -type <type> [-title <name>] -filename <name> -outputpath <path>パラメータ
| パラメータ | 説明 | 
|---|---|
| -design (d) <file> | 設計のファイル名のフルパス。 | 
| -type (tp) | レポートのタイプを指定します。指定できるタイプは、Tables、TableViews、TablesAndViews、Entities、EntityViews、EntitiesAndViews、Domainsです。 | 
| -filename (f) <name> | 生成されるHTMLファイルの名前。 | 
| -outputpath (o) <path> | 生成されるHTMLコンテンツのフォルダのフルパス。レポート・ファイルがそのフォルダに配置され、使用されたCSSファイルを含むcssサブディレクトリが作成されます。 | 
| -relmodel (rm) <name> | リレーショナル・モデルの名前(表および表ビューの場合のみ)。 | 
| -title (tt) <name> | (オプション)レポートのタイトル。 | 
| -standardTemplate (st) <name> | 標準レポートのテンプレートの名前。レポートに含めるレポート・セクションのセットを定義します(オプション)。指定しない場合は、すべてのレポート・セクションが含められます。 | 
| -customTemplate (ct) <name> | (オプション)カスタム・レポートのテンプレートの名前。 | 
| -reportConfTemplate (c) <name> | (オプション)レポートに含めるオブジェクトおよびサブビューのセットを定義するテンプレートの名前。 | 
| -companyname (cn) <name> | (オプション)会社の名前。 | 
| -systemTypesDir (td) <path> | システム・タイプ・ディレクトリのフルパス。 | 
| -settingsFile (s) <file> | エクスポートされるData Modeler設定ファイルのフルパス。 | 
例
modeler report -design "C:/Designs/SH.dmd" -type "Tables" -filename "SHTablesReport" -outputpath "C:/Reports"2.9.4 DG (Data Guard)
Oracle Databaseリリース21cのOracle Data Guard Brokerのみを管理できます。
Data Guardコマンドおよびパラメータの詳細は、『Oracle Data Guard Broker』のData Guardコマンドに関する項を参照してください。
2.9.5 SET system_variable value
現行のセッションに対するSQLcl環境を変更するシステム変数を設定します。
次に例を示します。
- 
                              
                              データの表示幅の設定 
- 
                              
                              HTML書式設定のカスタマイズ 
- 
                              
                              列ヘッダーの出力の有効化または無効化 
- 
                              
                              1ページごとの行数の設定 
次に示すシステム変数の後に、値を指定して入力します。
- SET APPI[NFO] {ON | OFF | text}
- SET ARRAY[SIZE] {15 | n}
- 
                              SET AUTO[COMMIT] {ON | OFF | IMM[EDIATE] | n}
- SET AUTOP[RINT] {ON | OFF}
- SET AUTORECOVERY {ON | OFF]
- 
                              SET AUTOT[RACE] {ON | OFF | TRACE[ONLY]}
- 
                              SET BLO[CKTERMINATOR] {. | c | ON | OFF}
- SET CLASSIC [ ON | OFF ]
- 
                              SET CLEAR [ TOP | BOTTOM | SAME ]
- SET CLOUDCONFIG [ -proxy=<proxyhost>:<port> ] <wallet.zip location>
- SET CMDS[EP] {; | c | ON | OFF}
- SET CODESCAN [ON | SQLINJECTION | SQLPERFORMANCE | OFF](詳細は、下部の説明を参照してください。)
- SET COLSEP {_ | text}
- SET CON[CAT] {. | c | ON | OFF}
- SET COPYC[OMMIT] {0 | n}
- SET COPYTYPECHECK {ON | OFF}
- SET DDL [[ PRETTY | SQLTERMINATOR | CONSTRAINTS | REF_CONSTRAINTS | CONSTRAINTS_AS_ALTER|OID | SIZE_BYTE_KEYWORD | PARTITIONING | SEGMENT_ATTRIBUTES | STORAGE | TABLESPACE | SPECIFICATION | BODY | FORCE | INSERT | |INHERIT | RESET] {on|off} ] | OFF ]
- SET DEF[INE] {& | c | ON | OFF}
- SET ECHO {ON | OFF}
- SET EDITF[ILE] file_name[.ext]
- SET EMB[EDDED] {ON | OFF}
- SET ENCODING
- SET ERRORL[OGGING] {ON | OFF} [TABLE [schema.]tablename] [TRUNCATE] [IDENTIFIER 識別子]
- SET ESC[APE] {\ | c | ON | OFF}
- SET ESCCHAR {@ | ? | % | $ | OFF}
- SET EXITC[OMMIT] {ON | OFF}
- SET FEED[BACK] {6 | n | ON | OFF} [SQL_ID]
- 
                              SET FLU[SH] {ON | OFF}
- SET HEA[DING] {ON | OFF}
- SET HEADS[EP] { | | c | ON | OFF}
- SET HISTORY [FAILS [LIMIT [ n | DEFAULT ] ] | NOFAILS |FILTER [DEFAULT <command list>?|<command list>?] |LIMIT [n|DEFAULT]]
- 
                              SET LDAPCON
- SET LIN[ESIZE] {80 | n}
- SET LOAD default [options...]
- SET LOADFORMAT [ DEFAULT | CSV | DELIMITED | HTML | INSERT | JSON | JSON-FORMATTED | LOADER | T2 | XML ] [options...]
- SET LONG {80 | n}
- SET LONGC[HUNKSIZE] {80 | n}
- SET MAXROWS {n>1 | DEFAULT}
- SET MAXSPOOLROWSTRUNCATE [ON | OFF | DEFAULT]
- 
                              SET NET {ON | OFF | READONLY}
- SET NEWP[AGE] {1 | n | NONE}
- SET NOVERWRITE {ON | OFF | WARN}
- SET NULL text
- SET NUMF[ORMAT] format
- SET NUM[WIDTH] {10 | n}
- SET PAGES[IZE] {14 | n}
- SET PAU[SE] {ON | OFF | text}
- SET RECSEPCHAR { | c}
- SET SERVEROUT[PUT] {ON | OFF} [SIZE {n | UNL[IMITED]}] [FOR[MAT] {WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]}]
- SET SHOW[MODE] {ON | OFF}
- SET SQLBL[ANKLINES] {ON | OFF}
- SET SQLC[ASE] {MIX[ED] | LO[WER] | UP[PER]}
- SET SQLCO[NTINUE] {> | テキスト}
- SET SQLFORMAT {csv | html | xml | json | ansiconsole | insert | loader | fixed | default}
- SET SQLPLUSCOMPAT[IBILITY] {x.y[.z]}
- SET SQLPRE[FIX] {# | c}
- SET SQLP[ROMPT] {SQL> | テキスト}
- SET SUF[FIX] {SQL | テキスト}
- SET T2 METRICDATA NAMESPACE {text}
- SET T2 METRICDATA COMPARTMENTID {text}
- SET T2 METRICDATA NAME {text}
- SET T2 DIMENSIONS RESOURCEID {text}
- SET T2 DIMENSIONS REGION {text}
- SET T2 METADATA UNIT {text}
- SET TAB {ON | OFF}
- SET TERM[OUT] {ON | OFF}
- SET TI[ME] {ON | OFF}
- SET TIMI[NG] {ON | OFF}
- SET TRIM[OUT] {ON | OFF}
- SET TRIMS[POOL] {ON | OFF}
- SET VER[IFY] {ON | OFF}
- SET WRA[P] {ON | OFF}
SET DDL [[ PRETTY | SQLTERMINATOR | CONSTRAINTS | REF_CONSTRAINTS | CONSTRAINTS_AS_ALTER|OID | SIZE_BYTE_KEYWORD | PARTITIONING | SEGMENT_ATTRIBUTES | STORAGE | TABLESPACE | SPECIFICATION | BODY | FORCE | INSERT | |INHERIT | RESET] {on|off} ] | OFF ]
DBMS_METADATAに対してDDL変換オプションを設定できます。
SET ENCODING <encoding>
現在のセッションに対してエンコーディングを設定できます。SHOW ENCODINGを使用して、現在のセッションに設定されたエンコーディングを表示します。SHOW ENCODINGSを使用して、プラットフォームで使用可能なエンコーディングを表示します。
                        
SET CODESCAN [ON | SQLINJECTION | SQLPERFORMANCE | OFF]
コード品質の問題に対して発行される警告メッセージを制御します。ONは、可能性のあるSQLインジェクションの脆弱性およびSQLパフォーマンスの問題に対する警告を有効にします。「SQLパフォーマンスのトラブルシューティング」を参照してください
2.9.6 SHOW option
SQLclのシステム変数の値または現行のSQLcl環境を表示します。SETコマンドで設定されたすべてのシステム変数を、system_variableのかわりに入力します。SHOW SGAはDBAユーザーのみが使用できます。optionのかわりに、次の条件または句のいずれかを使用します。
                        
- system_variable
- ALL
- BTI[TLE]
- CON_ID
- CON_NAME
- CONNECTION
- DDL
- EDITION
- ENCODING
- ENCODINGS
- ERR[ORS] [ {FUNCTION | PROCEDURE | PACKAGE | PACKAGE BODY | TRIGGER | VIEW | TYPE | TYPE BODY | DIMENSION | JAVA CLASS} [schema.]name]
- INSTANCE
- JAVA
- JDBC
- LNO
- NLS
- PARAMETER[S] [parameter_name]
- PDBS
- PNO
- RECYC[LEBIN] [original_name]
- REL[EASE]
- 
                              REPF[OOTER]
- 
                              REPH[EADER]
- SGA
- SPOO[L]
- SPPARAMETER[S] [parameter_name]
- SQLCODE
- SQLPATH
- TNS
- TTI[TLE]
- USER
- VERSION
SHOW ENCODING
クライアントに設定されたエンコーディングを表示します。
SHOW ENCODINGS
クライアントに使用可能なエンコーディングを表示します。
2.10 ファイルのロード
SQLclでLOADコマンドを使用して、カンマ区切り値ファイルをローカル・ディレクトリまたはクラウド・ストレージの場所から表にロードします。 
                  
2.10.1 LOADコマンド
カンマ区切り値(csv)ファイルをローカル・ディレクトリまたはクラウド・ストレージの場所から表にロードします。
構文
LOAD [TABLE] [schema.]table_name { <file-specification> | <cloud-storage-specification> } 
[NEW | SHOW | SHOW_DDL | CREATE |CREATE_DDL]説明
[schema.]table_nameは、ロードする表を示します。schemaが省略されている場合、接続されているユーザー・スキーマの表がロードされます。
file-specificationの構文は次のとおりです。
{ <fully-qualified-file-name> | <file-name> }- 
                              
                              fully-qualified-file-name: ロードするファイルのフルパスを示します。 
- 
                              
                              file-name: ロードするファイルを示します。ファイルはデフォルトのパスにある必要があります。 
cloud-storage-specificationの構文は次のとおりです。
{ CLOUDSTORAGE | CS | CLOUD_STORAGE } [ <url> | <qualified-name> ] - 
                              
                              url: クラウド・ストレージ・コマンドを使用してデフォルトのクラウド・ストレージURLが設定されていない場合、クラウド・ストレージ・ファイルの完全なURL。 
- 
                              
                              qualified-name: オブジェクトの名前。オプションでネームスペースおよびバケットで修飾されます。修飾された名前とクラウド・ストレージ・コマンドにより指定されたデフォルトURLの組合せによって、オブジェクトURLが完全に識別される必要があります。urlおよびqualified-nameを省略する場合は、デフォルトのクラウド・ストレージURLをオブジェクトに設定する必要があります。 
NEWは表を作成し、データをロードします。 
                        
[SHOW | SHOW_DDL]はDDL生成フェーズを実行してDDLを表示します。
                        
[CREATE | CREATE_DDL]はDDL生成フェーズを実行して表を作成します。 
                        
SET LOADおよびSET LOADFORMATを使用して、DDL分析および生成のためのプロパティを指定します。 
                        
CREATE TABLE DDLの生成により、データ・ファイルが事前スキャンされ、列のプロパティが特定されます。SET LOAD SCAN <nを使用して、DDLでスキャンする行数を指定します。デフォルトは100です。スキャンをオフにするには、0に設定します。
                        
SET LOAD COL_SIZEを使用して、生成される列サイズを変更します。SET LOAD MAP_NAMESを使用して、ファイルの列名を表の列名にマップします。 
                        
Cloud Storageコマンドの詳細は、クラウド・ストレージの使用を参照してください。
ファイル形式のデフォルトは次のとおりです。
- 
                              
                              列はカンマで区切られ、オプションで二重引用符で囲まれている場合があります。 
- 
                              
                              行はWindows、UNIXまたはMacの標準の行の終了文字で終了されます。 
- 
                              
                              ファイルはエンコードされたUTF8です。 
デフォルトのロードは次のようになります。
- 
                              
                              バッチ当たり50行を処理します。 
- 
                              
                              AUTOCOMMITがSQLcLで設定されている場合、10バッチごとにコミットが実行されます。 
- 
                              
                              50を超えるエラーが見つかった場合、ロードが終了します。 
ファイル(デリミタ、囲み)の読取りには、SET LOADFORMAT optionsを使用します。 
                        
SET LOADオプションを使用して、データ(バッチ当たりの行、日付書式)をロードします。 
                        
例
次の例は、ローカル・ストレージから表にファイルをロードする方法を示しています。
--Create Table "countries"
create table countries(countries_id NUMBER(5),countries_name VARCHAR2(40));
Table COUNTRIES created
--Load file COUNTRIES_DATA_TABLE.csv in local storage to "countries" table
load countries C:\Users\JDOE\SQLcl\COUNTRIES_DATA_TABLE.csv
format csv
column_names on
delimiter ,
enclosure_left "
enclosure_right "
encoding UTF8
row_limit off
row_terminator default
skip_rows 0
skip_after_names
--Number of rows processed: 30
--Number of rows in error: 
0 - SUCCESS: Load processed without errors
--Check the number of rows in countries table
select count(*) from countries;
COUNT(*)
–--------
30
次の例は、新しい表EMPにデータをロードする方法を示しています。
load emp empfile.csv new
--Create new table and load data into table HR.EMP
csv
column_names on
delimiter ,
enclosures ""
encoding UTF8
row_limit off
row_terminator default
skip_rows 0
skip_after_names
#INFO DATE format detected: RRRR-MM-DD
CREATE TABLE HR.EMP
 (
  EMPLOYEE_ID NUMBER(5),
  FIRST_NAME VARCHAR2(26),
  LAST_NAME VARCHAR2(26),
  EMAIL VARCHAR2(26),
  PHONE_NUMBER VARCHAR2(26),
  HIRE_DATE DATE,
  JOB_ID VARCHAR2(26),
  SALARY NUMBER(9, 2),
  COMMISSION_PCT VARCHAR2(26),
  MANAGER_ID NUMBER(5),
  DEPARTMENT_ID NUMBER(5)
 )
;
#INFO Table created
#INFO Number of rows processed: 21
#INFO Number of rows in error: 0
#INFO Last row processed in final committed batch: 21
SUCCESS: Processed without errors
次の例は、ローカル・ファイルから新しいテーブルを作成する方法を示しています。
load emp1 empfile.csv create_ddl
--Create new table HR.EMP1
csv
column_names on
delimiter ,
enclosures ""
encoding UTF8
row_limit off
row_terminator default
skip_rows 0
skip_after_names
batch_rows 50
batches_per_commit 10
clean_names transform
column_size rounded
commit on
date_format 
errors 50
map_column_names off
method insert
timestamp_format 
timestamptz_format 
locale English United States
scan_rows 100
truncate off
unknown_columns_fail on
--Pre-scans the date format
#INFO DATE format detected: RRRR-MM-DD
CREATE TABLE SYSTEM.EMP1
 (
  EMPLOYEE_ID NUMBER(5),
  FIRST_NAME VARCHAR2(26),
  LAST_NAME VARCHAR2(26),
  EMAIL VARCHAR2(26),
  PHONE_NUMBER VARCHAR2(26),
  HIRE_DATE DATE,
  JOB_ID VARCHAR2(26),
  SALARY NUMBER(9, 2),
  COMMISSION_PCT VARCHAR2(26),
  MANAGER_ID NUMBER(5),
  DEPARTMENT_ID NUMBER(5)
 )
;
#INFO Table created
SUCCESS: Processed without errors
2.10.1.1 SET LOADコマンド
SET LOADでは、データをロードするためのオプションを設定できます。
                           
構文
SET LOAD default | [options...] 説明
defaultは、ロード方法のプロパティがデフォルト値に戻ることを意味します。
                           
optionsは、次のものを表します。
- 
                                 BATCH_ROWS|BATCHROWS <number_of_rows>データ・ロードはバッチで実行されます。各バッチに含める行数を指定します。 
- 
                                 BATCHES_PER_COMMIT|BATCHESPERCOMMIT <batches_per_commit>number_of_batchesの処理後にコミットします。数値が0の場合、コミットはロードの最後に行われます。数値が0以上の場合は、 COMMIT ONが設定されます。
- 
                                 CLEAN_NAMES [ TRANSFORM | TRANSFORM128 | QUOTE | QUOTE128 | UNIQUE ]表および列名をデータベース識別子に準拠させるルールを識別します。以前のリリースとの一貫性を保つために、名前はマッピングされる前に消去されます。 CLEAN_NAMESおよびMAP_COLUMN_NAMESの両方が使用される場合、削除する名前を指定する必要があります。標準の識別子は次のとおりです。 - 30文字または128文字を超えることはできません。
- 予約語以外です。
- 文字で始まり、文字、数字、または_$#の1つのみを含みます。
- 大文字
- 準拠していない名前は引用符で囲む必要があります。長さルールは常に適用されます。
 ノート: 引用符に囲まれたデータは、名前が削除される前にヘッダー行の引用符が削除されます。TRANSFORM (デフォルト)名前が次のように変換されることを示します。 - 名前は大文字です。
- 名前が引用符で開始および終了している場合、引用符は削除されます。
- 名前が予約語である場合、ドル記号($)が追加されます。
- 数字または特殊文字で始まる名前には、接頭辞としてXが付けられます。
- スペースとハイフンはアンダースコア(_)に置き換えられます。$および#文字は保持されます。
- $と#以外の特殊文字は、シャープ記号(#)で置き換えられます。
- 名前は、データベースMAX_STRING_SIZEに応じて30文字または128文字に切り捨てられます。
- 名前が削除された後、列セット内の一意ではない名前には一意の連番が追加されます。切捨てが必要な場合でも、連番は維持されます。
 TRANSFORM (デフォルト)すべての変換ルールを適用します。名前は128文字です。 QUOTE準拠していない名前は引用符で囲まれ、データベースMAX_STRING_SIZEに応じて30文字または128文字に短縮されます。 QUOTE128準拠していない名前は引用符で囲まれます。名前は128文字です。 UNIQUEロード・サービスの以前のリリースとの互換性オプション。列セット内の一意ではない名前には一意の連番が追加されます。切捨ては指定されません。 
- 
                                 COLUMN_SIZE|COLUMNSIZE|COLSIZE {ACTUAL|ROUND|ROUNDED|MAX|MAXIMUM}表の列サイズ戦略を作成します。 ACTUALは、スキャン中に見つかった最大サイズを使用します。ROUND|ROUNDEDは、スキャン中に見つかった最大サイズより少し大きいサイズを使用します。MAX|MAXIMUMは、検出されたデータ型のデータベースの最大サイズを使用します。
- 
                                 COMMIT {ON|OFF}データ・コミットを有効化または無効化します。 
- 
                                 DATE|DATE_FORMAT|DATEFORMAT format_maskロードされたすべてのDATEデータ型列のフォーマット。format_maskまたはDEFAULTを指定しないと、データベースのデフォルトが使用されます。 DATE列では、書式が設定されていない、および SCAN_ROWS = 0の場合、データは有効なマスクでスキャンされません。ERRORS {number_of_rows | UNLIMITED}|-1: 許可されるエラー行数を示します。この数を超えると、ロードが終了します。 -1とUNLIMITEDはエラー制限がないことを示します。 いずれかの行が失敗した場合、バッチ内のすべての行がエラーになります。 
- 
                                 LOCALE { <language country> | DEFAULT | "" }ロケール言語、およびオプションで国を指定します。 DEFAULT|"": デフォルト・ロケールに設定されます。
- 
                                 MAP_COLUMN_NAMES|MAPCOLUMNNAMES|MAPNAMES { OFF| (<file-col-name>=<table-col-name>,...) }ファイルに指定された列名から表の列名へのマッピングを提供します。 
- 
                                 METHOD INSERTデータ・ロードに使用する方法。 
- 
                                 SCAN_ROWS|SCANROWS|SCAN <1-5000>CREATE TABLEの生成のためにスキャンする行数を識別します。デフォルトは100行です。 
- 
                                 TIMESTAMP|TIMESTAMP_FORMAT|TIMESTAMPFORMATロードされるすべてのTIMESTAMPデータ型列の形式。format_maskまたはDEFAULTを指定しないと、データベースのデフォルトが使用されます。TIMESTAMP列では、書式が設定されていない、およびSCAN_ROWSが0でない場合、データは有効なマスクでスキャンされます。 
- 
                                 TIMESTAMPTZ|TIMESTAMPTZ_FORMAT|TIMESTAMPTZFORMATロードされるすべてのTIMESTAMPTZデータ型列の形式。format_maskまたはDEFAULTを指定しないと、データベースのデフォルトが使用されます。TIMESTAMPTZ列では、書式が設定されていない、およびSCAN_ROWSが0でない場合、データは有効なマスクでスキャンされます。 
- 
                                 TRUNCATE {OFF|ON}「切捨て」をオンにすると、ロード前に表が切り捨てられます 
- 
                                 UNKNOWN_COLUMNS_FAIL|UNKNOWNCOLUMNSFAIL|UNKNOWNFAIL {ON|OFF}ON: ファイルの列を表の列にマップできない場合、ロードを終了します。OFF: ファイルの列を表の列にマップできない場合でも、ロードの続行を許可します。
2.11 OCIコマンドを使用したOracle Cloud Infrastructure REST APIの呼出し
SQLclリリース20.2以降では、OCIコマンドを使用してOracle Cloud Infrastructure (OCI) REST APIを呼び出すことができます。 
                  
前提条件
OCIコマンドを使用するには、最初に認証およびアクセス用のOCIプロファイルを設定する必要があります。
必要なSSHキーの設定方法およびOracle Cloud Infrastructureソフトウェア開発キットの構成方法の詳細は、Oracle Cloud Infrastructureドキュメントの設定および前提条件を参照してください。
OCI構成ファイル(~/.oci/config)に含まれるプロファイルをリストするには、次のように入力します。
                     
oci profileプロファイル名をdemoに設定するには、次のように入力します。
oci profile demo2つの構文形式
OCIコマンドを使用する際には、2つの構文形式を使用できます。
ターゲットの指定
最初の構文形式では、ターゲットはOCIコマンドで完全に指定されます。
oci <host> <method> [file-to-send-as-body] <request-target> 説明
methodは、GET、PUTまたはDELETEです。
request-targetは、host上のネームスペース、バケットまたはオブジェクトのパスです。
例
emp.csvファイルをtesting-bucketから削除するには、次のようにします。
oci objectstorage.us-ashburn-1.oraclecloud.com delete /n/abc123/b/testing-bucket/o/emp.csv testing-bucketの内容をリストするには、次のようにします。
oci objectstorage.us-ashburn-1.oraclecloud.com get /n/abc123/b/testing-bucket/o/ emp.csvファイルをtesting-bucketに格納するには、次のようにします。
oci objectstorage.us-ashburn-1.oraclecloud.com put ./emp.csv /n/abc123/b/testing-bucket/o/emp.csvemp.csvファイルをtesting-bucketから取得するには、次のようにします。
oci objectstorage.us-ashburn-1.oraclecloud.com get /n/abc123/b/testing-bucket/o/emp.csv クラウド・ストレージ・コマンドを使用したターゲットの指定
oci <method> [file-to-send-as-body] <qualifier>説明
methodは、GET、PUTまたはDELETEです。
qualifierは、クラウド・ストレージのネームスペースまたはバケットです。qualifierは、クラウド・ストレージの設定コマンドで指定された場所に追加され、methodで使用されるネームスペース、バケットまたはオブジェクトの完全なURLを形成する必要があります。
Cloud Storageコマンドの詳細は、クラウド・ストレージの使用を参照してください。
例
emp.csvをtesting-bucketから削除するには、次のようにします。
cs objectstorage.us-ashburn-1.oraclecloud.com
oci delete /n/abc123/b/testing-bucket/o/emp.csv testing-bucketの内容をリストするには、次のようにします。
--Using the OCI Command (oci get)
cs objectstorage.us-ashburn-1.oraclecloud.com/n/abc123/b/testing-bucket/o/
oci get
--Using the Cloud Storage Command (cs listo)
cs objectstorage.us-ashburn-1.oraclecloud.com/n/abc123/b/testing-bucket/o/
cs listoemp.csvをtesting-bucketに格納するには、次のようにします。
cs objectstorage.us-ashburn-1.oraclecloud.com/n/abc123/b/testing-bucket
oci put ./emp.csv /o/emp.csv emp.csvをtesting-bucketから取得するには、次のようにします。
cs objectstorage.us-ashburn-1.oraclecloud.com/n/abc123/b/testing-bucket
oci get /o/emp.csv