目次
Oracleのネットワーク設定
SQL*Plus
- SQL*Plus の起動
- SQL*Plus の終了
- CONNECT
- DISCONNECT
- STARTUP
- SHUTDOWN
- 直前のコマンドをもう1度実行する
- 外部ファイルのSQL文を実行
- SPOOL
- HOST
- サーバー・パラメータ
- HELP
Oracleのデータ型
- 文字列
- 数値
- 日付と時刻
- バイナリ・データ
- ラージ・オブジェクト
- その他
- ANSI SQLとOracleのデータ型の違い
SQL
- SQLの概要
- スキーマ
- 表
- INSERT
- UPDATE
- DELETE
- MERGE
- 問い合わせ (SELECT)
- ビュー(仮想表)
- 索引
- 順序
- トランザクション制御
- オブジェクト権限
- システム権限
- ユーザー
- ロール
- シノニム
- 関数
- DUAL擬似表
Oracleデータディクショナリ
Pro*C/C++
Pro*COBOL
PL/SQL
Oracleデータディクショナリ
データ・ディクショナリとは、オブジェクトのスキーマ定義等を格納した表のことです。これらのデータ・ディクショナリを参照するために、データ・ディクショナリ・ビューが用意されています。
ALL_USERS
ALL_USERSビューには、ユーザー名およびユーザーID、作成日が格納されています。
| 列名 | 説明 |
|---|---|
| USERNAME | ユーザーの名前 |
| USER_ID | ユーザーを一意に識別するためのID |
| CREATED | ユーザーを作成した日付 |
SQL> select * from ALL_USERS; USERNAME USER_ID CREATED --------------------------- SYS 0 97-07-15 SYSTEM 5 97-07-15 SCOTT 11 97-07-16 3レコードが選択されました。 SQL>
NLS_DATABASE_PARAMETERS
NLS_DATABASE_PARAMETERSディクショナリー・ビューには、NLSデータベース・パラメーターが格納されています。
| 列名 | 説明 |
|---|---|
| PARAMETER | パラメータの名前 |
| VALUE | パラメータの値 |
パラメータの名前には、次のようなものがあります。
| PARAMETER | 説明 |
|---|---|
| NLS_CALENDAR | |
| NLS_CHARACTERSET | データベース・キャラクタ・セット |
| NLS_COMP | |
| NLS_CURRENCY | 通貨記号 |
| NLS_DATE_FORMAT | 日付けの書式 |
| NLS_DUAL_CURRENCY | |
| NLS_ISO_CURRENCY | |
| NLS_LANGUAGE | 言語 |
| NLS_LENGTH_SEMANTICS | 長さセマンティクス(キャラクタ文字列の長さをバイト単位で定義するか文字数単位で定義するか) |
| NLS_NCHAR_CHARACTERSET | |
| NLS_NCHAR_CONV_EXCP | NCHAR/NVARCHAR2データとCHAR/VARCHAR2データの間で暗黙的または明示的なキャラクタ・タイプの変換が行われる際、データ損失が発生した場合にエラーを報告するかどうか |
| NLS_NUMERIC_CHARACTERS | |
| NLS_SORT | 言語比較に使用される照合順番 |
| NLS_TERRITORY | 地域 |
| NLS_TIMESTAMP_FORMAT | |
| NLS_TIMESTAMP_TZ_FORMAT | |
| NLS_TIME_FORMAT | |
| NLS_TIME_TZ_FORMAT |
Oracleデータベース・キャラクタ・セットを取得するには、次の問合せを入力します。
SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET';
USER_TABLES
| 列名 | 説明 |
|---|---|
| OWNER | 表の所有者 |
| TABLE_NAME | 表名 |
データベースにあるテーブル(表)の一覧を出力するには、USER_TABLES ビューに問い合わせます。
SQL> select TABLE_NAME from USER_TABLES;
V$SYSTEM_PARAMETER
V$SYSTEM_PARAMETER動的パフォーマンスビューは、現在の初期化パラメータの値を示します。
| 列名 | 説明 |
|---|---|
| NAME | パラメータ名 |
| TYPE | パラメータタイプ(1:ブール値 2:文字列 3:整数) |
| VALUE | インスタンス全体のパラメータ値 |
| DIPLAY_VALUE | わかりやすい書式で表したパラメータ値(134217728なら128M) |
| DESCRIPTION | パラメータの説明 |
初期化パラメータ sga_target の現在の値を問い合わせる例を次に示します。
SQL> SELECT VALUE FROM V$SYSTEM_PARAMETER WHERE NAME = 'sga_target';
134217728
134217728
Pro*C プリコンパイラ
Oracle Pro*C プリコンパイラのサンプルソースコードを次に示します。
#include <stdio.h>
exec sql include sqlca;
int main()
{
exec sql begin declare section;
int ID
char NAME[256];
exec sql end declare section;
exec sql connect to bookmark user dbuser;
exec sql insert into Name_list (id, name) values (:ID, :NAME);
exec sql commit;
exec sql disconnect;
return 0;
}
Oracleの外部データ型
Oracle外部データ型には、入力ホスト変数および出力ホスト変数に値を格納するのに使う形式を指定する。外部データ型を次に示す。
| 名前 | 説明 |
|---|---|
| CHAR | 255バイト以下の固定長文字列 |
| CHARF | CHARのデフォルトをVARCHAR2またはCHARZではなくCHAR にするために、TYPE文またはVAR文で使用する |
| CHARZ | 65534バイト以下のNULL終了符号をつけた固定長文字列 |
| DATE | 固定長日付/時刻値、7バイト |
| FLOAT | 実数 |
| INTEGER | 符号付き整数 |
| LONG | 固定長文字列、2**31〜1バイトまで |
| LONG RAW | 2**31-1バイト以下の固定長バイナリ・データ |
| LONG VARCHAR | 可変長文字列、<=2**31-5バイト |
| LONG VARRAW | 可変長バイナリ・データ、<=2**31-5バイト |
| MLSLABEL | オペレーティング・システム・ラベルのタグ、2〜5バイト(Trusted Oracleの場合のみ) |
| NUMBER | 2進浮動小数点形式で表した10進数 |
| RAW | 65533バイト以下の固定長バイナリ・データ |
| ROWID | バイナリ値、外部の長さはシステムによって異なる |
| STRING | NULL終了記号をつけた可変長文字列 |
| UNSIGNED | 符号無し整数 |
| VARCHAR | 65535バイト以下の可変長文字列 |
| VARCHAR2 | 64KB以下の可変長文字列 |
| VARNUM | 10進数、NUMBERと同様だが表現の長さのコンポーネントが含まれる |
| VARRAW | 65533バイト以下の可変長バイナリ・データ |
デフォルトでは、Pro*C/C++ プリコンパイラはすべてのホスト変数に特定の外部データ型を割り当てます。デフォルトの割り当てを次に示します。
| Cの型または疑似型 | Oracle外部型 |
|---|---|
| char char[n] char * | VARCHAR2 (DBMS=V6のデフォルト) CHARZ (DBMS=V7, DBMS=V8のデフォルト) |
| int int * | INTEGER |
| short short * | INTEGER |
| long long * | INTEGER |
| float float * | FLOAT |
| double double * | FLOAT |
| VARCHAR VARCHAR[n] | VARCHAR |
CHAR_MAPプリコンパイラ・コマンド行オプションを使って、char[n]およびcharホスト変数のデフォルトのマッピングを指定することもできます。CHAR_MAPの設定を次に示します。
| CHAR_MAP の設定 | 説明 |
|---|---|
| VARCHAR2 | 値が(NULLを含む)固定長の空白埋め。 |
| CHARZ | 固定長の空白埋めおよびゼロ終了記号付き。ANSI変数文字型に準拠。 |
| STRING | ゼロ終了記号付き。Cプログラムで使われているASCIIZ形式に準拠。 |
| CHARF | 固定長の空白埋め。NULLは左側に埋め込まれない。ANSI固定文字列型に準拠。 |
Pro*COBOL
| 名前 | 説明 |
|---|---|
| CHAR | 65535バイト以下の可変長文字列 (PICX=VARCHAR32) または固定長文字列 (PICX=CHARF) |
| CHARF | 65535バイト以下の固定長文字列 |
| CHARZ | 65535バイト以下の固定長、NULL終了文字列 ※一部のプラットホームでは、最大サイズは32767(32K) |
| DATE | 7バイト、固定長日付/時刻値 |
| DECIMAL | COBOLパック10進数 |
| DISPLAY | COBOL数値文字列 |
| DISPLAY TRAILING | COBOL後続符号付き数値 |
| FLOAT | 4バイトまたは8バイトの浮動小数点数 |
| INTEGER | 2バイトまたは4バイトの浮動小数点数 |
| LONG | 2,147,483,647バイト以下の固定長文字列 |
| LONG RAW | 2,147,483,647バイト以下の固定長バイナリ・データ |
| LONG VARCHAR | 2,147,483,647バイト以下の可変長文字列 |
| LONG VARRAW | 2147483647バイト以下の可変長バイナリ・データ |
| MLSLABEL | 2〜5バイト、可変長バイナリ・データ |
| NUMBER | 整数または浮動小数点数 |
| OVER-PUNCH LEADING | 埋め込み先行符号付き数値 |
| OVER-PUNCH TRAILING | 埋め込み後続符号付き数値 |
| RAW | 65535バイト以下の固定長バイナリ・データ ※一部のプラットホームでは、最大サイズは32767(32K) |
| ROWID | 固定長バイナリ値(システム固有) |
| STRING | 65535バイト以下のNULL終了文字列 ※一部のプラットホームでは、最大サイズは32767(32K) |
| UNSIGNED | 2バイトまたは4バイトの符号無し整数 |
| UNSIGNED DISPLAY | COBOL符号無し整数 |
| VARCHAR | 65,533バイト以下の可変長文字列 |
| VARCHAR2 | 65,533バイト以下の可変長文字列 ※一部のプラットホームでは、最大サイズは32767(32K) |
| VARNUM | 可変長2進数 |
| VARRAW | 65,533バイト以下の可変長バイナリ・データ |
| COBOLデータ型 | 外部データ型 |
|---|---|
| PIC X...X, PIC X(n) | CHARF |
| PIC X...X VARYING, PIC X(n) VARYING | VARCHAR |
| PIC X9...9 COMP, PIC S9(n) COMPPIC S9...9 COMP-5, PIC S9(n) COMP-5PIC S9...9 COMP-4, PIC S9(n) COMP-4PIC S9...9 BINARY, PIC S9(n) BINARY |
INTEGER |
| COMP-1, COMP-2 | FLOAT |
| PIC S9..9V9...9 COMP-3, PIC S9(n)V9(n) COMP-3, PIC S9...9V9...9 PACKED-DECIMAL, PIC S9(n)V9(n) PACKED-DECIMAL | DECIMAL |
| PIC 9...9 COMP, PIC 9(n) COMP | UNSIGNED |
| PIC S9...9V9...9 LEADING SEPARATE, PIC S9(n)9V9(n)9 LEADING SEPARATE |
DISPLAY |
| PIC 9...9V9...9PIC 9(n)V9(n) | UNSIGNED DISPLAY |
| PIC 9...9V9...9 TRAILING, PIC 9(n)V9(n) TRAILING |
OVERPUNCH TRAILING |
| PIC 9...9V9...9 LEADING, PIC 9(n)V9(n) LEADING |
OVERPUNCH LEADING |
| PIC 9...9V9...9 TRAILING SEPARATE, PIC 9(n)V9(n) TRAILING SEPARATE |
DISPLAY TRAILING |
PL/SQL
PL/SQLのデータ型
| データ型 | 値の範囲 | 備考 |
|---|---|---|
| CHAR(n) | 1≦n≦32767(バイト) | Oracle内部データ型では1≦n≦2000 (bytes) |
| NCHAR(n) | 1≦n≦32767(バイト) | Oracle内部データ型では1≦n≦2000 (bytes) |
| VARCHAR(n) | 1≦n≦32767(バイト) | Oracle内部データ型では1≦n≦4000 (bytes) |
| NVARCHAR(n) | 1≦n≦32767(バイト) | Oracle内部データ型では1≦n≦4000 (bytes) |
| LONG | 最大長2147483647バイト | 可変長の文字列 |
| BINARY_INTEGER | -2147483647〜2147483647 | |
| NATURAL | 0〜2147483647 | |
| NATURALN | 0〜2147483647 | NULLを代入できない |
| PSITIVE | 1〜2147483647 | |
| POSITIVEN | 1〜2147483647 | NULLを代入できない |
| SIGNTYPE | -1, 0, 1 | |
| PLS_INTEGER | -2147483647〜2147483647 | |
| NUMBER(p,s) | p≦28, -84≦s≦127 | |
| INTEGER | -2147483648〜2147483647 | |
| REAL | ±3.40282347E+38 〜 ±1.40239846E-45 | |
| DOUBLE PRECISION | ±1.79769313486231570E+308 〜 ±4.94065645841246544E-324 | |
| RAW(n) | 1≦n≦32767(バイト) | バイナリデータやバイト列 |
| LONG RAW(n) | 1≦n≦32767(バイト) | バイナリデータやバイト列 |
| BOOLEAN | TRUE, FALSE, NULL | |
| DATE | 紀元前4712年1月1日 〜 紀元4712年12月31日 |