More Related Content Similar to Oracle Database Cloud と無料の純正開発ツールで開発効率を改善しよう!(db tech showcase 2016 Oracle セッション資料) (20) More from オラクルエンジニア通信 (20) Oracle Database Cloud と無料の純正開発ツールで開発効率を改善しよう!(db tech showcase 2016 Oracle セッション資料) 1. Oracle Database Cloud と
無料の純正開発ツールで
開発効率を改善しよう!
日本オラクル株式会社
クラウド・テクノロジー事業統括
プリンシパルエンジニア
柴田竜典
2016年7月18日
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
2. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明する
ものです。また、情報提供を唯一の目的とするものであり、いかなる
契約にも組み込むことはできません。以下の事項は、マテリアルやコード、
機能を提供することをコミットメント(確約)するものではないため、購買
決定を行う際の判断材料になさらないで下さい。オラクル製品に関して
記載されている機能の開発、リリースおよび時期については、弊社の
裁量により決定されます。
2
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
3. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1. Application Express
61%
2. Oracle SQL Developer
26%
3
3. Oracle Live SQL
13%
アジェンダ
DBセットアップはクラウドで速くなった。DBシステム開発はどうだ?
4. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express
4
5. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express (APEX) とは
• レスポンシブWebアプリケーション用の無料IDE + サーバー
• Webブラウザだけで開発可能
• 2004年にリリース。最新バージョンは5.0
• Oracle Database のサポート契約に
Application Express のサポートも含まれる
5
6. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
これだけで9割作れる、4種類のページ・タイプ
参照系ページ・タイプ 入力系ページ・タイプ
1行のデータに特化 レポート
• 1行のデータを1枚のページに
縦に表示したもの
• 例えば “シバタツの履歴書”
DMLフォーム
• 1行のデータを1ページのフォームに
したもの
• いわゆる普通のWebフォーム
まとめて表形式 対話モード・レポート
• Excelのフィルターのように、
様々な条件などを指定できる表
• 例えば “応募者一覧”
表形式フォーム
• Excelのように、表形式で
まとめて入力できるフォーム
6
7. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
まとめて表形式の参照系ページ
7
対話モード・レポート
8. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1行のデータに特化した参照系ページ
8
レポート
9. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1行のデータに特化した入力系ページ
9
DMLフォーム
10. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
まとめて表形式の入力系ページ
10
表形式フォーム
11. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• オンプレミスの
開発環境など
○ サポートが受けられる
○ アクセス制限が
比較的容易
× Application Express の
セットアップが必要
• Oracle Database Cloud
Schema Service
○ サポートが受けられる
○ 外部公開が容易
○ Application Express の
セットアップ不要
○ DBA管理不要
○ 容量5GB / 転送量30GBで
月額175米ドルから
11
• http://apex.oracle.com/
◎ Database ライセンス /
サブスクリプション不要
○ 外部公開が容易
○ Application Express の
セットアップ不要
○ DBA管理不要
× サポートなし
× 試使用目的のみ。
本番データ / 機密情報の
保存禁止
Application Express をどこで動かすか
12. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
apex.oracle.comにアカウントを作る
1. https://apex.oracle.com/jp/ へ
2. 「はじめよう」をクリック
3. フリー・ワークスペース
4. アプリケーション開発
• ワークスペース: DBインスタンスのようなもの
• スキーマ: デフォルト・スキーマ
12
13. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• アプリケーション・ビルダー
– Webアプリケーションを作る
• チーム開発
– マイルストン管理
– バグ・トラッキング
– フィードバック
13
• SQLワークショップ
– オブジェクト・ブラウザ
– SQLコマンドライン
– SQLスクリプト実行
– RESTfulサービス
• パッケージ・アプリケーション
– サード・パーティ・
アプリケーションの
インストールと管理
– App Store みたいなもの
Application Express の4つのタブ
14. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
アプリケーションを作ってみよう
1. アプリケーション・ビルダー
2. 作成
3. アプリケーションのタイプ「デスクトップ」
• 認証スキーム
– Application Express アカウント
– シングル・サインオン (SSO)
– データベース・アカウント
– 認証なし
14
15. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
対話モード・レポートを作ってみよう
参照系ページ・タイプ 入力系ページ・タイプ
1行のデータに特化 レポート
• 1行のデータを1枚のページに
縦に表示したもの
• 例えば “シバタツの履歴書”
DMLフォーム
• 1行のデータを1ページのフォームに
したもの
• いわゆる普通のWebフォーム
まとめて表形式 対話モード・レポート
• Excelのフィルターのように、
様々な条件などを指定できる表
• 例えば “応募者一覧”
表形式フォーム
• Excelのように、表形式で
まとめて入力できるフォーム
15
16. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
対話モード・レポートを作ってみよう (1/2)
1. ページの作成
2. レポート
3. 対話モード・レポート
• リージョン: ページ内のレポートや
グラフなどの大きな単位
• アイテム: テキスト・フィールドなどの
リージョン内の細々したもの
16
17. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• 1つの表からなら、
表示列をクリックして選ぶだけ
• 「SQL問合せ」を選べば結合可能
• クエリー・ビルダーもある
17
対話モード・レポートを作ってみよう (2/2)
18. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 18
対話モード・レポートの完成
鉛筆アイコンをクリックすると
単独レポート表示
19. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
列の選択 SELECT … の列名を減らせる
フィルタ WHERE句が書ける。
他の列の参照や、
関数も使える
フラッシュバック 過去のある時点の
データを表示
レポートの保存 変更した見た目を、
名前を付けて保存 / 共有
ダウンロード CSV, HTML, PDFなどで
ダウンロード
19
強力な対話機能
20. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• 列でフィルタ
例)入社日が2014年12月1日以下
• 行でフィルタ
例)マネジャーより社員番号が小さく、
入社から1年以上
20
強力な対話機能: フィルタ
21. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ソート: ORDER BY コントロール・ブレイク:
PARTITION BY
21
強力な対話機能: 書式 (1/4)
22. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ハイライト 計算: 疑似列
22
強力な対話機能: 書式 (2/4)
23. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
集計 チャート
23
強力な対話機能: 書式 (3/4)
24. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
グループ化: GROUP BY ピボット
24
強力な対話機能: 書式 (3/4)
25. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
強力な対話機能まとめ
• ユーザーが書式の変更を行える
• 変更した書式は保存できる
• 変更した書式でダウロードできる
• 開発者は複数書式を事前に用意できる
• ユーザーは用意された書式をプルダウンから選ぶことができる
25
26. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
単独レポートを作ってみよう
参照系ページ・タイプ 入力系ページ・タイプ
1行のデータに特化 レポート
• 1行のデータを1枚のページに
縦に表示したもの
• 例えば “シバタツの履歴書”
DMLフォーム
• 1行のデータを1ページのフォームに
したもの
• いわゆる普通のWebフォーム
まとめて表形式 対話モード・レポート
• Excelのフィルターのように、
様々な条件などを指定できる表
• 例えば “応募者一覧”
表形式フォーム
• Excelのように、表形式で
まとめて入力できるフォーム
26
27. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
対話モード・レポートでも
単独レポートは自動で作られるが、
もっと凝ったものにしたい
1. ページの作成
2. レポート
3. クラシック・レポート
4. ページ名: Sample Classic Report
5. リージョン名: 同上
27
単独レポートを作ってみよう (1/2)
28. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
select EMP.EMPNO as EMPNO,
EMP.ENAME as ENAME,
EMP.JOB as JOB,
EMP.MGR as MGR,
EMP.HIREDATE as HIREDATE,
EMP.SAL as SAL,
EMP.DEPTNO as DEPTNO,
DEPT.DNAME as DNAME,
DEPT.LOC as LOC
from DEPT DEPT,
EMP EMP
where EMP.DEPTNO=DEPT.DEPTNO
先ほどの対話モード・レポートと
似ているけど、
もっとシンプルなレポートが
できた
28
単独レポートを作ってみよう (2/2)
29. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1. Sample Classic Report
リージョンを右クリック >
ページ・アイテムの作成
2. 指定 > 名前: P3_EMPNO
3. 指定 > タイプ: 非表示
4. Sample Classic Report
リージョンをクリック
5. where EMP.DEPTNO = … の後に
and EMP.EMPNO = :P3_EMPNO を
追加
29
指定したEMPNOの社員情報だけを縦に表示したい
30. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1. 対話モード・レポート
2. 左ペインから、列 > EMPNO
3. 指定 > タイプ: リンク
4. リンク > ターゲット
5. ターゲット > ページ: 先ほど作っ
た Sample Classic Report
6. アイテムの設定:
P3_EMPNO = #EMPNO#
7. リンク・テキスト:
#EMPNO#
鉛筆アイコンの外し方
1. Sample Classic Report 下の
「属性」フォルダをクリック
2. リンク > リンク列: リンク列の除外
30
リンク元の編集
31. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• URLの読み方
– 19530: アプリケーションID
– 3: ページID
– 41192208312: セッションID
– 空: リクエスト・キーワード
– NO: No Debug
– RP: Reset Pagination
– P3_EMPNO: パラメーター・キー
– 7369: パラメーター値
• ゴミのないきれいなURL
/pls/apex/f?p=19530:3:::
NO:RP:P3_EMPNO:7369
31
編集後のリンク元ページ
7369にリンクされているURL:
/pls/apex/f?p=19530:3:
4119220831279::NO:RP:P3_EMPNO:7369
32. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
リンク先に社員番号7369の情報だけ表示された
32
33. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1. Sample Classic Report > 属性
2. 外観 > テンプレート:
Value Attribute Pairs - Column
33
表示を縦に変更する
34. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
単独レポートの発展のさせかた
• 列名を分かりやすいものに変更するなどの見た目の修正
• 1枚のページに複数のレポート・リージョンや
グラフ・リージョンを設置する
(対話モード・レポートは1枚のページに1個まで)
• 横向きの対話モード・レポートでは
URLなどの長い情報は表示させず、
表示される列を限定し、
単独レポートですべてを表示する
34
35. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• Sample Classic Report ページの
Content Body を右クリック >
リージョンの作成
• 指定 > タイトル: メンバー一覧
• タイプ: クラシック・レポート
• SQL問合せ:
select EMP.EMPNO as EMPNO,
EMP.ENAME as ENAME
from EMP EMP
where EMP.MGR = :P3_EMPNO
order by EMPNO
35
その社員のチーム・メンバーを追加設置する
36. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
レポート作成に便利なSQLテクニック: LISTAGG
select EMP.EMPNO, EMP.ENAME, DIR.DNAME
from EMP,
(select MGR,
listagg(ENAME, ', ')
within group (order by ENAME) DNAME
from EMP
group by MGR
) DIR
where EMP.EMPNO = DIR.MGR
order by EMP.ENAME
36
1:Nのデータを、指定した区切り文字でつなげる
EMPNO ENAME DNAME
7698 BLAKE ALLEN, JAMES, MARTIN,
TURNER, WARD
7782 CLARK MILLER
7902 FORD SMITH
7566 JONES FORD, SCOTT
7839 KING BLAKE, CLARK, JONES
7788 SCOTT ADAMS
37. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
レポート作成に便利なSQLテクニック: PARTITION BY
select EMP.EMPNO, EMP.ENAME,
DIR.ENAME LAST_DIRECT
from EMP,
(select MGR, ENAME, HIREDATE,
max(HIREDATE)
over (partition by MGR) MAX_HIREDATE
from EMP
) DIR
where DIR.HIREDATE = DIR.MAX_HIREDATE
and EMP.EMPNO = DIR.MGR
order by EMP.ENAME
37
1:Nのデータの中から、最新ものだけを表示する
EMPNO ENAME LAST_DIRECT
7698 BLAKE JAMES
7782 CLARK MILLER
7902 FORD SMITH
7566 JONES SCOTT
7839 KING CLARK
7788 SCOTT ADAMS
38. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
DMLフォームを作ってみよう
参照系ページ・タイプ 入力系ページ・タイプ
1行のデータに特化 レポート
• 1行のデータを1枚のページに
縦に表示したもの
• 例えば “シバタツの履歴書”
DMLフォーム
• 1行のデータを1ページのフォームに
したもの
• いわゆる普通のWebフォーム
まとめて表形式 対話モード・レポート
• Excelのフィルターのように、
様々な条件などを指定できる表
• 例えば “応募者一覧”
表形式フォーム
• Excelのように、表形式で
まとめて入力できるフォーム
38
39. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1. ページの作成
2. フォーム
3. 表またはビューのフォーム
4. 表/ビューの名前: EMP (表)
5. ページ名: Sample DML Form
6. 主キーのタイプ:
主キー列の選択
7. 主キー列1: EMPNO
8. ソース・タイプ:
既存のトリガー
9. 列の選択: 全列
10. 送信時にここにブランチ: 2
取消し時にここにブランチ: 2
39
DMLフォームを作ってみよう (1/2)
40. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
DMLフォームを作ってみよう (2/2)
40
できたことはできたが、
DEPTNOを直接入力したくない
41. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
選択リスト
1. P4_DEPTNOを選択
2. 指定 > タイプ: 選択リスト
3. LOV > タイプ: SQL問合せ
4. SQL問合せ:
1列目に選択リストに表示したい値
2列目に実際に入力したい値
select DNAME, DEPTNO
from DEPT
order by DNAME
41
42. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
選択項目がたくさんあるあるとき: ポップアップLOV
1. P4_DEPTNOを選択
2. 指定 > タイプ: ポップアップLOV
3. LOV > タイプ: SQL問合せ
4. SQL問合せ:
1列目にポップアップLOVに表示したい値
2列目に実際に入力したい値
select DNAME, DEPTNO
from DEPT
order by DNAME
42
43. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
7. 動作 > アクション:
このアプリケーションの
別ページにリダイレクト > 2
1. 対話モード・レポート
2. 画面下からボタン > Text
3. 追加先: Sample Interactive
Report > 対話モード・
レポートの検索バーの右
4. 新規ボタンをクリック
5. ボタン名: CREATE
6. ラベル: 作成
43
作成ボタンを作ってみよう
44. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1. 単独レポート
2. 画面下からボタン > Text
3. 追加先: Sample Classic Report >
Edit
4. 新規ボタンをクリック
5. ボタン名: EDIT
6. ラベル: 編集
7. 動作 > アクション:
このアプリケーションの
別ページにリダイレクト > 4
8. アイテムの設定:
P4_EMPNO = &P3_EMPNO.
44
編集ボタンを作ってみよう
45. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
表形式フォームを作ってみよう
参照系ページ・タイプ 入力系ページ・タイプ
1行のデータに特化 レポート
• 1行のデータを1枚のページに
縦に表示したもの
• 例えば “シバタツの履歴書”
DMLフォーム
• 1行のデータを1ページのフォームに
したもの
• いわゆる普通のWebフォーム
まとめて表形式 対話モード・レポート
• Excelのフィルターのように、
様々な条件などを指定できる表
• 例えば “応募者一覧”
表形式フォーム
• Excelのように、表形式で
まとめて入力できるフォーム
45
46. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1. ページの作成
2. フォーム
3. 表形式フォーム
4. 表/ビューの名前: EMP (表)
5. 更新可能な列: 全列
主キーは選択不可能
6. ページ名: Sample Tabular Form
46
表形式フォームを作ってみよう
47. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Webアプリケーションがほぼ完成
参照系ページ・タイプ 入力系ページ・タイプ
1行のデータに特化 レポート
• 1行のデータを1枚のページに
縦に表示したもの
• 例えば “シバタツの履歴書”
DMLフォーム
• 1行のデータを1ページのフォームに
したもの
• いわゆる普通のWebフォーム
まとめて表形式 対話モード・レポート
• Excelのフィルターのように、
様々な条件などを指定できる表
• 例えば “応募者一覧”
表形式フォーム
• Excelのように、表形式で
まとめて入力できるフォーム
47
48. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1. 共有コンポーネント
2. セキュリティ > 認可スキーム
3. 作成 > 最初から
4. 名前: 従業員
(EMP表に載っているユーザーのみ)
5. スキーム・タイプ:
EXISTS SQL 問合せ
6. SQL問合せ
select 1
from EMP
where ENAME =
replace(
upper(V('APP_USER')),
'@EXAMPLE.COM', ''
)
• ユーザー名は V('APP_USER')
• 大文字小文字区別なしに
認証される
48
“ほぼ” の残り: 認可スキームの作成
49. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1. ページ2: Sample Interactive
Report
2. セキュリティ > 認可スキーム:
従業員
• 開発者としてログイン
していても権限確認されるが、
開発者は、なぜ拒否されたかが
分かる
49
“ほぼ” の残り: 認可スキームの割当て
50. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1. SQLワークショップ
2. RESTfulサービス
3. oracle.example.hr
4. employees/{id} > GET
5. ソース
select * from emp
where empno = :id
6. テスト > バインド変数の設定
7. :ID = 7782 > テスト
50
発展: RESTfulサービス
51. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• Application Express
2日で開発者ガイド
for Oracle Database 12c
• Application Express
アプリケーション・ビルダー・
ユーザーズ・ガイド
for Oracle Database 12c
51
もっと詳しく知りたい
http://apex.world/
52. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle SQL Developer
52
53. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle SQL Developer とは
• Oracle Database / Oracle NoSQL Database /
Oracle TimesTen 用の無料 GUI IDE
• Windows, Mac, Linux, Unix 対応
• 2006年にリリース。最新バージョンは4.1.3
• 全世界で400万人以上のユーザー
• Oracle Database のサポート契約に
SQL Developer のサポートも含まれる
53
54. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Database Cloud Schema Service につなごう
• TCP/22もTCP/1521も
開いていない Schema Service でも、
REST経由でオブジェクト・
ブラウザが使える
• オンプレミスDBの表を
カートに経由で Schema Service に
デプロイすることで、
データ・ローディングできる
54
クラウド接続
55. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Database as a Service につなごう
• Database as a Service の
TCP/1521はデフォルトでは
開いていないので、
TCP/22 (SSH) につないで
ポート転送する
55
SSHポート転送
TCP/22 TCP/1521
56. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
踏み台を必要とする環境でつなごう
• Oracle Database サーバーが
別セグメントにあるなどの理由で
踏み台が必要な環境では、
踏み台でSSHポート転送する
56
SSHポート転送
TCP/22 TCP/1521
57. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 57
オブジェクト・ブラウザ
58. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 58
参照している表とまとめてER図を自動生成 / GUI参照
59. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• 構文補完 (Ctrl + Space) • 1クリック実行計画 (F10)
• 1クリック自動トレース (F6)
59
SQL Developer でSQLを書くメリット
60. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• ユーザーが入力したSQLの履歴
– 表示 > SQL履歴
(Ctrl + ↓: 戻る / Ctrl + ↑: 進む)
• SQL Developer が発行した
SQLのログ
– 表示 > ログ > 文
60
履歴の強化
61. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• Git / Subversionとの連携 • PL/SQLのステップ実行
61
IDEらしい機能
62. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
SELECT E.LOC,
E.DNAME,
E.DEPTNO,
F.DEPTNO,
F.COMM,
F.SAL,
F.HIREDATE,
F.MGR,
F.JOB,
F.ENAME,
F.EMPNO
FROM EMP F,
DEPT E
WHERE E.DEPTNO = F.DEPTNO;
62
ワークシートにEMP表とDEPT表をドラッグ&ドロップ
63. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
その状態でクエリー・ビルダーを開くと
63
64. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
SET SQLFORMAT CSV
SELECT e.empno, e.ename, …
"EMPNO","ENAME","DNAME"
7369,"SMITH","RESEARCH"
7499,"ALLEN","SALES"
7521,"WARD","SALES"
7566,"JONES","RESEARCH"
7654,"MARTIN","SALES"
7698,"BLAKE","SALES"
7782,"CLARK","ACCOUNTING"
7788,"SCOTT","RESEARCH"
7839,"KING","ACCOUNTING"
…
SET SQLFORMAT JSON
{"items":[{"empno":7369,"ename":"SMITH","dn
ame":"RESEARCH"},{"empno":7499,"ename":"ALL
EN","dname":"SALES"} … ]}
SET SQLFORMAT XML
<?xml version='1.0' encoding='UTF8' ?>
<RESULTS>
<ROW>
<COLUMN NAME="EMPNO"><![CDATA[7369]]>
</COLUMN>
<COLUMN NAME="ENAME"><![CDATA[SMITH]]
></COLUMN>
…
64
出力フォーマットの変更
65. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• 表を右クリック >
エクスポート
• エクスポート時にWHERE可能
• 表を右クリック >
データのインポート
65
CSVやXLSXでのエクスポート & インポート
66. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• 表を右クリック >
クイックDDL >
クリップボードに保存
• 索引 / 制約含めてDDLを生成
-------------------------------------------
-- DDL for Table EMP
-------------------------------------------
CREATE TABLE "SCOTT"."EMP"
( "EMPNO" NUMBER(4,0),
"ENAME" VARCHAR2(10 BYTE),
"JOB" VARCHAR2(9 BYTE),
"MGR" NUMBER(4,0),
"HIREDATE" DATE,
"SAL" NUMBER(7,2),
"COMM" NUMBER(7,2),
"DEPTNO" NUMBER(2,0)
) SEGMENT CREATION IMMEDIATE
…
66
クイックDDL
67. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• AWRの Complete List of SQL Text
から単純にコピペ
SELECT dbin.instance_number, dbin.db_name, dbin.instance_name,
dbin.host_name, dbin.version, CASE WHEN s1.startup_time =
s2.startup_time THEN 0 ELSE 1 END as bounce, CAST(s1.end_interval_time
AS DATE) as begin_time, CAST(s2.end_interval_time AS DATE) as
end_time, ROUND((cast( (case when s2.end_interval_time >
s1.end_interval_time then s2.end_interval_time else
s1.end_interval_time end) as date) - cast(s1.end_interval_time as
date)) * 86400) as int_secs, CASE WHEN (s1.status <> 0 OR s2.status <>
0) THEN 1 ELSE 0 END as err_detect, round( greatest( (extract(day from
s2.flush_elapsed) * 86400) + (extract(hour from s2.flush_elapsed) *
3600) + (extract(minute from s2.flush_elapsed) * 60) + extract(second
from s2.flush_elapsed), (extract(day from s1.flush_elapsed) * 86400) +
(extract(hour from s1.flush_elapsed) * 3600) + (extract(minute from
s1.flush_elapsed) * 60) + extract(second from s1.flush_elapsed), 0 ))
as max_flush_secs FROM WRM$_SNAPSHOT s1 , WRM$_DATABASE_INSTANCE dbin
, WRM$_SNAPSHOT s2 WHERE s1.dbid = :dbid AND s2.dbid = :dbid AND
s1.instance_number = s2.instance_number AND dbin.instance_number =
s1.instance_number AND s1.snap_id = :bid AND s2.snap_id = :eid AND
dbin.dbid = s1.dbid AND dbin.startup_time = s1.startup_time and
dbin.instance_number = :inst
• ワークシートにペーストして
右クリック > 書式 (Ctrl + F7)
SELECT dbin.instance_number,
dbin.db_name,
dbin.instance_name,
dbin.host_name,
dbin.version,
CASE
WHEN s1.startup_time = s2.startup_time
THEN 0
ELSE 1
END AS bounce,
CAST(s1.end_interval_time AS DATE) AS begin_time,
CAST(s2.end_interval_time AS DATE) AS end_time,
ROUND((CAST( (
CASE
WHEN s2.end_interval_time > s1.end_interval_time
THEN s2.end_interval_time
ELSE s1.end_interval_time
END) AS DATE) - CAST(s1.end_interval_time AS DATE)) * 86400) AS
int_secs,
……
67
書式整形
68. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
オブジェクト・ブラウズ
しながらSQLを書きたい
EMPタブを右クリック >
New Document Tab Group
68
ドキュメント・タブ・グループ
69. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• ファイル > Data Modeler
> インポート >
データ・ディクショナリ
• 新規ファイル
表示 > Data Modeler >
ブラウザ >
設計 [1] を右クリック > 新規設計
• 保存
ファイル > Data Modeler >
保存
Ctrl + S では保存されない
• オブジェクトが多すぎるときはSubViewを
作成する
69
Data Modeler: SQL↔ER図相互変換モデラー (1/2)
70. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• 表オブジェクトを右クリック >
DDLプレビュー
• Oracle Database への反映
表オブジェクトを右クリック >
データ・ディクショナリの同期
• ネーミング規約と設定と適用
– ブラウザ >
Untitled_1 を右クリック >
プロパティ > ネーミング標準
– 表を右クリック >
ネーミング・ルール
70
Data Modeler: SQL↔ER図相互変換モデラー (2/2)
71. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• 表示 > DBA
• 管理者権限のあるユーザー
(SYSTEMやSYS)でつなぐこと
71
DBAパネル
72. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
インスタンス・ビューア
72
DBAパネル > データベース・ステータス > DBインスタンス
• インスタンス・ビューア
A. ライセンス不要
B. 1秒更新。履歴保存なし
C. CPU / IO / ネットワークなどの
待機イベントがカテゴリーでは分かる
D. ドリルダウンできない
• Enterprise Manager
A. Diagnostic Pack 必要
B. 30秒更新。履歴保存あり
1秒更新もリアルタイムSQL監視で可能
C. 待機イベントが具体的に分かる
D. ドリルダウンできる
73. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
でも、「やっぱりCUIが好き」というあなたへ
73
SQLcl
Early Adopter 版 配布中
74. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Live SQL
74
75. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Live SQL とは
• SQL学習用途向けに
Oracle Database が何の準備なしに
無料で使用できるWebサービス
• コミュニティが作成したSQLを検索できる
• 自分の作成したSQLを共有できる
• 2015年10月にリリース
• Application Express で作られている
75
https://livesql.oracle.com/
76. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• 「range list partition」と入力
• インクリメンタル・サーチで
「range list partition」に
関連するSQLが表示される
76
あのSQLってどうやって書くんだっけ?
77. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 77
Composite Range-List Partitioning Example
パーティションのDDL
誰がいつ作ったか
補足のコメント
次のSQL文。
ここではINSERTしている
次のSQL文。
ここではUSER_TAB_PARTITIONSを確認している
78. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 78
Run in Live SQL を押してみよう
• Oracle SSO でログイン後に
別ウインドウが開くので、
Run Script ボタンをクリック
79. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• 左ペインのSchemaを見ると、
パーティション表のサンプルが
自分のスキーマにできている
• 表などのオブジェクトと
データは
ログアウトすると消える
• データは10MBまで
使用率は SQL Session > Utilization
79
Schemaをクリックすると
80. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1. SQL Session > Previous Session
2. Session = In Use の
最新のセッションを
View Session
3. Re-Run
4. Drop all DB Objects and SQL
History in Current Session を
チェックして、作成する
オブジェクトを事前に削除
• 少し変更して再実行したい
80
再実行
81. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• Saveボタンをクリック
• 公開設定をPrivate / Unlisted
から選べる
• UnlistedにしたSQLは
URLを知っている人だけに
限定公開できる
• My Scripts に保存される
81
修正したものを保存したい
82. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1. Home
2. 「emp dept」と入力して
Code Library をクリック
3. Run Script
4. SQL Worksheet
5. LISTAGGのサンプルを入力
6. Run
82
今日学んだSQLを実際に試してみよう
83. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• Save
• セッション単位で保存される
ため、EMP表 / DEPT表作成から
保存されている
• 複数回SELECTすると
複数回実行で保存される
• Remove Duplicates
83
今日学んだSQLを保存しておこう
84. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
1. Application Express
レスポンシブ
Webアプリケーション用の
無料IDE + サーバー
2. Oracle SQL Developer
Oracle Database ほか用の
無料 GUI IDE
84
4. Oracle Live SQL
SQL学習用途向けに
Oracle Database が無料で
使用できるWebサービス
まとめ
DBセットアップはクラウドで速くなった。DBシステム開発はどうだ?
85. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 85
Happy SQL Life!
86. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
どれだけカンタンに
環境を作成できるんだろう・・・
使い勝手を試してみたい!
使うために必要な設定
を確認したい!
どんなツールが
あるんだろう・・・ トライアルのお申し込みサイトはコチラ
トライアルのお申し込みサイト
- 上記サイトより、ご利用したいクラウドサービスを選択し、お申し込み頂けます。
- Oracle PaaS/IaaSの各サービスは「プラットフォーム(PaaS/IaaS)」項目をご参照ください
Database Cloud
Database Backup
Java Cloud
BI Cloud
Documents Cloud 等々
詳細なお申込み方法はFAQにてご案内しております
以下手順にて申し込みしたい該当サービスのFAQをご参照ください
- https://faq.oracle.co.jp/app/home へアクセス
- 検索キーワードに [オラクル クラウド トライアル] を入力
お申込みの流れ
お申し込みは数ステップでカンタン!30日間お試し放題!!
Oracleプロファイルの
ご登録
トライアルサブスクリプション
のサインアップ
トライアル環境への
アクセス
Editor's Notes Version 8c – June 4, 2015 select EMP.EMPNO, EMP.ENAME, DIR.DNAME
from EMP,
(select MGR,
listagg(ENAME, ', ')
within group (order by ENAME) DNAME
from EMP
group by MGR
) DIR
where EMP.EMPNO = DIR.MGR
order by EMP.ENAME