NUブログ 自作Webアプリで一発当てたいプログラマ

Oracle

Oracleメモ


フリーで使用できるOracle

  • Oracle Database 10g Express Edition

ダウンロードはこちら:http://www.oracle.com/technology/products/database/xe/index.html

DBのダンプ(インポート/エクスポート)

関数

Oracleの文字コードを調べる

SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';

複数レコードを1レコードにまとめる

例えば、以下のようなテーブル students があるとする

idnameclass
1fooA
2barB
3bazC
4hogeB
5fugaC
6xyzzyB

それぞれのclassに何人登録されているか1レコードで出力したい場合

SELECT COUNT(DECODE(class,'A',1,null)) AS class_A
     , COUNT(DECODE(class,'B',1,null)) AS class_B
     , COUNT(DECODE(class,'C',1,null)) AS class_C
  FROM students
class_A|class_B|class_C
-----------------------
      1|      3|      2

実行計画をとる

SQL> explain plan for select * from FOO;
解析されました。
SQL> @[Oracleインストールディレクトリ]/app/oracle/product/10.2.0/server/RDBMS/ADMIN/UTLXPLS.SQL

PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------
Plan hash value: 2186261815

-----------------------------------------------------------------------------
| Id  | Operation            | Name | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------
|   0 | SELECT STATEMENT     |      | 11138 |  4851K|    26   (4)| 00:00:01 |
|   1 |  MAT_VIEW ACCESS FULL| FOO  | 11138 |  4851K|    26   (4)| 00:00:01 |
-----------------------------------------------------------------------------

こっちの方が簡単。あらかじめ以下の設定を行っておくだけ。

SQL> set autotrace on
または
SQL> set autotrace trace
戻すときは
SQL> set autotrace off
Google Readerへ追加
[操作] 新規 | 全体編集 | 部分編集 | 凍結 |