Oracle オラクル入門

目次

Oracleのネットワーク設定

SQL*Plus

Oracleのデータ型

SQL

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_EXCPNCHAR/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

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

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外部データ型には、入力ホスト変数および出力ホスト変数に値を格納するのに使う形式を指定する。外部データ型を次に示す。

Oracleの外部データ型
名前説明
CHAR255バイト以下の固定長文字列
CHARFCHARのデフォルトをVARCHAR2またはCHARZではなくCHAR にするために、TYPE文またはVAR文で使用する
CHARZ65534バイト以下のNULL終了符号をつけた固定長文字列
DATE固定長日付/時刻値、7バイト
FLOAT実数
INTEGER符号付き整数
LONG固定長文字列、2**31〜1バイトまで
LONG RAW2**31-1バイト以下の固定長バイナリ・データ
LONG VARCHAR可変長文字列、<=2**31-5バイト
LONG VARRAW可変長バイナリ・データ、<=2**31-5バイト
MLSLABELオペレーティング・システム・ラベルのタグ、2〜5バイト(Trusted Oracleの場合のみ)
NUMBER2進浮動小数点形式で表した10進数
RAW65533バイト以下の固定長バイナリ・データ
ROWIDバイナリ値、外部の長さはシステムによって異なる
STRINGNULL終了記号をつけた可変長文字列
UNSIGNED符号無し整数
VARCHAR65535バイト以下の可変長文字列
VARCHAR264KB以下の可変長文字列
VARNUM10進数、NUMBERと同様だが表現の長さのコンポーネントが含まれる
VARRAW65533バイト以下の可変長バイナリ・データ

デフォルトでは、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

Oracleの外部データ型(Pro*COBOL)
名前説明
CHAR65535バイト以下の可変長文字列 (PICX=VARCHAR32) または固定長文字列 (PICX=CHARF)
CHARF65535バイト以下の固定長文字列
CHARZ65535バイト以下の固定長、NULL終了文字列
※一部のプラットホームでは、最大サイズは32767(32K)
DATE7バイト、固定長日付/時刻値
DECIMAL COBOLパック10進数
DISPLAY COBOL数値文字列
DISPLAY TRAILING COBOL後続符号付き数値
FLOAT 4バイトまたは8バイトの浮動小数点数
INTEGER 2バイトまたは4バイトの浮動小数点数
LONG2,147,483,647バイト以下の固定長文字列
LONG RAW2,147,483,647バイト以下の固定長バイナリ・データ
LONG VARCHAR2,147,483,647バイト以下の可変長文字列
LONG VARRAW2147483647バイト以下の可変長バイナリ・データ
MLSLABEL 2〜5バイト、可変長バイナリ・データ
NUMBER 整数または浮動小数点数
OVER-PUNCH LEADING 埋め込み先行符号付き数値
OVER-PUNCH TRAILING 埋め込み後続符号付き数値
RAW65535バイト以下の固定長バイナリ・データ
※一部のプラットホームでは、最大サイズは32767(32K)
ROWID固定長バイナリ値(システム固有)
STRING65535バイト以下のNULL終了文字列
※一部のプラットホームでは、最大サイズは32767(32K)
UNSIGNED2バイトまたは4バイトの符号無し整数
UNSIGNED DISPLAYCOBOL符号無し整数
VARCHAR65,533バイト以下の可変長文字列
VARCHAR265,533バイト以下の可変長文字列
※一部のプラットホームでは、最大サイズは32767(32K)
VARNUM可変長2進数
VARRAW65,533バイト以下の可変長バイナリ・データ
Oracleのデフォルトの型の割り当て
COBOLデータ型外部データ型
PIC X...X, PIC X(n)CHARF
PIC X...X VARYING, PIC X(n) VARYINGVARCHAR
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-2FLOAT
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) COMPUNSIGNED
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日
SEO 仕事 掲示板 レンタルサーバー プロフ SEO