Oracle SQL Developer Command Line (SQLcl) は、SQLコマンドを入力するためのコマンドライン・インタフェースです。
SQL Developerの機能がコマンドライン・インタフェースに導入されており、従来のSQL*Plusには無かった以前に実行したコマンド履歴などが使えます。
ここでは、Autonomous Databaseを作成して、SQLcl接続できるまでの手順を説明します。
■ 構成
今回は、Private Subnetに配置したインスタンスにSQLclをインストールし、Service Gateway経由でAutonomous Databaseにアクセスします。
■ Autonomous Database側設定
Autonomous Data Warehouses(ADW)とAutonomous Transaction Processing Databases(ATP)ともに同じ手順となり、ここでは、ADWを作成して接続を行います。
● Autonomous Data Warehouse(ADW)を作成
Autonomous Data Warehouses画面で[Create Autonomous Data Warehouses]ボタンをクリックし、以下のような情報を入力して作成します。
● クライアント資格証明(Oracle Wallet)のダウンロード
データベース接続は暗号化されており、WALLETの資格証明を使用して接続します。
ADWでは、zip化された接続情報含めたファイルをダウンロードし、このzipを使用して接続します。
1) 作成したADWのページに移動し、「DB Connection」をクリック
2) 「Database Connection」画面で、「Download」をクリック
また、この画面の「Connection Strings」項目について、
「Connection String」から、"ar8grq08m8d79by_adw01"が作成したPDB Nameであることが確認できます。
「TNS Name」には、high, mediumおよびlowの3つの定義済みのサービス名があり、用途に合わせて選択し接続しますので、メモしておきます。
定義済みDatabaseサービス名の詳しい内容は次のドキュメントを参考してください。
・ドキュメント: 事前定義されたAutonomous Databaseのデータベース・サービス名
3) 「Download Wallet」画面で以下を設定し、[Download]をクリック
「PASSWORD」:Oracle Walletのパスワードを設定
「Confirm Password」:確認するため再度パスワードを入力
4) クライアントのセキュリティ資格証明のzipファイルを適切な場所に保存します。
ここでは、ダウンロードしたWallet_ATP01.zipを $HOME/oracle へ配置します。
[opc@client-inst ~]$ mkdir ~/oracle
[opc@client-inst ~]$ mv Wallet_ATP01.zip ~/oracle/
■ Client側設定
● JAVA8 ダウンロードとインストール
SQLclはJavaアプリケーションであり、Java Runtime Engine(JRE)version 8以上を必要としますのでまずダウンロードしてインストールします。
1) JAVA8 ダウンロード
以下Java SE Development Kit 8u201 のページから、ダウンロードします。
2) インストール
ここではLinux版の jdk-8u201-linux-x64.rpmダウンロードしてインストールします。
[root@client-inst opc]# rpm -ivh jdk-8u201-linux-x64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:jdk1.8-2000:1.8.0_201-fcs ################################# [100%]
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
● SQLcl ダウンロードとインストール
1) SQLcl ダウンロード
以下ページからダウンロード
2) SQLclインストール
ここでは、~/oracleへインストール
[opc@client-inst ~]$ mv sqlcl-18.4.0.007.1818.zip ~/oracle/
[opc@client-inst ~]$ cd ~/oracle
[opc@client-inst ~]$ unzip sqlcl-18.4.0.007.1818.zip
Archive: sqlcl-18.4.0.007.1818.zip
creating: sqlcl/
creating: sqlcl/bin/
creating: sqlcl/lib/
inflating: sqlcl/bin/sql
・・・
● SQLcl接続確認
1) /nologオプションを使用してSQLclを起動
[opc@client-inst ~]$ ~/oracle/sqlcl/bin/sql /nolog
SQLcl: 月 2月 18 16:56:36 2019のリリース18.4 Production
Copyright (c) 1982, 2019, Oracle. All rights reserved.
2) Oracle Walletを使用するようにSQLclセッションを構成
SQL> set cloudconfig /home/opc/oracle/Wallet_ADW01.zip
操作は正常に完了しました。
操作は正常に完了しました。
Using temp directory:/var/folders/td/ltsnlh6d01gdrm0rjh5hmn_00000gn/T/oracle_cloud_config1774995246833750575
3) ADWに接続
設定したパスワードを入力して接続し、SQLを実行してテスト
SQL> connect ADMIN@adw01_HIGH
パスワード (**********?) ********************
接続しました.
SQL> select BANNER_FULL from v$version;
BANNER_FULL
-----------------------------------------------------------------------------------------------------------------------------
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SQL> select NAME from v$pdbs;
NAME
-------------------------------------------
AR8GRQ08M8D79BY_ADW01
■ おまけ:SQL Developer インストール
Mac OSにSQL Developerをインストールします。
● JAVA8 ダウンロードとインストール
次のURLから、jdk-8u201-macosx-x64.dmg(Mac版) をダウンロードし、ダブルクリックしてインストール
● SQL Developerダウンロード
次のURLからsqldeveloper-18.4.0-376.1900-macosx.app.zip(Mac版)をダウンロード
● SQL Developerインストール
sqldeveloper-18.4.0-376.1900-macosx.app.zipを解凍
インストールは解凍するだけです。
● SQL Developer設定
1) 解凍されたSQLDeveloperアイコンをクリックして起動
2) Oracle SQL Developerを起動し、接続パネルで「接続」を右クリックし、「新規接続」を選択
3) 次の情報を入力して[保存]をクリックして設定
・接続名: この接続の名前を入力します。
・ユーザー名: データベース・ユーザー名を入力
・パスワード: データベース・ユーザーのパスワードを入力
・接続タイプ: クラウド・ウォレットを選択
・構成ファイル: ブラウズをクリックし、クライアントの資格証明のzipファイルを選択
・サービス: サービス名を選択
4) 接続
作成した接続名を右クリックして[接続]を行い
SQLを実行して接続を確認します。
■ おまけ: SYSDATEとCURRENT_DATE
Autonomous Databaseは、Global Public Cloudということもあり、OS時刻がUTC(協定世界時)となっています。
ということで、注意点は SYSDATE です。
SYSDATE、SYSTIMESTAMPは OS時刻を出力するので、UTCになります。
JST(日本標準時)時刻を出力するには、CURRENT_DATE, CURRENT_TIMESTAMP を使います。
そのためには事前に、'ALTER DATABASE SET ~' または、 'ALTER SESSION SET ~' で、Database時刻を TIME_ZONE=‘Asia/Tokyo’ をセットしておきます
● CURRENT_DATEでJST出力する手順
・UTC確認
1) NLS_DATE_FORMAT設定
SQL> Alter session set NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
セッションが変更されました。
2) DBタイムゾーンUTC確認
SQL> select DBTIMEZONE from dual;
DBTIME
------
+00:00
3) SYSDATE確認
SQL> select SYSDATE from dual;
SYSDATE
-------------------
2020/05/21 08:26:48
4) CURRENT_DATE確認
SQL> select CURRENT_DATE from dual;
CURRENT_DATE
-------------------
2020/05/21 08:38:15
・ DBタイムゾーンAsia/Tokyoへ変更
5) JSTへ変更
SQL> alter database set time_zone = 'Asia/Tokyo';
Databaseが変更されました。
6) Database再起動
WebコンソールでAutonomous DB再起動
・ JST出力確認
7) DBタイムゾーン確認
SQL> select DBTIMEZONE from dual;
DBTIMEZONE
--------------------
Asia/Tokyo
8) CURRENT_DATE確認
SQL> select CURRENT_DATE from dual;
CURRENT_DATE
-------------------
2020/05/21 17:39:44
■ 参考
・ Oracle Cloud Infrastructure Documents
- Oracle Autonomous Database Serverless
- Oracle SQLclを使用した接続
- WalletなしでOracle SQLcl Cloudを接続
- Connect with Oracle SQLcl
- ウォレット(mTLS)を使用したOracle SQLcl Cloudの接続
- Connect to Autonomous Database Using Oracle Database Tools
- 事前定義されたAutonomous Databaseのデータベース・サービス名
・ 各ツール
- Oracle SQLcl
- SQL Developer
- Java SE Development Kit 8 Downloads