oracle8i sqlリファレンス vol.1, リリース8 · 2019. 11. 25. · oracle8i sql...

488
Oracle8i SQL リファレンス Vol.1 リリース 8.1 2000 11 部品番号 : J02326-01

Upload: others

Post on 14-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

Oracle8i

SQLリファレンス Vol.1

リリース 8.1

2000年 11月

部品番号 : J02326-01

Page 2: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

Oracle8i SQLリファレンス Vol.1, リリース 8.1

部品番号 : J02326-01

原本名:SQL Reference, Volume 1, Release 3 (8.1.7)

原本部品番号:A86006-01

原本著者:Diana Lorentz

原本協力者:Dave Alpern、Vikas Arora、Lance Ashdown、Hermann Baer、Vladimir Barriere、Lucy Burgess、Souripriya Das、Carolyn Gray、John Haydu、Thuvan Hoang、Wei Hu、Namit Jain、Hakan Jakobsson、Bob Jenkins、Mark Johnson、Jonathan Klein、Susan Kotsovolos、Vishu Krishnamurthy、Muralidhar Krishnaprasad、Paul Lane、Geoff Lee、Nina Lewis、Bryn Llewellyn、Phil Locke、David McElhoes、Jack Melnick、Ari Mozes、Subramanian Muralidhar、Ravi Murthy、Sujatha Muthulingam、Bruce Olsen、Alla S Pfauntsch、Tom Portfolio、Kevin Quinn、Ananth Raghavan、Den Raphaely、John Russell、Anant Singh、Rajesh Sivaramasubramaniom、Roger Snowden、Jags Srinivisan、Sankar Subramanian、Murali Thiyagarajah、Michael Tobie、AhnTuan Tran、Randy Urbano、Andy Witkowski、Daniel Wong、Aravind Yalamanchi、Qin Yu、Fred Zemke、Mohamed Ziauddin

Copyright © 1996, 2000, Oracle Corporation. All rights reserved.

Printed in Japan.

制限付権利の説明

プログラム(ソフトウェアおよびドキュメントを含む)の使用、複製または開示は、オラクル社との契約に記された制約条件に従うものとします。著作権、特許権およびその他の知的財産権に関する法律により保護されています。

当プログラムのリバース・エンジニアリング等は禁止されております。

このドキュメントの情報は、予告なしに変更されることがあります。オラクル社は本ドキュメントの無謬性を保証しません。

* オラクル社とは、Oracle Corporation(米国オラクル)または日本オラクル株式会社(日本オラクル)を指します。

危険な用途への使用について

オラクル社製品は、原子力、航空産業、大量輸送、医療あるいはその他の危険が伴うアプリケーションを用途として開発されておりません。オラクル社製品を上述のようなアプリケーションに使用することについての安全確保は、顧客各位の責任と費用により行ってください。万一かかる用途での使用によりクレームや損害が発生いたしましても、日本オラクル株式会社と開発元である Oracle Corporation(米国オラクル)およびその関連会社は一切責任を負いかねます。 当プログラムを米国国防総省の米国政府機関に提供する際には、『Restricted Rights』と共に提供してください。この場合次の Noticeが適用されます。

Restricted Rights Notice

Programs delivered subject to the DOD FAR Supplement are "commercial computer software" and use, duplication, and disclosure of the Programs, including documentation, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement. Otherwise, Programs delivered subject to the Federal Acquisition Regulations are "restricted computer software" and use, duplication, and disclosure of the Programs shall be subject to the restrictions in FAR 52.227-19, Commercial Computer Software - Restricted Rights (June, 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065.

このドキュメントに記載されているその他の会社名および製品名は、あくまでその製品および会社を識別する目的にのみ使用されており、それぞれの所有者の商標または登録商標です。

Page 3: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

目次目次目次目次

はじめにはじめにはじめにはじめに ........................................................................................................................................................................... ix

1 概要概要概要概要

SQLの歴史の歴史の歴史の歴史 .............................................................................................................................................................. 1-2

SQL規格規格規格規格 .................................................................................................................................................................. 1-2

SQLの特長 ...................................................................................................................................................... 1-3

すべてのリレーショナル・データベースに共通の言語 ........................................................................... 1-4

埋込み埋込み埋込み埋込み SQL .............................................................................................................................................................. 1-4字句規則字句規則字句規則字句規則 ................................................................................................................................................................... 1-5Toolsのサポートのサポートのサポートのサポート .................................................................................................................................................... 1-5

2 Oracle SQLの基本要素の基本要素の基本要素の基本要素

データ型データ型データ型データ型 ................................................................................................................................................................... 2-2

文字データ型 ................................................................................................................................................... 2-6

NUMBERデータ型 ........................................................................................................................................ 2-9

LONGデータ型 ............................................................................................................................................ 2-11

DATEデータ型 ............................................................................................................................................. 2-13

RAWデータ型と LONG RAWデータ型 ................................................................................................. 2-15

ラージ・オブジェクト(LOB)データ型 ................................................................................................. 2-15

ROWIDデータ型 ......................................................................................................................................... 2-18

UROWIDデータ型 ...................................................................................................................................... 2-20

ANSI、DB2、SQL/DSのデータ型 ........................................................................................................... 2-20

ユーザー定義型のカテゴリ ......................................................................................................................... 2-23

データ型の比較規則 ..................................................................................................................................... 2-25

i

Page 4: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ変換 ..................................................................................................................................................... 2-29リテラルリテラルリテラルリテラル ................................................................................................................................................................. 2-31

Text(テキスト) ........................................................................................................................................... 2-32

Integer(整数) .............................................................................................................................................. 2-33

Number(数) ................................................................................................................................................ 2-33

Interval(インターバル) ............................................................................................................................. 2-34

書式モデル書式モデル書式モデル書式モデル ............................................................................................................................................................. 2-39

数値書式モデル ............................................................................................................................................. 2-41

日付書式モデル ............................................................................................................................................. 2-46

書式モデルの修飾子 ..................................................................................................................................... 2-52

文字列から日付への変換に関する規則 ..................................................................................................... 2-55NULL ..................................................................................................................................................................... 2-55

SQL関数でのNULL .................................................................................................................................... 2-56

比較演算子での NULL ................................................................................................................................ 2-56

条件での NULL ............................................................................................................................................ 2-56

疑似列疑似列疑似列疑似列 ..................................................................................................................................................................... 2-57

CURRVALと NEXTVAL ............................................................................................................................ 2-57

LEVEL ............................................................................................................................................................ 2-60

ROWID ........................................................................................................................................................... 2-61

ROWNUM ..................................................................................................................................................... 2-62コメントコメントコメントコメント ................................................................................................................................................................. 2-64

SQL文中のコメント .................................................................................................................................... 2-64

スキーマ・オブジェクトに関するコメント ............................................................................................. 2-65

ヒント ............................................................................................................................................................. 2-65データベース・オブジェクトデータベース・オブジェクトデータベース・オブジェクトデータベース・オブジェクト ............................................................................................................................. 2-77

スキーマ・オブジェクト ............................................................................................................................. 2-77

非スキーマ・オブジェクト ......................................................................................................................... 2-78

スキーマ・オブジェクトの部分 ................................................................................................................. 2-79

スキーマ・オブジェクト名および修飾子スキーマ・オブジェクト名および修飾子スキーマ・オブジェクト名および修飾子スキーマ・オブジェクト名および修飾子 ......................................................................................................... 2-81

スキーマ・オブジェクトのネーミング規則 ............................................................................................. 2-81

スキーマ・オブジェクトのネーミング例 ................................................................................................. 2-85

スキーマ・オブジェクト名のネーミング計画 ......................................................................................... 2-85スキーマ・オブジェクトの構文およびスキーマ・オブジェクトの構文およびスキーマ・オブジェクトの構文およびスキーマ・オブジェクトの構文および SQL文の構成要素文の構成要素文の構成要素文の構成要素 .......................................................................... 2-86

Oracleによるスキーマ・オブジェクト参照の変換方法 ........................................................................ 2-87

他のスキーマ内のオブジェクトの参照 ..................................................................................................... 2-88

リモート・データベース内のオブジェクトの参照 ................................................................................. 2-88

ii

Page 5: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

オブジェクト型の属性とメソッドの参照 ................................................................................................. 2-91

3 演算子演算子演算子演算子

単項演算子およびバイナリ演算子単項演算子およびバイナリ演算子単項演算子およびバイナリ演算子単項演算子およびバイナリ演算子 ....................................................................................................................... 3-2優先順位優先順位優先順位優先順位 ................................................................................................................................................................... 3-2算術演算子算術演算子算術演算子算術演算子 ............................................................................................................................................................... 3-3

連結演算子連結演算子連結演算子連結演算子 ............................................................................................................................................................... 3-4比較演算子比較演算子比較演算子比較演算子 ............................................................................................................................................................... 3-5

NOT IN演算子 ............................................................................................................................................... 3-7

LIKE演算子 ..................................................................................................................................................... 3-8論理演算子論理演算子論理演算子論理演算子 : NOT、、、、AND、、、、OR ........................................................................................................................ 3-11

NOT演算子 ................................................................................................................................................... 3-12

AND演算子 .................................................................................................................................................. 3-12

OR演算子 ...................................................................................................................................................... 3-12集合演算子集合演算子集合演算子集合演算子 : UNION [ALL]、、、、INTERSECT、、、、MINUS .................................................................................. 3-13その他の組込み演算子その他の組込み演算子その他の組込み演算子その他の組込み演算子 ......................................................................................................................................... 3-16

ユーザー定義演算子ユーザー定義演算子ユーザー定義演算子ユーザー定義演算子 ............................................................................................................................................. 3-16

4 関数関数関数関数

SQL関数関数関数関数 .................................................................................................................................................................. 4-2

単一行関数 ....................................................................................................................................................... 4-4

集計関数 ........................................................................................................................................................... 4-6

分析関数 ........................................................................................................................................................... 4-8

オブジェクト参照関数 ................................................................................................................................. 4-14SQL関数のリスト(アルファベット順)関数のリスト(アルファベット順)関数のリスト(アルファベット順)関数のリスト(アルファベット順) ......................................................................................................... 4-14ABS ......................................................................................................................................................................... 4-14

ACOS ..................................................................................................................................................................... 4-15ADD_MONTHS .................................................................................................................................................. 4-15ASCII ..................................................................................................................................................................... 4-16

ASIN ...................................................................................................................................................................... 4-16ATAN ..................................................................................................................................................................... 4-17ATAN2 ................................................................................................................................................................... 4-17

AVG ....................................................................................................................................................................... 4-18BFILENAME ......................................................................................................................................................... 4-19BITAND ................................................................................................................................................................ 4-20

CEIL ....................................................................................................................................................................... 4-21

iii

Page 6: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

CHARTOROWID ............................................................................................................................................... 4-21CHR ........................................................................................................................................................................ 4-22

CONCAT ............................................................................................................................................................... 4-23CONVERT ............................................................................................................................................................ 4-24CORR ..................................................................................................................................................................... 4-25

COS ........................................................................................................................................................................ 4-26COSH ..................................................................................................................................................................... 4-27COUNT ................................................................................................................................................................. 4-27

COVAR_POP ....................................................................................................................................................... 4-29COVAR_SAMP ................................................................................................................................................... 4-31CUME_DIST ........................................................................................................................................................ 4-33

DENSE_RANK .................................................................................................................................................... 4-34DEREF ................................................................................................................................................................... 4-35DUMP .................................................................................................................................................................... 4-36

EMPTY_[B | C]LOB ........................................................................................................................................... 4-37EXP ......................................................................................................................................................................... 4-38FIRST_VALUE ..................................................................................................................................................... 4-38

FLOOR ................................................................................................................................................................... 4-40GREATEST ........................................................................................................................................................... 4-41GROUPING ......................................................................................................................................................... 4-41

HEXTORAW ........................................................................................................................................................ 4-43INITCAP ............................................................................................................................................................... 4-43INSTR .................................................................................................................................................................... 4-44

INSTRB ................................................................................................................................................................. 4-45LAG ........................................................................................................................................................................ 4-45LAST_DAY ........................................................................................................................................................... 4-46

LAST_VALUE ...................................................................................................................................................... 4-47LEAD ..................................................................................................................................................................... 4-49LEAST .................................................................................................................................................................... 4-51

LENGTH ............................................................................................................................................................... 4-51LENGTHB ............................................................................................................................................................. 4-52LN ........................................................................................................................................................................... 4-52

LOG ........................................................................................................................................................................ 4-53LOWER .................................................................................................................................................................. 4-53LPAD ..................................................................................................................................................................... 4-54

LTRIM ................................................................................................................................................................... 4-54MAKE_REF ........................................................................................................................................................... 4-55MAX ....................................................................................................................................................................... 4-56

iv

Page 7: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

MIN ........................................................................................................................................................................ 4-58MOD ...................................................................................................................................................................... 4-59

MONTHS_BETWEEN ........................................................................................................................................ 4-60NEW_TIME .......................................................................................................................................................... 4-61NEXT_DAY ........................................................................................................................................................... 4-62

NLS_CHARSET_DECL_LEN ........................................................................................................................... 4-62NLS_CHARSET_ID ............................................................................................................................................ 4-63NLS_CHARSET_NAME .................................................................................................................................... 4-64

NLS_INITCAP ..................................................................................................................................................... 4-64NLS_LOWER ....................................................................................................................................................... 4-65NLSSORT ............................................................................................................................................................. 4-66

NLS_UPPER ......................................................................................................................................................... 4-67NTILE .................................................................................................................................................................... 4-67NUMTODSINTERVAL ..................................................................................................................................... 4-69

NUMTOYMINTERVAL .................................................................................................................................... 4-70NVL ........................................................................................................................................................................ 4-71NVL2 ...................................................................................................................................................................... 4-72

PERCENT_RANK ............................................................................................................................................... 4-73POWER .................................................................................................................................................................. 4-74RANK .................................................................................................................................................................... 4-74

RATIO_TO_REPORT ......................................................................................................................................... 4-75RAWTOHEX ........................................................................................................................................................ 4-76REF ......................................................................................................................................................................... 4-77

REFTOHEX ........................................................................................................................................................... 4-78REGR_(線形リグレッション)関数(線形リグレッション)関数(線形リグレッション)関数(線形リグレッション)関数 ............................................................................................................... 4-78REPLACE .............................................................................................................................................................. 4-85

ROUND(数値関数)(数値関数)(数値関数)(数値関数) ........................................................................................................................................... 4-86ROUND(日付関数)(日付関数)(日付関数)(日付関数) ........................................................................................................................................... 4-87ROW_NUMBER .................................................................................................................................................. 4-87

ROWIDTOCHAR ............................................................................................................................................... 4-89RPAD ..................................................................................................................................................................... 4-89RTRIM ................................................................................................................................................................... 4-90

SIGN ...................................................................................................................................................................... 4-90SIN ......................................................................................................................................................................... 4-91SINH ...................................................................................................................................................................... 4-91

SOUNDEX ............................................................................................................................................................ 4-92SQRT ..................................................................................................................................................................... 4-93STDDEV ............................................................................................................................................................... 4-93

v

Page 8: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

STDDEV_POP ..................................................................................................................................................... 4-95STDDEV_SAMP ................................................................................................................................................. 4-96

SUBSTR ................................................................................................................................................................. 4-98SUBSTRB .............................................................................................................................................................. 4-99SUM ....................................................................................................................................................................... 4-99

SYS_CONTEXT ................................................................................................................................................. 4-101SYS_GUID .......................................................................................................................................................... 4-105SYSDATE ............................................................................................................................................................ 4-106

TAN ...................................................................................................................................................................... 4-107TANH .................................................................................................................................................................. 4-107TO_CHAR(日付変換)(日付変換)(日付変換)(日付変換) ..................................................................................................................................... 4-108

TO_CHAR(数値変換)(数値変換)(数値変換)(数値変換) ..................................................................................................................................... 4-109TO_DATE ........................................................................................................................................................... 4-110TO_LOB .............................................................................................................................................................. 4-111

TO_MULTI_BYTE ............................................................................................................................................. 4-112TO_NUMBER .................................................................................................................................................... 4-112TO_SINGLE_BYTE ........................................................................................................................................... 4-113

TRANSLATE ...................................................................................................................................................... 4-113TRANSLATE ... USING ................................................................................................................................... 4-114TRIM .................................................................................................................................................................... 4-116

TRUNC(数値関数(数値関数(数値関数(数値関数 ) .......................................................................................................................................... 4-117TRUNC(日付関数)(日付関数)(日付関数)(日付関数) .......................................................................................................................................... 4-117UID ....................................................................................................................................................................... 4-118

UPPER ................................................................................................................................................................. 4-118USER .................................................................................................................................................................... 4-119USERENV ........................................................................................................................................................... 4-120

VALUE ................................................................................................................................................................. 4-121VAR_POP ........................................................................................................................................................... 4-122VAR_SAMP ........................................................................................................................................................ 4-123

VARIANCE ........................................................................................................................................................ 4-125VSIZE ................................................................................................................................................................... 4-126ROUNDおよびおよびおよびおよび TRUNC日付関数日付関数日付関数日付関数 ................................................................................................................. 4-127

ユーザー定義ファンクションユーザー定義ファンクションユーザー定義ファンクションユーザー定義ファンクション ........................................................................................................................... 4-128

前提条件 ....................................................................................................................................................... 4-128

名前の優先順位 ........................................................................................................................................... 4-129

vi

Page 9: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

5 式、条件および問合せ式、条件および問合せ式、条件および問合せ式、条件および問合せ

式式式式 ............................................................................................................................................................................... 5-2

単純式 ............................................................................................................................................................... 5-4

複合式 ............................................................................................................................................................... 5-5

変数式 ............................................................................................................................................................... 5-5

組込み関数式 ................................................................................................................................................... 5-6

関数式 ............................................................................................................................................................... 5-6

型コンストラクタ式 ....................................................................................................................................... 5-7

CAST式 ........................................................................................................................................................... 5-9

CURSOR式 ................................................................................................................................................... 5-11

オブジェクト・アクセス式 ......................................................................................................................... 5-12

DECODE式 ................................................................................................................................................... 5-13

CASE式 ......................................................................................................................................................... 5-14

式のリスト ..................................................................................................................................................... 5-15

条件条件条件条件 ......................................................................................................................................................................... 5-15

単純比較条件 ................................................................................................................................................. 5-17

グループ比較条件 ......................................................................................................................................... 5-18

メンバーシップ条件 ..................................................................................................................................... 5-18

範囲条件 ......................................................................................................................................................... 5-19

NULL条件 .................................................................................................................................................... 5-19

EXISTS条件 ................................................................................................................................................... 5-19

LIKE条件 ....................................................................................................................................................... 5-19

複合条件 ......................................................................................................................................................... 5-20問合せおよび副問合せ問合せおよび副問合せ問合せおよび副問合せ問合せおよび副問合せ ......................................................................................................................................... 5-20

単純な問合せの作成 ..................................................................................................................................... 5-20

階層問合せ ..................................................................................................................................................... 5-21

問合せ結果のソート ..................................................................................................................................... 5-22

結合 ................................................................................................................................................................. 5-23

副問合せの使用 ............................................................................................................................................. 5-25

ネストした副問合せのネスト解除 ............................................................................................................. 5-27

DUAL表からの選択 .................................................................................................................................... 5-27

分散問合せ ..................................................................................................................................................... 5-28

vii

Page 10: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

6 SQL文について文について文について文について

SQL文の概要文の概要文の概要文の概要 .......................................................................................................................................................... 6-2データベース・タスクに使用するデータベース・タスクに使用するデータベース・タスクに使用するデータベース・タスクに使用する SQL文の検索文の検索文の検索文の検索 ............................................................................................ 6-5

7 SQL文文文文 : ALTER CLUSTER~~~~ ALTER SYSTEM

ALTER CLUSTER ................................................................................................................................................. 7-3ALTER DATABASE ............................................................................................................................................. 7-7ALTER DIMENSION ......................................................................................................................................... 7-33

ALTER FUNCTION ............................................................................................................................................ 7-36ALTER INDEX ..................................................................................................................................................... 7-38ALTER JAVA ....................................................................................................................................................... 7-56

ALTER MATERIALIZED VIEW ...................................................................................................................... 7-59ALTER MATERIALIZED VIEW LOG ............................................................................................................ 7-73ALTER OUTLINE ............................................................................................................................................... 7-79

ALTER PACKAGE .............................................................................................................................................. 7-81ALTER PROCEDURE ........................................................................................................................................ 7-84ALTER PROFILE ................................................................................................................................................. 7-87

ALTER RESOURCE COST ............................................................................................................................... 7-91ALTER ROLE ....................................................................................................................................................... 7-94ALTER ROLLBACK SEGMENT ...................................................................................................................... 7-96

ALTER SEQUENCE ............................................................................................................................................ 7-99ALTER SESSION .............................................................................................................................................. 7-101ALTER SYSTEM ................................................................................................................................................ 7-123

索引索引索引索引

viii

Page 11: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

はじめにはじめにはじめにはじめに

このマニュアルでは、Oracleのデータベース内の情報を管理するために使用される構造化問合せ言語(Structured Query Language: SQL)について説明します。Oracle SQLは、米国規格協会(American National Standards Institute: ANSI)と国際標準化機構(ISO)の SQL92規格に基本レベルで準拠していますが、さらに多くの内容を盛り込んでいます。

参照参照参照参照 :

� SQLに対するOracleプロシージャ型言語拡張機能であるPL/SQLの詳細は、『Oracle8i PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。

� Oracle埋込み SQLの詳細は、『Oracle8i Pro*C/C++プリコンパイラ・プログラマーズ・ガイド』、『Programmer’s Guide to SQL*Module for Ada』および『Oracle8i Pro*COBOLプリコンパイラ・プログラマーズ・ガイド』を参照してください。

ix

Page 12: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

特徴および機能特徴および機能特徴および機能特徴および機能『Oracle8i SQLリファレンス』には、Oracle8iおよび Oracle8i Enterprise Edition製品の特徴および機能に関する情報が含まれています。Oracle8iおよび Oracle8i Enterprise Editionの基本的な機能は同じです。ただし、Enterprise Editionのみで使用できる拡張機能がいくつかあります。また、オプションとして使用できる機能もあります。

対象読者対象読者対象読者対象読者このマニュアルは、すべての Oracle SQLユーザーを対象としています。

Oracle8iの新機能の新機能の新機能の新機能このマニュアルでは、Oracle8iの次の新機能を記載しています。

リリースリリースリリースリリース 8.1.7このリリースでは、次の SQL関数が追加されています。

� BITAND(4-20ページ)

� NVL2(4-72ページ)

リリースリリースリリースリリース 8.1.6このリリースでは、次の SQL関数が追加されています。

� CORR(4-25ページ)

� COVAR_POP(4-29ページ)

� COVAR_SAMP(4-31ページ)

� CUME_DIST(4-33ページ)

� DENSE_RANK(4-34ページ)

� FIRST_VALUE(4-38ページ)

� LAG(4-45ページ)

� LAST_VALUE(4-47ページ)

� LEAD(4-49ページ)

� NTILE(4-67ページ)

� NUMTOYMINTERVAL(4-70ページ)

x

Page 13: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

� NUMTODSINTERVAL(4-69ページ)

� PERCENT_RANK(4-73ページ)

� RATIO_TO_REPORT(4-75ページ)

� REGR_(線形リグレッション)関数(4-78ページ)

� STDDEV_POP(4-95ページ)

� STDDEV_SAMP(4-96ページ)

� VAR_POP(4-122ページ)

� VAR_SAMP(4-123ページ)

さらに、次の機能が拡張されています。

� 集計関数は機能性が拡張されました。4-6ページの「集計関数」を参照してください。

� LOB記憶パラメータを指定するとき、読取り専用で LOBキャッシュを指定できます。10-7ページの「CREATE TABLE」を参照してください。

� 式に関する項に、新しい式が追加されました。5-14ページの「CASE式」を参照してください。

� 副問合せのネスト解除が可能になりました。5-27ページの「ネストした副問合せのネスト解除」を参照してください。

リリースリリースリリースリリース 8.1.5リリース 8.1.5では、次の SQL文が追加されています。

� ALTER DIMENSION(7-33ページ)

� ALTER JAVA(7-56ページ)

� ALTER OUTLINE(7-79ページ)

� ASSOCIATE STATISTICS(8-108ページ)

� CALL(8-126ページ)

� CREATE CONTEXT(9-13ページ)

� CREATE DIMENSION(9-34ページ)

� CREATE INDEXTYPE(9-75ページ)

� CREATE JAVA(9-78ページ)

� CREATE OPERATOR(9-112ページ)

� CREATE OUTLINE(9-116ページ)

� CREATE TEMPORARY TABLESPACE(10-63ページ)

xi

Page 14: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

� DISASSOCIATE STATISTICS(10-121ページ)

� DROP CONTEXT(10-126ページ)

� DROP DIMENSION(10-128ページ)

� DROP INDEXTYPE(10-135ページ)

� DROP JAVA(10-137ページ)

� DROP OPERATOR(10-144ページ)

� DROP OUTLINE(10-146ページ)

構成構成構成構成このマニュアルの構成は次のとおりです。

第第第第 1章「概要」章「概要」章「概要」章「概要」SQLについての定義と、その歴史およびリレーショナル・データベースへの SQLを使用したアクセスのメリットについて説明します。

第第第第 2章「章「章「章「Oracle SQLの基本要素」の基本要素」の基本要素」の基本要素」Oracleデータベースと Oracle SQLの基本的な構成ブロックについて説明します。

第第第第 3章「演算子」章「演算子」章「演算子」章「演算子」SQLの演算子を、式や条件の中で組み合せて使用する方法について説明します。

第第第第 4章「関数」章「関数」章「関数」章「関数」SQLの関数を、式や条件の中で組み合せて使用する方法について説明します。

第第第第 5章「式、条件および問合せ」章「式、条件および問合せ」章「式、条件および問合せ」章「式、条件および問合せ」SQL式、条件および問合せを使用してデータベースから情報を取り出す様々な方法について説明します。

第第第第 6章「章「章「章「SQL文について」文について」文について」文について」SQL文の様々な型を示し、データベース・タスクに適切な SQL文を見つけるための表を示します。

xii

Page 15: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

第第第第 7章「章「章「章「SQL文文文文 : ALTER CLUSTER~~~~ ALTER SYSTEM」」」」第第第第 8章「章「章「章「SQL文文文文 : ALTER TABLE~~~~ constraint_clause」」」」第第第第 9章「章「章「章「SQL文文文文 : CREATE CLUSTER~~~~ CREATE SEQUENCE」」」」第第第第 10章「章「章「章「SQL文文文文 : CREATE SYNONYM~~~~ DROP ROLLBACK SEGMENT」」」」第第第第 11章「章「章「章「SQL文文文文 : DROP SEQUENCE~~~~ UPDATE」」」」すべての SQL文をアルファベット順に説明します。

付録付録付録付録 A「構文図」「構文図」「構文図」「構文図」このマニュアルでの構文図の読み方を説明します。

付録付録付録付録 B「「「「Oracleと標準と標準と標準と標準 SQL」」」」ANSIおよび ISO規格に対する Oracleの準拠性について説明します。

付録付録付録付録 C「「「「Oracleの予約語」の予約語」の予約語」の予約語」Oracle内部で使用する予約語を示します。

リリースリリースリリースリリース 8.1.7のマニュアルでの構成変更のマニュアルでの構成変更のマニュアルでの構成変更のマニュアルでの構成変更すべての SQL文を含む章(以前の第 7章)は、5つの章に分割されました。

リリース 8.1.7では、次の SQL文が変更されました。

� SQL文GRANT object_privilegesおよびGRANT system_privileges_and_rolesは、GRANT文に結合されました。11-31ページの「GRANT」を参照してください。

� SQL文 REVOKE schema_object_privilegesおよび REVOKE system_privileges_and_rolesは、REVOKE文に結合されました。11-73ページの「REVOKE」を参照してください。

� SQL文 AUDIT sql_statementsおよび AUDIT schema_objectsは、AUDIT文に結合されました。8-112ページの「AUDIT」を参照してください。

� SQL文 NOAUDIT sql_statementsおよび NOAUDIT schema_objectsは、NOAUDIT文に結合されました。11-66ページの「NOAUDIT」を参照してください。

xiii

Page 16: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

リリースリリースリリースリリース 8.1.5のマニュアルでの構成変更のマニュアルでの構成変更のマニュアルでの構成変更のマニュアルでの構成変更リリース 8.0のマニュアルを使用していたユーザーは、次の項が移動または改名されているため注意してください。

� 「書式モデル」の項は、第 2章(2-39ページ)に移動しました。

� 第 3章は、次の章に分割されました。

� 第 3章「演算子」

� 第 4章「関数」

� 第 5章「式、条件および問合せ」

5-20ページの「問合せおよび副問合せ」では、11-88ページの「SELECTおよび副問合せ」の構文および比較情報の背景について説明します。

� 新規の第 6章「SQL文について」は、特定のタスクに対する適切な SQL文を見つけやすくするために追加されました。

� 「archive_log_clause」は個別の項ではなく、7-123ページの「ALTER SYSTEM」に含められています。

� 「deallocate_unused_clause」は個別の項ではなく、8-2ページの「ALTER TABLE」、7-3ページの「ALTER CLUSTER」および 7-38ページの「ALTER INDEX」に含められています。

� 「disable_clause」は個別の項ではなく、10-7ページの「CREATE TABLE」および8-2ページの「ALTER TABLE」に含められています。

� 「drop_clause」は個別の項ではなく、「ALTER TABLE文」の「drop_constraint_clause」になりました(ALTER TABLE文の新しいdrop_column_clauseと区別するため)。8-2ページの「ALTER TABLE」を参照してください。

� 「enable_clause」は個別の項ではなく、10-7ページの「CREATE TABLE」および 8-2ページの「ALTER TABLE」に含められています。

� 「parallel_clause」は個別の項ではなく、関連のある様々な文に含まれています。

� 「recover_clause」は個別の項ではなく、「ALTER DATABASE文」に含まれています。これは、recover_clauseのリカバリ機能が向上し、ALTER DATABASE文を介して常に実行されるためです。7-7ページの「ALTER DATABASE」を参照してください。

xiv

Page 17: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

� 「スナップショットスナップショットスナップショットスナップショット」および「スナップショット・ログスナップショット・ログスナップショット・ログスナップショット・ログ」の項は、移動および改名されています。スナップショット機能が大幅に向上し、これらのオブジェクトをマテリアラマテリアラマテリアラマテリアライズド・ビューイズド・ビューイズド・ビューイズド・ビューと呼びます。9-86ページの「CREATE MATERIALIZED VIEW」、7-59ページの「ALTER MATERIALIZED VIEW」、10-140ページの「DROP MATERIALIZED VIEW」、9-104ページの「CREATE MATERIALIZED VIEW LOG」、7-73ページの「ALTER MATERIALIZED VIEW LOG」、および 10-142ページの「DROP MATERIALIZED VIEW LOG」を参照してください。

� 「副問合せ副問合せ副問合せ副問合せ」の項は、「SELECT」の項と結合されました。11-88ページの「SELECTおよび副問合せ」を参照してください。

このマニュアルで使用する表記規則このマニュアルで使用する表記規則このマニュアルで使用する表記規則このマニュアルで使用する表記規則この項では、このマニュアルで使用する表記上の規則について説明します。

� 本文

� 構文図および表記法

� コード例

� サンプル・データ

本文本文本文本文このマニュアルの本文は、次の規則に従って記述されています。

構文図および表記法構文図および表記法構文図および表記法構文図および表記法

構文図構文図構文図構文図 このマニュアルでは、第 7章~第 11章における SQL文の説明や、第 2章「Oracle SQLの基本要素」、第 3章「演算子」、第 4章「関数」および第 5章「式、条件および問合せ」におけるその他の SQL言語の要素の説明に、構文図を使用しています。これらの構文図では、次のとおり、線と矢印を使用して構文構造を示しています。

大文字 アルファベットの大文字は、SQLキーワード、ファイル名および初期化パラメータを示します。

イタリック イタリック体の文字は、SQL文のパラメータを示します。

太字太字太字太字 太字は、重要な意味を持つ用語を示します。

xv

Page 18: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

このような構文図に慣れていない場合、付録 A「構文図」を参照して、読み方を理解してください。そこでは、構文図の構成要素と、SQL文の書き方の例を説明しています。構文図は、次の項目で構成されます。

キーワードキーワードキーワードキーワード キーワードは、SQL言語の中では特別な意味を持っています。このマニュアルの構文図では、キーワードは大文字で記述されています。キーワードは、構文図に表記されているとおりに使用する必要がありますが、SQL文内では大文字でも小文字でも使用できます。たとえば、CREATE TABLE文では、CREATE TABLE構文図に表記されているとおり、CREATEキーワードを使用して文を開始する必要があります。

パラメータパラメータパラメータパラメータ パラメータは、構文図の中でプレースホルダの役割を果たします。パラメータは、小文字で記述されます。パラメータは、通常はデータベース・オブジェクト名、Oracleデータ型名または式です。構文図にパラメータがある場合、実際の SQL文では、そのパラメータを適切な型のオブジェクトまたは式に置き換えます。たとえば、CREATE TABLE文を記述する場合、構文図の tableパラメータのかわりに、作成する表の名前(たとえば emp)を使用します。パラメータ名は、本文中ではイタリック体で記述されています。

コード例コード例コード例コード例このマニュアルでは、多数の SQL文の例を示しています。これらの例は、SQL文の要素の使用方法を示しています。CREATE TABLE文の例を次に示します。

CREATE TABLE accounts ( accno NUMBER, owner VARCHAR2(10), balance NUMBER(7,2) );

例は、本文と異なるフォントで表記されています。

次の規則に従って、例では大文字と小文字を区別して使用しています。

� CREATEや NUMBERなどのキーワードは、大文字で表記しています。

� accountsや accnoなどのデータベースのオブジェクトやその一部の名前は、小文字で表記しています。ただし、本文では大文字で表記しています。

� PL/SQLブロックは、イタリック体で表記しています。このブロックのキーワードとパラメータが、SQLのキーワードとパラメータでない場合、このマニュアルには記載されていません。詳細は、『Oracle8i PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。

COMMITWORK

COMMENT ’ text ’

FORCE ’ text ’, integer

;

xvi

Page 19: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

多くの例では、その例で作成しないオブジェクトが存在するように記述されています。このようなオブジェクトを作成してからでないと、その例は想定されたように機能しません。

SQLでは、(引用符で囲まれた識別子を除いて)大文字と小文字は区別されないため、実際の SQL文を作成するときに、これらの規則に従う必要はありません。ただし、このように区別しておくことで文が読みやすくなります。

Oracle Toolsによっては、SQL文を特殊文字で終了させる必要がある場合があります。たとえば、このマニュアルで示すコード例は SQL*Plusで記述されているため、セミコロン(;)で終了しています。これらの例文を Oracleに対して発行する場合は、ご使用の Oracle Toolごとに決められた特殊文字を使用して文を終了させてください。

サンプル・データサンプル・データサンプル・データサンプル・データこのマニュアルに記載している例の多くでは、サンプル表に対して操作を行います。これらの表の一部は、配布メディアに収録されている SQLスクリプトで定義されています。多くのオペレーティング・システムでは、このスクリプトの名前が UTLSAMPL.SQLになっていますが、正確な名前と位置はオペレーティング・システムによって異なります。このスクリプトでは、サンプル・ユーザーを作成し、ユーザー scott(パスワード : tiger)のスキーマに次のサンプル表を作成します。

CREATE TABLE dept (deptno NUMBER(2) CONSTRAINT pk_dept PRIMARY KEY, dname VARCHAR2(14), loc VARCHAR2(13) ); CREATE TABLE emp (empno NUMBER(4) CONSTRAINT pk_emp PRIMARY KEY, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2) CONSTRAINT fk_deptno REFERENCES dept ); CREATE TABLE bonus (ename VARCHAR2(10), job VARCHAR2(9), sal NUMBER, comm NUMBER ); CREATE TABLE salgrade (grade NUMBER, losal NUMBER, hisal NUMBER );

xvii

Page 20: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

このスクリプトは、サンプル表に次のデータを挿入します。

SELECT * FROM dept; DEPTNO DNAME LOC ------- ---------- --------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON SELECT * FROM emp;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- ------- --------- ------ --------- ------ ------ ------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 SELECT * FROM salgrade;

GRADE LOSAL HISAL ----- ----- ----- 1 700 1200 2 1201 1400 3 1401 2000 4 2001 3000 5 3001 9999

bonus表には、データが含まれません。

スクリプトのすべての操作を実行するには、ユーザー SYSTEMとして Oracleにログインしているときにスクリプトを実行してください。

xviii

Page 21: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

1

概要概要概要概要

構造化問合せ言語(SQL)は、Oracleデータベース内のデータにアクセスするために、すべてのプログラムおよびユーザーが使用する必要がある一連の文です。アプリケーション・プログラムや Oracle Toolsを使用すると、SQLを直接使用しなくてもデータベースにアクセスできることがあります。ただし、アプリケーションがユーザーの要求を実行するときには、必ず SQLを使用します。この章では、多くのリレーショナル・データベース・システムに採用されている SQLの背景について説明します。

この章では、次の内容を説明します。

� SQLの歴史

� SQL規格

� 埋込み SQL

� 字句規則

� Toolsのサポート

概要 1-1

Page 22: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQLの歴史

SQLの歴史の歴史の歴史の歴史1970年 6月に ACM(Association of Computer Machinery)が刊行した「Communications of the ACM」誌で、E. F. Codd博士の論文「大型共用データ・バンク用のデータのリレーショナル・モデル」が発表されました。Codd博士のモデルは、現在ではリレーショナル・データベース管理システム(RDBMS)の完成したモデルとして認められています。構造化英語問合せ言語(SEQUEL)は、IBM社が Codd博士のモデルを使用するために開発したものです。この SEQUELが後の SQLです。1979年、Relational Software, Inc.(現在のオラクル社)は、商業的に利用可能な最初の SQLの処理系を導入しました。今日、SQLは標準のRDBMS言語として認められています。

SQL規格規格規格規格オラクル社は、業界標準に準拠するよう努力し、SQL標準化委員会にも積極的に参加しています。業界で認知されている委員会には、米国規格協会(ANSI)、および国際電気標準会議(IEC)が電気・電子部門を担当している国際標準化機構(ISO)があります。ANSIと ISO/

IECはともに、SQLをリレーショナル・データベースの標準言語として認めています。新しい SQL規格がこの両機関から同時に発表された場合、その規格の名前は、各機関の規則に従って付けられますが、技術的な詳細は同じです。

1999年 6月に採用された最新の SQL規格を SQL-99といいます。新規格の正式名称は、次のとおりです。

� ANSI X3.135-1999、『Database Language SQL』、Part 1「Framework」、Part 2「Foundation」、Part 5「Binding」

� ISO/IEC 9075:1999、『Database Language SQL』、Part 1「Framework」、Part 2「Foundation」、Part 5「Binding」

この規格の以前のバージョン(一般には SQL-92として知られています)は、SQL-99に置き換えられました。SQL-99は、SQL-92の上位互換の拡張です(SQL-99の Part 2「Foundation」の Annex Eにある少数の非互換を除きます)。

SQL-92では、規格への準拠に、基本、変換、中間および完全の 4つの準拠レベルを定義していました。SQL規格に準拠する処理系は、基本レベル以上の SQLに準拠している必要があります。Oracle8iは、連邦情報処理標準(FIPS)の PUB 127-2に記載されているとおり、基本レベルの SQLに完全に準拠していますが、変換レベル、中間レベルまたは完全レベルに準拠する多くの機能もあります。

1-2 Oracle8i SQLリファレンス Vol.1

Page 23: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL規格

SQL-99に対する最低限の準拠レベルは、Coreとして知られています。Core SQL-99は、SQL-92基本レベル仕様のスーパーセットです。Oracle8iも、SQL-99 Core仕様と幅広い互換性があります。ただし、いくつかの SQL-99 Core機能は、現在、Oracle8iでは実装されてないか、Oracle8i実装とは異なります。オラクル社は、将来のリリースで SQL-99 Core機能を完全にサポートする予定です。また、既存のアプリケーションへの上位互換を提供します。

SQLの特長の特長の特長の特長SQLは、アプリケーション・プログラマ、データベース管理者、管理職、エンド・ユーザーなど、あらゆる分野のユーザーに利益をもたらします。技術的な言い方をすると、SQLはデータ副言語です。SQLの目的は、Oracleのようなリレーショナル・データベースとのインタフェースを提供することであり、すべての SQL文はデータベースに対する命令です。この点において、SQLは、Cや BASICのような汎用プログラミング言語と異なります。SQLには、次のような特長があります。

� 個々の単位としてではなく、グループとして一連のデータを処理します。

� データへの自動的なナビゲーション・アクセス(経路設定)を実行します。

� SQLで使用する文は、それぞれが複雑、強力で、スタンドアロン型の文です。これまで、SQLにはフロー制御文は含まれていませんでしたが、SQL, ISO/IEC 9075-5 : 1996の最近認められたオプション部分にはフロー制御文が含まれています。フロー制御文は、永続保存モジュール(PSM)としてよく知られており、SQLの拡張機能であるOracleの PL/SQLは、PSMに似ています。

SQLでは、データを論理的なレベルで処理できます。処理系について考えることは、データの細部を操作する場合のみで済みます。たとえば、表から一連の行を検索するには、行をフィルタ処理するための条件を定義します。この条件を満たすすべての行が 1つの手順で検索され、ユーザー、別の SQL文またはアプリケーションに 1つの単位として渡されます。行単位で処理する必要がなく、行の物理的な格納方法や検索方法を気にする必要もありません。SQL文を実行すると、Oracleに備わっている問合せオプティマイザが働きます。この機能によって、指定したデータに最も速くアクセスする方法が決定されます。Oracleには、オプティマイザの性能を向上させる方法も用意されています。

SQL文を使用して、次の処理を行うことができます。

� データの問合せ

� 表の中の行の挿入、更新、削除

� オブジェクトの作成、置換、変更、削除

参照参照参照参照 : Oracleおよび SQLの詳細は、付録 B「Oracleと標準 SQL」を参照してください。

概要 1-3

Page 24: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

埋込み SQL

� データベースとデータベース・オブジェクトへのアクセス制御

� データベースの一貫性と整合性の保証

SQLでは、前述のすべてのタスクを 1つの一貫性のある言語に統一しました。

すべてのリレーショナル・データベースに共通の言語すべてのリレーショナル・データベースに共通の言語すべてのリレーショナル・データベースに共通の言語すべてのリレーショナル・データベースに共通の言語すべての主なリレーショナル・データベース管理システムは、SQLをサポートしているため、SQLで得た技術的な知識を他のデータベースでも生かすことができます。さらに、SQLで記述されたプログラムは移植性に優れているため、わずかな変更のみで他のデータベースに移行できます。

埋込み埋込み埋込み埋込み SQL埋込み SQLは、プロシージャ型プログラミング言語に埋め込んで使用する標準の SQL文です。埋込み SQL文は、Oracleプリコンパイラ関連のマニュアルに記載されています。

埋込み SQLは、次のコマンドの集まりです。

� 対話形式の Toolsを使用して、SQLで使用できるすべての SQLコマンド(SELECT、INSERTなど)。

� プロシージャ型プログラミング言語に標準 SQLコマンドを統合する動的 SQL実行コマンド(PREPARE、OPENなど)。

埋込み SQLには、標準 SQLコマンドの拡張機能も含まれています。埋込み SQLは、Oracleプリコンパイラによってサポートされます。Oracleプリコンパイラによって、埋込み SQL文が解析され、プロシージャ型言語のコンパイラが処理できる文に変換されます。

次の各 Oracleプリコンパイラによって、埋込み SQLのプログラムは異なるプロシージャ型言語に変換されます。

� Pro*C/C++プリコンパイラ

� Pro*COBOLプリコンパイラ

� SQL*Module for ADA

参照参照参照参照 : Oracleプリコンパイラおよび埋込み SQL文の定義については、『Programmer’s Guide to SQL*Module for Ada』、『Oracle8i Pro*C/C++プリコンパイラ・プログラマーズ・ガイド』および『Oracle8i Pro*COBOLプリコンパイラ・プログラマーズ・ガイド』を参照してください。

1-4 Oracle8i SQLリファレンス Vol.1

Page 25: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

Toolsのサポート

字句規則字句規則字句規則字句規則SQL文の記述に関する次の字句規則は、Oracleの SQL実装に対してのみ適用されますが、他のすべての SQL実装にも一般的に適用されます。

SQL文では、文の定義の中で空白が入る可能性がある任意の位置に、1つ以上のタブ、改行文字、空白、コメントを記述できます。したがって、Oracleは、次の 2つの文を同一と解釈します。

SELECT ENAME,SAL*12,MONTHS_BETWEEN(HIREDATE,SYSDATE) FROM EMP;

SELECT ENAME, SAL * 12, MONTHS_BETWEEN( HIREDATE, SYSDATE )FROM EMP;

予約語、キーワード、識別子およびパラメータは、大文字と小文字を区別せずに記述できます。テキスト・リテラルと引用符で囲んだ名前では、大文字と小文字は区別されます。

Toolsのサポートのサポートのサポートのサポートほぼすべての Oracle Toolsにおいて、Oracle SQLのすべての機能をサポートしています。このマニュアルでは、SQLのすべての機能について説明しています。ご使用の Oracle Toolでサポートしていない機能がある場合は、『Oracle8i SQL*Plusユーザーズ・ガイドおよびリファレンス』など、その Toolについて記載しているマニュアルに、その制限が示されているため参照してください。

Trusted Oracleを使用している場合は、その環境に固有の SQL文について、Trusted Oracle関連のドキュメントを参照してください。

参照参照参照参照 : 構文の説明は、2-32ページの「Text(テキスト)」を参照してください。

概要 1-5

Page 26: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

Toolsのサポート

1-6 Oracle8i SQLリファレンス Vol.1

Page 27: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

Oracle SQLの基本

2

Oracle SQLの基本要素の基本要素の基本要素の基本要素

この章では、Oracle SQLの基本要素に関する参照情報を説明します。これらの要素は、SQL文の最も単純な構成ブロックです。したがって、第 7章~第 11章で説明されている文を使用する前に、この章で説明する次の概念を理解し、第 3章「演算子」、第 4章「関数」、第 5章「式、条件および問合せ」および第 6章「SQL文について」をよく読んでおく必要があります。

この章では、次の内容を説明します。

� データ型

� リテラル

� 書式モデル

� NULL

� 疑似列

� コメント

� データベース・オブジェクト

� スキーマ・オブジェクト名および修飾子

� スキーマ・オブジェクトの構文および SQL文の構成要素

要素 2-1

Page 28: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

データ型データ型データ型データ型Oracleが処理する値は、それぞれデータ型データ型データ型データ型を持ちます。値のデータ型は、固定されたプロパティの集合をその値に対応付けます。このプロパティに応じて、Oracleは、あるデータ型の値を別のデータ型の値と区別して扱います。たとえば、NUMBERデータ型の値は加算できますが、RAWデータ型の値は加算できません。

表やクラスタを作成する場合、各列にデータ型を指定する必要があります。プロシージャやストアド・ファンクションを作成する場合は、その各引数にデータ型を指定する必要があります。データ型によって、各列が含むことができる値のドメイン、または各引数が持つことができる値のドメインが決まります。たとえば、DATE列は、2月 29日(うるう年を除く)、2または 'SHOE'という値を受け入れることはできません。列に入れられる各値は、列のデータ型を受け継ぎます。たとえば、DATE列に '01-JAN-98'を挿入すると、Oracleはそれが有効な日付に変換されることを確認してから、文字列 '01-JAN-98'を DATE値として扱います。

Oracleには、図 2-1に示すとおり、多くの組込みデータ型およびいくつかのユーザー定義型のカテゴリがあります。

図図図図 2-1 Oracleタイプ・カテゴリタイプ・カテゴリタイプ・カテゴリタイプ・カテゴリ

次に、Oracle組込みデータ型の構文を示します。また、表 2-1に、Oracle組込みデータ型の概要を示します。この項の残りの部分では、これらのデータ型および様々なユーザー定義型について説明します。

組込みデータ型�

ユーザー定義型のカテゴリ�

構造型のカテゴリ�

オブジェクト型�

コレクション型のカテゴリ�

VARRAYS

ネストした表�

REFS(オブジェクトの参照)�

2-2 Oracle8i SQLリファレンス Vol.1

Page 29: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

組込みデータ型組込みデータ型組込みデータ型組込みデータ型

注意注意注意注意 : Oracleプリコンパイラによって、埋込み SQLプログラムで他のデータ型が区別されます。このようなデータ型は、外部データ型と呼ばれ、ホスト変数に対応付けられています。組込み型およびユーザー定義データ型を外部データ型と混同しないでください。Oracleによる外部データ型と組込み型またはユーザー定義データ型の間の変換など、外部データ型の詳細は、『Oracle8i Pro*COBOLプリコンパイラ・プログラマーズ・ガイド』、『Oracle8i Pro*C/C++プリコンパイラ・プログラマーズ・ガイド』および『Programmer’s Guide to SQL*Module for Ada』を参照してください。

CHAR ( size )

VARCHAR2 ( size )

NCHAR ( size )

NVARCHAR2 ( size )

NUMBER( precision

, scale)

LONG

LONG RAW

RAW ( size )

DATE

BLOB

CLOB

NCLOB

BFILE

ROWID

UROWID( size )

ANSI_supported_types

Oracle SQLの基本要素 2-3

Page 30: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

次に、ANSIがサポートしているデータ型について示します。また、表 2-2に、ANSIがサポートしているデータ型を Oracle組込みデータ型にマップする方法を示します。

ANSIがサポートしているデータ型がサポートしているデータ型がサポートしているデータ型がサポートしているデータ型

CHARACTER ( size )

CHARACTER VARYING ( size )

CHAR VARYING ( size )

VARCHAR ( size )

NATIONAL CHARACTER ( size )

NATIONAL CHAR ( size )

NATIONAL CHARACTER VARYING ( size )

NATIONAL CHAR VARYING ( size )

NCHAR VARYING ( size )

NUMERIC( precision

, scale)

DECIMAL( precision

, scale)

DEC( precision

, scale)

INTEGER

INT

SMALLINT

FLOAT( size )

DOUBLE PRECISION

REAL

2-4 Oracle8i SQLリファレンス Vol.1

Page 31: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

表表表表 2-1 組込みデータ型の概要組込みデータ型の概要組込みデータ型の概要組込みデータ型の概要

コードコードコードコード a 組込みデータ型組込みデータ型組込みデータ型組込みデータ型 説明説明説明説明

1 VARCHAR2(size) 最大長が sizeバイトの可変長文字列。最大サイズは4000、最小サイズは 1です。VARCHAR2では、sizeを指定する必要があります。

1 NVARCHAR2(size) 最大長が size文字またはバイト(選択された各国語キャラクタ・セットによる)の可変長文字列。最大サイズは、各文字を保存するために必要なバイト数によって決定されますが、最大 4000バイトです。NVARCHAR2では、sizeを指定する必要があります。

2 NUMBER(p,s) 精度 p、位取り sを持つ数。精度 pには 1~ 38の値を指定できます。位取り sには -84~ 127の値を指定できます。

8 LONG 最大 2GB(231から 1を引いたバイト数)の可変長文字データ。

12 DATE 紀元前 4712年 1月 1日~紀元 9999年 12月 31日までの日付を指定します。

23 RAW(size) 長さが sizeバイトのバイナリ・データ。最大サイズは2000バイトです。RAW値では、sizeを指定する必要があります。

24 LONG RAW 最大 2GBの可変長バイナリ・データ。

69 ROWID 表の中の行のアドレスを一意に表す 16進文字列。主に、ROWID疑似列によって戻される値のためのデータ型です。

208 UROWID [(size)] 索引構成表の行のアドレスを論理的に表す 16進文字列。オプションの sizeは、UROWID型の列のサイズです。最大サイズおよびデフォルトは 4000バイトです。

96 CHAR(size) 長さ sizeバイトの固定長文字データ。最大サイズは2000バイトです。デフォルトおよび最小サイズは 1です。

96 NCHAR(size) 長さが size文字またはバイト(各国語キャラクタ・セットによる)の固定長文字データ。最大サイズは、各文字を保存するために必要なバイト数によって決定されますが、最大 2000バイトです。デフォルトと最小サイズは 1文字または 1バイトです(キャラクタ・セットによる)。

a データ型のコードは、Oracleが内部的に使用します。DUMP関数によって、列またはオブジェクト属性のデータ型コードが戻されます。

Oracle SQLの基本要素 2-5

Page 32: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

文字データ型文字データ型文字データ型文字データ型文字データ型を使用すると、単語や自由形式のテキストなど、データベース・キャラクタ・セットまたは各国語キャラクタ・セット内の文字(英数字)を格納できます。文字データ型は、他のデータ型より制限が少ないため、プロパティも少なくなります。たとえば、文字データ型の列は、すべての英数字の値を格納できますが、NUMBER型の列が格納できるのは数値のみです。

文字データは、7ビット ASCIIや EBCDICなど、データベース作成時に指定されたキャラクタ・セットの 1つに対応しているバイト値で文字列に格納されます。Oracleは、シングルバイトのキャラクタ・セットとマルチバイトのキャラクタ・セットの両方をサポートします。

112 CLOB シングルバイト・キャラクタを含むキャラクタ・ラージ・オブジェクト。固定幅および可変幅のキャラクタ・セットがサポートされます。両方のキャラクタ・セットで CHARデータベース・キャラクタ・セットを使用します。最大サイズは 4GBです。

112 NCLOB マルチバイト・キャラクタを含むキャラクタ・ラージ・オブジェクト。固定幅および可変幅のキャラクタ・セットがサポートされます。両方のキャラクタ・セットで NCHARデータベース・キャラクタ・セットを使用します。最大サイズは 4GBです。各国語キャラクタ・セットのデータを保存します。

113 BLOB バイナリ・ラージ・オブジェクト。最大サイズは 4GBです。

114 BFILE データベース外に保存された大きなバイナリ・ファイルへロケータが格納されます。データベース・サーバー上に存在する外部 LOBへのバイト・ストリーム I/Oアクセスを可能にします。最大サイズは 4GBです。

表表表表 2-1 組込みデータ型の概要(続き)組込みデータ型の概要(続き)組込みデータ型の概要(続き)組込みデータ型の概要(続き)

コードコードコードコード a 組込みデータ型組込みデータ型組込みデータ型組込みデータ型 説明説明説明説明

a データ型のコードは、Oracleが内部的に使用します。DUMP関数によって、列またはオブジェクト属性のデータ型コードが戻されます。

2-6 Oracle8i SQLリファレンス Vol.1

Page 33: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

次のデータ型が、文字データに対して使用されます。

� CHARデータ型

� NCHARデータ型

� NVARCHAR2データ型

� VARCHAR2データ型

CHARデータ型データ型データ型データ型CHARデータ型は、固定長の文字列を指定します。CHAR列で表を作成する場合、列の長さをバイト単位で指定します。Oracleでは、その列の中に格納される値がすべてこの長さを持つように調整します。列の長さより短い値が挿入されると、その値の後に空白を埋め込んで列の長さに合わせます。列に対して長すぎる値を挿入しようとすると、Oracleはエラーを戻します。

CHAR列のデフォルトの長さは 1文字で、この許容最大値は 2000文字です。長さが 0(ゼロ)の文字列を CHAR列に挿入することはできますが、この CHAR列が比較されるときに、空白が 1文字埋め込まれます。

NCHARデータ型データ型データ型データ型NCHARデータ型は、固定長の各国語キャラクタ・セット文字列を指定します。NCHAR列で表を作成する場合、列の長さを文字単位またはバイト単位のいずれかで定義します。使用する各国語キャラクタ・セットは、データベースを作成するときに指定します。

データベースの各国語キャラクタ・セットが固定幅(たとえば、JA16EUCFIXEDなど)の場合は、NCHARの列サイズを文字列の長さの文字数として宣言します。各国語キャラクタ・セットが可変幅(たとえば、JA16SJISなど)の場合は、列サイズをバイト単位で宣言します。次の文では、各国語キャラクタ・セットとして JA16EUCFIXEDを使用すると、長さが30文字までの文字列を保存できる 1つの NCHAR列が含まれた表が作成されます。

CREATE TABLE tab1 (col1 NCHAR(30));

参照参照参照参照 : 比較方法については、2-25ページの「データ型の比較規則」を参照してください。

注意注意注意注意 : 異なるキャラクタ・セットを持つデータベース間で適切にデータを変換するには、CHARデータが正しい書式の文字列で構成されていることを確認してください。キャラクタ・セット・サポートの詳細は、『Oracle8i NLSガイド』を参照してください。

Oracle SQLの基本要素 2-7

Page 34: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

列の最大長は、各国語キャラクタ・セットの定義によって決まります。NCHAR文字データ型の幅指定では、各国語キャラクタ・セットが固定幅の場合は文字数が参照され、各国語キャラクタ・セットが可変幅の場合はバイト数が参照されます。許容最大列サイズは 2000バイトです。固定幅のマルチバイト・キャラクタ・セットの場合は、列の許容最大長が、2000バイト以下の文字数になります。

列の長さより短い値が挿入されると、その値の後に空白を埋め込んで列の長さに合わせます。CHAR値を NCHAR列に挿入することや、NCHAR値を CHAR列に挿入することはできません。

次の例では、tab1の col1列と各国語キャラクタ・セットの文字列 NCHARリテラルを比較します。

SELECT * FROM tab1 WHERE col1 = N'NCHAR literal';

NVARCHAR2データ型データ型データ型データ型NVARCHAR2データ型は、可変長の各国語キャラクタ・セット文字列を指定します。NVARCHAR2列で表を作成する場合、保持できる最大の文字数またはバイト数を指定します。Oracleでは、列の最大長を超えない限り、各値を指定されたとおりに正確に列に保存します。

列の最大長は、各国語キャラクタ・セットの定義によって決まります。NVARCHAR2文字データ型の幅指定では、各国語キャラクタ・セットが固定幅の場合は文字数が参照され、各国語キャラクタ・セットが可変幅の場合はバイト数が参照されます。許容最大列サイズは4000バイトです。固定幅のマルチバイト・キャラクタ・セットの場合は、列の許容最大長が、4000バイト以下の文字数になります。

次の文では、各国語キャラクタ・セットとして JA16EUCFIXEDを使用すると、長さが 2000文字(各文字が 2バイトであるため、4000バイトとして保存される)の 1つの NVARCHAR2列が含まれた表が作成されます。

CREATE TABLE tab1 (col1 NVARCHAR2(2000));

VARCHAR2データ型データ型データ型データ型VARCHAR2データ型は、可変長の文字列を指定します。VARCHAR2列を作成する場合、保持できる最大のデータのバイト数を指定します。Oracleでは、列の最大長を超えない限り、各値を指定されたとおりに正確に列に保存します。最大長を超える値を挿入しようとすると、Oracleはエラーを戻します。

2-8 Oracle8i SQLリファレンス Vol.1

Page 35: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

VARCHAR2列には最大長を指定する必要があります。保存される文字列の実際の長さは 0(ゼロ)にできますが、最大長は 1バイト以上にする必要があります。VARCHAR2データの最大長は 4000バイトです。Oracleは、非空白埋め比較を使用して VARCHAR2値を比較します。

VARCHARデータ型データ型データ型データ型現在、VARCHARデータ型は、VARCHAR2データ型と同じ意味で使用しています。VARCHARより VARCHAR2を使用することをお薦めします。将来、VARCHARデータ型が変更され、異なる比較方法で比較される別の可変長文字列の型になる可能性があります。

NUMBERデータ型データ型データ型データ型NUMBERデータ型は、0(ゼロ)、および精度が 38桁で、絶対値が 1.0× 10-130~ 9.9...9×10125(38個の 9の後に 0が 88個続く)の範囲にある、正と負の固定小数点数および浮動小数点数を格納します。1.0× 10126以上の値を持つ算術式を指定した場合、Oracleはエラーを戻します。

次の書式で固定小数点数を指定できます。

NUMBER(p,s)

ここで、それぞれの意味は次のとおりです。

� pは、精度(precision)、つまり全体の桁数です。Oracleは、38桁までの精度で数の移植性を保証します。

� sは、位取り(scale)、つまり小数点の右側にある桁数です。位取りの有効範囲は -84~127です。

参照参照参照参照 : 比較方法については、2-25ページの「データ型の比較規則」を参照してください。

注意注意注意注意 : 異なるキャラクタ・セットを持つデータベース間で適切にデータを変換するには、VARCHAR2データが正しい書式の文字列で構成されていることを確認してください。キャラクタ・セット・サポートの詳細は、『Oracle8i NLSガイド』を参照してください。

Oracle SQLの基本要素 2-9

Page 36: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

次の書式で整数を指定できます。

� NUMBER(p)は、精度が pで、位取りが 0の固定小数点数です(NUMBER(p,0)と同じです)。

次の書式で浮動小数点を指定できます。

� NUMBERは、精度が 38桁の浮動小数点数です。なお、浮動小数点数で位取りは指定できません。

位取りと精度位取りと精度位取りと精度位取りと精度入力に対する特別な整合性チェックとして、固定小数点数列の位取りと精度を指定してください。位取りと精度を指定しても、すべての値が固定長に強制されるわけではありません。値が精度の有効範囲を超えると、Oracleはエラーを戻します。値が位取りの有効範囲を超えると、Oracleはその値を丸めます。

次に、いろいろな精度と位取りで Oracleがデータを格納する例を示します。

負の位取り負の位取り負の位取り負の位取り位取りが負の場合、実際のデータは整数部分の右から指定された桁数のみ丸められます。たとえば、(10,-2)と指定すると 100の位まで丸められます。

参照参照参照参照 : 2-11ページの「浮動小数点数」を参照してください。

実際のデータ実際のデータ実際のデータ実際のデータ 指定する精度と位取り指定する精度と位取り指定する精度と位取り指定する精度と位取り 格納されるデータ格納されるデータ格納されるデータ格納されるデータ

7456123.89 NUMBER 7456123.89

7456123.89 NUMBER(9) 7456124

7456123.89 NUMBER(9,2) 7456123.89

7456123.89 NUMBER(9,1) 7456123.9

7456123.89 NUMBER(6) 精度を超える

7456123.89 NUMBER(7,-2) 7456100

7456123.89 NUMBER(-7,2) 精度を超える

2-10 Oracle8i SQLリファレンス Vol.1

Page 37: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

精度より大きい位取り精度より大きい位取り精度より大きい位取り精度より大きい位取り通常はありえないことですが、精度より大きい位取りを指定することもできます。この場合、精度は小数点の右側にある最大有効桁数を示します。すべての NUMBERデータ型と同じように、値が精度を超えると、Oracleはエラー・メッセージを戻します。値が位取りの有効範囲を超えると、Oracleはその値を丸めます。たとえば、NUMBER(4,5)として定義された列は、小数点の後の最初の桁が 0(ゼロ)でなければならず、小数点以下 5桁を超える値はすべて丸められます。次に、精度より大きい位取りを指定した場合の例を示します。

浮動小数点数浮動小数点数浮動小数点数浮動小数点数浮動小数点数は、最初の桁から最後の桁までの任意の位置に小数点を置くことも、小数点を省略することもできます。小数点以下の桁数に制限はないため、浮動小数点数に対して位取りは指定できません。

2-9ページの「NUMBERデータ型」で説明している形式で浮動小数点数を指定できます。また、Oracleは FLOAT ANSIデータ型もサポートします。次の構文書式のいずれかを使用して、このデータ型を指定します。

� FLOATでは、38桁の 10進精度または 126桁の 2進精度で浮動小数点数を指定します。

� FLOAT(b)は、2進精度 bで浮動小数点数を指定します。精度 bは 1~ 126の範囲です。2進精度から 10進精度に変換するには、bに 0.30103を乗算します。10進精度から 2進精度に変換するには、10進精度に 3.32193を乗算します。2進数精度の 126桁は、10進精度の 38桁とほぼ等しくなります。

LONGデータ型データ型データ型データ型LONG列には、最大 2GB(231から 1を引いたバイト数)の可変長の文字列を格納できます。LONG列には、多くの点で VARCHAR2列と同じ特徴があります。LONG列を使用すると、長いテキスト列を格納できます。LONG値の長さは、ご使用のコンピュータで利用できるメモリーによって制限される場合もあります。

実際のデータ実際のデータ実際のデータ実際のデータ 指定する精度と位取り指定する精度と位取り指定する精度と位取り指定する精度と位取り 格納されるデータ格納されるデータ格納されるデータ格納されるデータ

.01234 NUMBER(4,5) .01234

.00012 NUMBER(4,5) .00012

.000127 NUMBER(4,5) .00013

.0000012 NUMBER(2,7) .0000012

.00000123 NUMBER(2,7) .0000012

Oracle SQLの基本要素 2-11

Page 38: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

SQL文の中の次の場所で LONG列を参照できます。

� SELECT構文のリスト

� UPDATE文の SET句

� INSERT文の VALUES句

LONG値を使用する場合には、次の制限があります。

� 表には複数の LONG列を含めることはできません。

� LONG属性を持つオブジェクトは作成できません。

� LONG列は整合性制約に使用できません。ただし、NULL制約と NOT NULL制約を除きます。

� LONG列に索引を付けることはできません。

� ストアド・ファンクションは LONG値を戻すことはできません。

� 単一の SQL文に指定する、すべての LONG列、更新された表、ロックされた表は、同一データベース上にある必要があります。

また、LONG列は SQL文の次のような部分では使用できません。

� SELECT文の WHERE句、GROUP BY句、ORDER BY句、CONNECT BY句または DISTINCT演算子

� SELECT文の UNIQUE演算子

� CREATE CLUSTER文の列リスト

� CREATE MATERIALIZED VIEW文の CLUSTER句

� SQL関数(SUBSTRや INSTRなど)

� 式または条件

� GROUP BY句を含む問合せの SELECT構文のリスト

� UNION、INTERSECTまたは MINUS集合演算子によって結合されている副問合せまたは問合せの SELECT構文のリスト

注意注意注意注意 : LONG列を LOB列へ変換することをお薦めします。LOB列は、LONG列ほど制限が多くありません。詳細は、4-111ページの「TO_LOB」を参照してください。

2-12 Oracle8i SQLリファレンス Vol.1

Page 39: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

� CREATE TABLE ...AS SELECT文の SELECT構文のリスト

� INSERT文の副問合せの SELECT構文のリスト

トリガーでは、LONGデータ型は次のように使用されます。

� トリガー内の SQL文で、データを LONG列に挿入できます。

� LONG列のデータを CHARや VARCHAR2などの制約があるデータ型に変換できる場合は、トリガー内の SQL文で LONG列を参照できます。

� トリガー内の変数は、LONGデータ型を使用して宣言できません。

� :NEWと :OLDは LONG列で使用できません。

Oracleコール・インタフェースを使用して、データベースから LONG値の一部を検索できます。

DATEデータ型データ型データ型データ型DATEデータ型は、日付と時刻の情報を格納するために使用します。日付と時刻の情報は、CHARデータ型と NUMBERデータ型で表現できますが、DATEデータ型には特別に対応付けられているプロパティがあります。各 DATE値には、世紀、年、月、日、時、分および秒の情報が格納されます。

日付値を指定する場合に時間構成要素を指定しないと、デフォルト時間の 12:00:00 AM(真夜中)が採用されます。時刻値を指定する場合に日付を指定しないと、デフォルト日付である現在の月の最初の日が採用されます。日付関数 SYSDATEは現在の日付と時刻を戻します。

デフォルトの日付書式は、初期化パラメータ NLS_DATE_FORMATによって指定され、'DD-MON-YY'のような文字列になります。'DD-MON-YY'は、日付としての 2桁の数、月の名前の省略形、年の下 2桁を含むデフォルトの日付書式です。デフォルトの日付書式の文字値が日付式で使用された場合、Oracleは自動的にそれらを DATE値に変換します。

デフォルトの日付書式にない日付値を指定するには、文字値や数値を TO_DATE関数によって日付値に変換する必要があります。この場合、Oracleに文字値や数値の解析方法を問い合せるために、デフォルト以外の日付書式モデル(「日付マスク」と呼ばれることもあります)を指定する必要があります。たとえば、'17:45:29'の日付書式モデルは、'HH24:MI:SS'です。'11-NOV-1999'の日付書式モデルは、'DD-MON-YYYY'です。

参照参照参照参照 : 『Oracle8iコール・インタフェース・プログラマーズ・ガイド』を参照してください。

Oracle SQLの基本要素 2-13

Page 40: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

日付算術日付算術日付算術日付算術日付に対しては、日付の加算や減算のみでなく、数定数の加算や減算ができます。Oracleは算術日付式の数定数を日付の数として解析します。たとえば、SYSDATE + 1は明日です。SYSDATE - 7は 1週間前です。SYSDATE + (10/1440)は 10分後です。SYSDATEから emp表の hiredate列を引くと、各従業員が雇用されてから経過した日数が戻ります。DATE値の乗算や除算はできません。

Oracleは、一般的な日付操作のための関数を用意しています。たとえば、ADD_MONTHS関数を使用すると、日付に月を加算したり、減算できます。MONTHS_BETWEEN関数は、2つの日付の間の月数を戻します。結果の小数部は月(1ヶ月は 31日)を単位として表されます。

各日付には時間構成要素が含まれるため、ほぼすべての日付操作の結果には小数部が含まれます。この小数部は、日を単位として表されています。たとえば、1.5日は 36時間です。

ユリウス暦の使用方法ユリウス暦の使用方法ユリウス暦の使用方法ユリウス暦の使用方法ユリウス暦は、紀元前 4712年 1月 1日から経過した日数です。ユリウス暦によって共通の基準で日付を算定できます。日付関数 TO_DATEと TO_CHARで日付書式モデル「J」を使用して、Oracleの DATE値とユリウス暦の間で変換を行うことができます。

参照参照参照参照 :

� 日付書式モデルの要素のリストは、2-46ページの「日付書式モデル」を参照してください。

� 文字値や数値から日付値への変換の詳細は、4-110ページの「TO_DATE」を参照してください。

� 日付値の文字列への変換の詳細は、4-108ページの「TO_CHAR(日付変換)」を参照してください。

� 現在のシステム日付および時刻を取得する場合の詳細は、4-106ページの「SYSDATE」を参照してください。

参照参照参照参照 : 日付関数の詳細は、4-5ページの「日付関数」を参照してください。

2-14 Oracle8i SQLリファレンス Vol.1

Page 41: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

例例例例 次の文では、1997年 1月 1日をユリウス暦で戻します。

SELECT TO_CHAR(TO_DATE('01-01-1997', 'MM-DD-YYYY'),'J') FROM DUAL;

TO_CHAR--------2450450

RAWデータ型とデータ型とデータ型とデータ型と LONG RAWデータ型データ型データ型データ型RAWデータ型と LONG RAWデータ型のデータは、Oracleによって解析されません(異なるシステム間でデータを移動するときには変換されません)。これらのデータ型は、バイナリ・データまたはバイト列に使用されます。たとえば、LONG RAWは、図形、音声、文書、またはバイナリ・データの配列の格納に使用できますが、解析方法は用途によって異なります。

RAWは、VARCHAR2と同様の可変長データ型ですが、Net8(ユーザー・セッションとインスタンスを接続します)およびインポート /エクスポート・ユーティリティは、RAWまたはLONG RAWデータの転送時に文字変換を行いません。これに対し、Net8およびインポート /エクスポートは、データベース・キャラクタ・セットとユーザー・セッションのキャラクタ・セット(ALTER SESSION文の NLS_LANGUAGEパラメータで設定します)が異なる場合に、CHAR、VARCHAR2および LONGデータをこれら 2つのキャラクタ・セット間で自動的に変換します。

RAWデータまたは LONG RAWデータと CHARデータ間で、データを自動的に変換するときに、バイナリ・データは 16進数で表されます。1つの 16進文字で 4ビットの RAWデータを表します。たとえば、ビット列が 11001011で表示される 1バイトの RAWデータは、「CB」として表示または入力されます。

ラージ・オブジェクト(ラージ・オブジェクト(ラージ・オブジェクト(ラージ・オブジェクト(LOB)データ型)データ型)データ型)データ型組込み LOBデータ型の BLOB、CLOB、NCLOB(内部ファイルに格納)および BFILE(外部ファイルに格納)には、構造化されていない大きいデータ(text、image、video、spatial dataなど)を最大 4GBまで格納できます。

表を作成するときに、LOB列または LOBオブジェクト属性に、オプションで表に指定したものとは異なる表領域および記憶特性を指定できます。

参照参照参照参照 : DUAL表については、5-27ページの「DUAL表からの選択」を参照してください。

注意注意注意注意 : LONG RAW列をバイナリ LOB(BLOB)へ変換することをお薦めします。LOB列は、LONG列ほど制限が多くありません。詳細は、4-111ページの「TO_LOB」を参照してください。

Oracle SQLの基本要素 2-15

Page 42: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

LOB列には、アウトライン LOB値またはインライン LOB値を参照できる LOBロケータが含まれています。表から LOBを選択すると、実際には LOBのロケータが戻され、LOB値全体は戻されません。LOBに対する DBMS_LOBパッケージと Oracleコール・インタフェース(Oracle Call Interface: OCI)の操作は、これらのロケータを介して行われます。

LOBは、LONG型および LONG RAW型と似ていますが、次の点で異なります。

� LOBは、ユーザー定義のデータ型(オブジェクト)の属性に指定できます。

� LOBロケータは、表の列に格納されます。実際の LOB値は、表の列に格納される場合と格納されない場合があります。BLOB、NCLOBおよび CLOBの値は、別々の表領域に格納されます。BFILEデータは、サーバー上の外部ファイルに格納されます。

� LOB列にアクセスしたときに戻されるのはロケータです。

� LOBの最大サイズは 4GBです。BFILEの最大サイズはオペレーティング・システムによって異なりますが、4GBを超えることはありません。

� LOBでは、効果的かつランダムな断片単位のデータ・アクセスおよび操作が可能です。

� 1つの表内に 2つ以上の LOB列を定義できます。

� NCLOBの例外を除いて、1つのオブジェクトに 1つ以上の LOB属性を定義できます。

� LOBバインド変数を宣言できます。

� LOB列と LOB属性を選択できます。

� 1つ以上の LOB列または 1つ以上の LOB属性を持つ、オブジェクトが含まれている新しい行を挿入したり、既存の行を更新できます。(内部 LOB値を NULLつまり空に設定したり、LOB全体をデータに置き換えられます。BFILEは、NULLに設定したり、別のファイルを指すように設定できます。)

� LOB行と列の交差部または LOB属性を、別の LOB行と列の交差部または LOB属性を使用して更新できます。

� LOB列または LOB属性が含まれている行を削除できます(これによって LOB値も削除されます)。BFILEの場合、実際のオペレーティング・システム・ファイルは削除されません。

INSERT文または UPDATE文を発行するだけで、内部 LOB列(データベースに格納されている LOB列)の行にアクセスし、行を挿入できます。ただし、オブジェクト型の一部である LOB属性にアクセスし、それを移入するには、EMPTY_CLOBファンクションまたはEMPTY_BLOBファンクションを使用して、LOB属性を初期化してください。その後、DBMS_LOBパッケージまたはその他の適切なインタフェースを使用して、空の LOB属性を選択し、それを移入できます。

次の例では、LOB列を持つ表が作成されます(表領域 RESUMESが存在することを想定しています)。

参照参照参照参照 : 4-37ページの「EMPTY_[B | C]LOB」を参照してください。

2-16 Oracle8i SQLリファレンス Vol.1

Page 43: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

CREATE TABLE person_table (name CHAR(40), resume CLOB, picture BLOB) LOB (resume) STORE AS ( TABLESPACE resumes STORAGE (INITIAL 5M NEXT 5M) );

BFILEデータ型データ型データ型データ型BFILEデータ型を使用すると、Oracleデータベース外のファイル・システムに格納されているバイナリ・ファイル LOBにアクセスできます。BFILE列または属性には、サーバーのファイル・システム上のバイナリ・ファイルに対するポインタとして機能する、BFILEロケータが格納されます。ロケータには、ディレクトリ別名とファイル名が保持されます。

バイナリ・ファイル LOBは、トランザクションには関係なく、リカバリができません。ファイルの統合性と耐久性を提供しているのは基本にあるオペレーティング・システムです。サポートされるファイルの最大サイズは 4GBです。

データベース管理者は、ファイルが存在し、Oracleのプロセスがファイルに対するオペレーティング・システムの読取り権限を持っていることを確認する必要があります。

BFILEデータ型を使用すると、サイズが大きいバイナリ・ファイルの読取り専用のサポートが保証されます。この場合、ファイルを修正またはレプリケートすることはできません。Oracleでは、ファイル・データにアクセスするための APIが提供されています。ファイル・データにアクセスするために使用する主なインタフェースは、DBMS_LOBパッケージと OCIです。

参照参照参照参照 :

� これらのインタフェースおよび LOBの詳細は、『Oracle8i PL/SQLパッケージ・プロシージャ リファレンス』および『Oracle8iコール・インタフェース・プログラマーズ・ガイド』を参照してください。

� テンポラリ LOBの作成および LOB制限の詳細は、『Oracle8iアプリケーション開発者ガイド ラージ・オブジェクト』を参照してください。

� LONG列を LOB列に変換する場合の詳細は、4-111ページの「TO_LOB」を参照してください。

参照参照参照参照 :

� LOBの詳細は、『Oracle8iアプリケーション開発者ガイド ラージ・オブジェクト』および『Oracle8iコール・インタフェース・プログラマーズ・ガイド』を参照してください。

� 9-39ページの「CREATE DIRECTORY」を参照してください。

Oracle SQLの基本要素 2-17

Page 44: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

BLOBデータ型データ型データ型データ型BLOBデータ型は、構造化されていないバイナリ・ラージ・オブジェクトを格納するために使用します。BLOBは、キャラクタ・セットの意味を持たないビットストリームとして考えることができます。BLOBには、4GBまでのバイナリ・データを格納できます。

BLOBでは、トランザクションが完全にサポートされます。SQL、DBMS_LOBパッケージまたは OCIを介して行った変更は、すべてトランザクションに反映されます。BLOB値の操作は、コミットおよびロールバックできます。1つのトランザクション内の PL/SQLまたはOCI変数を BLOBロケータに保存し、そのロケータを別のトランザクションまたはセッションで使用することはできません。

CLOBデータ型データ型データ型データ型CLOBデータ型は、シングルバイト文字のデータを格納するために使用します。固定幅および可変幅のキャラクタ・セットがサポートされます。両方のキャラクタ・セットで CHARデータベース・キャラクタ・セットを使用します。CLOBには、4GBまでの文字データを格納できます。

CLOBでは、トランザクションが完全にサポートされます。SQL、DBMS_LOBパッケージまたは OCIを介して行った変更は、すべてトランザクションに反映されます。CLOB値の操作は、コミットおよびロールバックできます。1つのトランザクション内の PL/SQLまたはOCI変数を CLOBロケータに保存し、そのロケータを別のトランザクションまたはセッションで使用することはできません。

NCLOBデータ型データ型データ型データ型NCLOBデータ型は、マルチバイトの各国語キャラクタ・セット文字(NCHAR)データを保存するために使用します。固定幅および可変幅のキャラクタ・セットがサポートされます。NCLOBには、4GBまでの文字テキスト・データを保存できます。

NCLOBでは、トランザクションが完全にサポートされます。SQL、DBMS_LOBパッケージまたは OCIを介して行った変更は、すべてトランザクションに反映されます。NCLOB値の操作は、コミットおよびロールバックできます。1つのトランザクション内の PL/SQLまたはOCI変数を NCLOBロケータに保存し、そのロケータを別のトランザクションまたはセッションで使用することはできません。

ROWIDデータ型データ型データ型データ型データベース内の各行にはアドレスがあります。疑似列 ROWIDを問い合せることによって、行のアドレスを調べることができます。この疑似列の値は、各行のアドレスを表す 16進文字列です。16進文字列のデータ型は ROWIDです。また、ROWIDデータ型を持つ実際の列を含む表やクラスタを作成することもできます。Oracleでは、このような列の値が有効なROWIDであることは保証されません。

参照参照参照参照 : ROWID疑似列の詳細は、2-57ページの「疑似列」を参照してください。

2-18 Oracle8i SQLリファレンス Vol.1

Page 45: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

制限制限制限制限 ROWIDOracle8をはじめ、Oracle SQLでは、パーティション表、索引、および表領域関連のデータ・ブロック・アドレス(DBA)を明確かつ効果的にサポートするために、ROWIDの拡張形式が採用されています。

Oracle7以前のリリースでは、ROWIDは制限制限制限制限 ROWIDと呼ばれます。制限 ROWIDの書式は次のとおりです。

block.row.file

それぞれの意味は、次のとおりです。

拡張拡張拡張拡張 ROWIDユーザー列に格納される拡張拡張拡張拡張 ROWIDデータ型には、制限 ROWIDのデータに加え、データ・データ・データ・データ・オブジェクト番号オブジェクト番号オブジェクト番号オブジェクト番号が含まれます。データ・オブジェクト番号は、すべてのデータベース・セグメントに割り当てられる識別番号です。データ・オブジェクト番号は、データ・ディクショナリ・ビューの USER_OBJECTS、DBA_OBJECTSおよび ALL_OBJECTSから取り出すことができます。同じセグメントを共有するオブジェクト(たとえば、同じクラスタ内のクラスタ化された表など)には、同じオブジェクト番号が付けられます。

拡張 ROWIDは、基本となる 64という値で格納され、文字 A~ Z、a~ z、0~ 9、プラス記号(+)およびスラッシュ(/)を含めることができます。拡張 ROWIDは直接利用できません。拡張 ROWIDの内容を解析するには、提供されているパッケージ DBMS_ROWIDを使用します。パッケージ・ファンクションを使用すると、制限 ROWIDから直接利用できる情報、および拡張 ROWIDに固有の情報が取り出され、提供されます。

block 行を含むデータ・ファイルのデータ・ブロックを識別する 16進文字列です。この文字列の長さはオペレーティング・システムによって異なります。

row データ・ブロック内の行を識別する 4桁の 16進文字列です。ブロック内の最初の行は 0になります。

file 行を含むデータ・ファイルを識別する 16進文字列です。最初のデータ・ファイルは 1になります。この文字列の長さはオペレーティング・システムによって異なります。

参照参照参照参照 : DBMS_ROWIDパッケージによって使用できるファンクション、およびこのファンクションの使用方法は、『Oracle8i PL/SQLパッケージ・プロシージャ リファレンス』を参照してください。

Oracle SQLの基本要素 2-19

Page 46: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

互換性と移行互換性と移行互換性と移行互換性と移行制限形式の ROWIDは、旧リリースとの互換性を保つために Oracle8iでもサポートされていますが、すべての表で拡張形式の ROWIDが返されます。

UROWIDデータ型データ型データ型データ型データベース内の各行にはアドレスがあります。ただし、物理アドレスまたは永続アドレス以外のアドレス、または Oracleが生成したものでないアドレスがある行を持つ表もあります。たとえば、索引構成表の行のアドレスは索引リーフに格納され、移動できます。外部キー表の ROWID(たとえば、ゲートウェイを介してアクセスされる DB2)は、標準のOracle ROWIDではありません。

Oracleでは、ユニバーサル ROWID(UROWID)を使用して索引構成表および外部キー表のアドレスを格納します。索引構成表には、論理 UROWIDがあり、外部キー表には外部キー UROWIDがあります。いずれのタイプの UROWIDも、(ヒープ構成表の物理 ROWIDのように)ROWID疑似列に格納されます。

Oracleは、表の主キーに基づいて論理 ROWIDを作成します。論理 ROWIDは、主キーが変更されない限り、変更されません。索引構成表の ROWID疑似列は UROWIDデータ型です。この疑似列には、ヒープ構成の ROWID疑似列と同様に(SELECT ROWID文を使用して)アクセスできます。索引構成表の ROWIDを格納する場合、表に UROWID型の列を定義し、この列に ROWID疑似列の値を取り込みます。

ANSI、、、、DB2、、、、SQL/DSのデータ型のデータ型のデータ型のデータ型表とクラスタを作成する SQL文では、ANSIデータ型、および IBM社の製品 SQL/DSとDB2のデータ型も使用できます。Oracleでは ANSIまたは IBMのデータ型の名前を認識し、列のデータ型の名前として記録します。次に、表 2-2および表 2-3に示す変換に基づいて、Oracleのデータ型で列データを格納します。

参照参照参照参照 : 互換性と移行の問題については、『Oracle8i移行ガイド』を参照してください。

注意注意注意注意 : ヒープ構成表には物理 ROWIDがあります。オラクル社は、データ型が UROWIDの列をヒープ構成表に指定しないことをお薦めします。

参照参照参照参照 :

� UROWIDデータ型および Oracleがユニバーサル ROWIDを生成および操作する方法の詳細は、『Oracle8i概要』および『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

� データベースの行のアドレスの詳細は、2-18ページの「ROWIDデータ型」を参照してください。

2-20 Oracle8i SQLリファレンス Vol.1

Page 47: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

表表表表 2-2 Oracleデータ型に変換されるデータ型に変換されるデータ型に変換されるデータ型に変換される ANSIデータ型データ型データ型データ型

ANSI SQLデータ型データ型データ型データ型 Oracleデータ型データ型データ型データ型

CHARACTER(n)

CHAR(n)

CHAR(n)

CHARACTER VARYING(n)

CHAR VARYING(n)

VARCHAR(n)

NATIONAL CHARACTER(n)

NATIONAL CHAR(n)

NCHAR(n)

NCHAR(n)

NATIONAL CHARACTER VARYING(n)

NATIONAL CHAR VARYING(n)

NCHAR VARYING(n)

NVARCHAR2(n)

NUMERIC(p,s)

DECIMAL(p,s)a

NUMBER(p,s)

INTEGER

INT

SMALLINT

NUMBER(38)

FLOAT(b)b

DOUBLE PRECISIONc

REALd

NUMBER

a NUMERICデータ型および DECIMALデータ型では、固定小数点数のみを指定できます。これらのデータ型では、sのデフォルトは 0です。

b FLOATデータ型は、2進精度 bを持つ浮動小数点数です。このデータ型のデフォルト精度は、126桁の 2進精度または 38桁の 10進精度です。

c DOUBLE PRECISIONデータ型は 126桁の 2進精度を持つ浮動小数点数です。d REALデータ型は 63桁の 2進精度または 18桁の 10進精度を持つ浮動小数点数です。

Oracle SQLの基本要素 2-21

Page 48: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

表表表表 2-3 Oracleデータ型に変換されるデータ型に変換されるデータ型に変換されるデータ型に変換される SQL/DSとととと DB2のデータ型のデータ型のデータ型のデータ型

SQL/DSとととと DB2データ型データ型データ型データ型 Oracleデータ型データ型データ型データ型

CHARACTER(n) CHAR(n)

VARCHAR(n) VARCHAR(n)

LONG VARCHAR(n) LONG

DECIMAL(p,s)a NUMBER(p,s)

INTEGER

SMALLINT

NUMBER(38)

FLOAT(b)b NUMBER

a DECIMALデータ型では、固定小数点数のみを指定できます。このデータ型では、sのデフォルトは 0です。

b FLOATデータ型は、2進精度 bを持つ浮動小数点数です。このデータ型のデフォルト精度は、126桁の 2進精度または 38桁の 10進精度です。

2-22 Oracle8i SQLリファレンス Vol.1

Page 49: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

次の SQL/DSと DB2のデータ型には、対応する Oracleデータ型がありません。これらのデータ型を持つ列は定義しないでください。

� GRAPHIC

� LONG VARGRAPHIC

� VARGRAPHIC

� TIME

� TIMESTAMP

TIMEと TIMESTAMPのデータは、Oracleの DATEデータとして表現できることにも注意してください。

ユーザー定義型のカテゴリユーザー定義型のカテゴリユーザー定義型のカテゴリユーザー定義型のカテゴリユーザー定義のデータ型は、Oracle組込みデータ型とその他のユーザー定義のデータ型を、アプリケーション内のデータの構造と動作をモデル化する型の構築ブロックとして使用します。

次の項で、ユーザー定義型の様々なカテゴリを説明します。

オブジェクト型オブジェクト型オブジェクト型オブジェクト型オブジェクト型とは、実社会エンティティ(たとえば、発注書など)を抽象化し、アプリケーション・プログラムで処理できるようにしたものです。1つのオブジェクト型は、次の3種類の構成要素を持つスキーマ・オブジェクトです。

参照参照参照参照 :

� Oracle組込みデータ型の詳細は、『Oracle8i概要』を参照してください。

� ユーザー定義型の作成方法については、10-80ページの「CREATE TYPE」および 10-93ページの「CREATE TYPE BODY」を参照してください。

� ユーザー定義型の使用方法については、『Oracle8iアプリケーション開発者ガイド 基礎編』を参照してください。

Oracle SQLの基本要素 2-23

Page 50: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

� 名前とは、スキーマ内でオブジェクト型を一意に識別するためのものです。

� 属性とは、組込み型またはその他のユーザー定義型です。属性は、実社会エンティティの構造をモデル化します。

� メソッドとは、PL/SQLで記述され、データベースに格納されるファンクションまたはプロシージャ、あるいは、Cまたは Javaなどの言語で記述され、外部に格納されるファンクションまたはプロシージャのことです。メソッドは、アプリケーションが実社会エンティティに対して実行できる操作を実装します。

REFオブジェクト識別子オブジェクト識別子オブジェクト識別子オブジェクト識別子(OID)を使用することによって、オブジェクトを一意に識別し、他のオブジェクトまたはリレーショナル表からそのオブジェクトを参照できます。REFと呼ばれるデータ型のカテゴリが、そのような参照を表します。REFは、オブジェクト識別子のコンテナです。REFは、オブジェクトへのポインタとなります。

REF値が、存在しないオブジェクトを指している場合、その REFは DANGLING(参照先がない)状態であるといいます。DANGLING状態の REFは、NULLの REFとは異なります。REFが DANGLING状態かどうかを確認するには、IS [NOT] DANGLINGという述語を使用します。たとえば、列型が emp_t型(属性 nameを持つ)を指している REFである mgr列があります。この mgr列を含む表 deptは、次のように指定します。

SELECT t.mgr.name FROM dept t WHERE t.mgr IS NOT DANGLING;

VARRAY配列とは、順序付けられたデータ要素の集合です。ある特定の配列のすべての要素は、同じデータ型です。各要素には索引があります。索引は、各要素の配列内での位置に対応する番号です。

配列内の要素数は、その配列のサイズを表します。Oracleの配列は可変サイズであるため、VARRAYと呼ばれます。配列を宣言する場合は、最大サイズを指定する必要があります。

VARRAY宣言時に領域は割り当てられません。VARRAYでは、次のような型を定義します。

� リレーショナル表の列のデータ型

� オブジェクト型属性

� PL/SQLの変数、パラメータ、またはファンクションの戻り型

2-24 Oracle8i SQLリファレンス Vol.1

Page 51: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

Oracleは通常、1つの配列オブジェクトをインライン形式でその行の他のデータと同じ表領域に、またはアウトライン形式で LOBに格納します。この形式は配列オブジェクトのサイズによって決まります。ただし、VARRAYに個別の記憶特性を指定する場合、Oracleはこれをサイズに関係なくアウトライン形式で格納します。

ネストした表ネストした表ネストした表ネストした表ネストした表は、順序付けられていない要素の集合を表現します。その要素は、組込み型またはユーザー定義型です。ネストした表は、単一列の表として表示できます。ネストした表がオブジェクト型の場合、オブジェクト型のそれぞれの属性を表す複数列の表としても表示できます。

ネストした表の定義では、領域は割り当てられません。ネストした表では、次のものを宣言するための型を定義します。

� リレーショナル表の列

� オブジェクト型属性

� PL/SQLの変数、パラメータ、およびファンクションの戻り値

ネストした表が、リレーショナル表内の列型として使用される場合、またはオブジェクト表の基礎となるオブジェクト型の属性として使用される場合、Oracleは、ネストした表のすべてのデータを単一表に格納し、その単一表を、ネストした表を囲むリレーショナル表またはオブジェクト表に対応付けます。

データ型の比較規則データ型の比較規則データ型の比較規則データ型の比較規則ここでは、Oracleが各データ型の値を比較する方法について記述します。

数値数値数値数値大きい値は小さい値よりも大きいとみなされます。すべての負の数は、0(ゼロ)およびすべての正の数より小さいとみなされます。したがって、-1は 100より小さく、-100は -1より小さいとみなされます。

日付値日付値日付値日付値後の日付は前の日付よりも大きいとみなされます。たとえば、'29-MAR-1997'(1997年 3月29日)に相当する日付は '05-JAN-1998'(1998年 1月 5日)に相当する日付よりも小さく、'05-JAN-1998 1:35pm'(1998年 1月 5日午後 1時 35分)に相当する日付は '05-JAN-1998 10:09am'(1998年 1月 5日午前 10時 9分)に相当する日付よりも大きいとみなされます。

参照参照参照参照 : 詳細は、10-32ページの「CREATE TABLE」のvarray_storage_clauseを参照してください。

Oracle SQLの基本要素 2-25

Page 52: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

文字列値文字列値文字列値文字列値文字値は、次のどちらかの比較方法を使用して比較されます。

� 空白埋め比較

� 非空白埋め比較

ここでは、これらの比較方法について説明します。これらの異なる比較方法を使用して 2つの文字値を比較した場合、その結果が異なることもあります。次の表に、それぞれの比較方法を使用して 5組の文字を比較した結果を示します。通常、空白埋め比較と非空白埋め比較の結果は同じです。表に示されている最後の比較では、空白埋め比較と非空白埋め比較の違いが明確になっています。

空白埋め比較空白埋め比較空白埋め比較空白埋め比較 2つの値の長さが異なる場合、Oracleはまず短い方の値の最後に空白を追加して、2つの値が同じ長さになるようにします。次に、その 2つの値を、最初に異なる文字まで 1文字ずつ比較します。最初に異なる文字の位置で、大きい方の文字を持つ値の方が大きいとみなされます。2つの値に異なる文字がない場合、その 2つの値は等しいとみなされます。この規則では、2つの値の後続空白数のみが異なる場合、その 2つの値は等しいとみなされます。Oracleでは、比較する両方の値が、CHARデータ型、NCHARデータ型、テキスト・リテラルのいずれかの式の場合、または USER関数の戻り値の場合のみ空白埋め比較方法を使用します。

非空白埋め比較非空白埋め比較非空白埋め比較非空白埋め比較 Oracleは、2つの値を、最初に異なる文字まで 1文字ずつ比較します。最初に異なる文字の位置で、大きい方の文字を持つ値の方が大きいとみなされます。長さが異なる 2つの値を短い方の値の最後まで比較して、すべて同じ文字だった場合、長い方の値が大きいとみなされます。同じ長さの 2つの値に異なる文字がない場合、その 2つの値は等しいとみなされます。Oracleでは、比較する片方または両方の値が VARCHAR2データ型または NVARCHAR2データ型の場合、非空白埋め比較方法を使用します。

単一文字単一文字単一文字単一文字Oracleは、データベース・キャラクタ・セットで指定された数値に従って各文字を比較します。第 1の文字の数値が第 2の文字の数値よりも大きい場合、第 1の文字は第 2の文字よりも大きいとみなされます。Oracleは、空白はどの文字よりも小さいとみなします。これは、ほぼすべてのキャラクタ・セットでいえることです。

空白埋め比較空白埋め比較空白埋め比較空白埋め比較 非空白埋め比較非空白埋め比較非空白埋め比較非空白埋め比較

’ab’ > ’aa’ ’ab’ > ’aa’

’ab’ > ’a ' ’ab’ > ’a '

’ab’ > ’a’ ’ab’ > ’a’

'ab' = 'ab' 'ab' = 'ab'

'a ' = 'a' ’a ’ > ’a’

2-26 Oracle8i SQLリファレンス Vol.1

Page 53: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

次に、一般的なキャラクタ・セットを示します。

� 7ビット ASCII(情報交換用米国標準コード)

� EBCDICコード(拡張 2進化 10進コード)

� ISO 8859/1(国際標準化機構)

� JEUC日本語拡張 UNIX

ASCIIと EBCDICのキャラクタ・セットの一部を表 2-4と表 2-5に示します。なお、大文字と小文字は同じではありません。また、キャラクタ・セットの照合順番は、特定の言語に対する言語順序と一致しない場合があります。

表表表表 2-4 ASCIIキャラクタ・セットキャラクタ・セットキャラクタ・セットキャラクタ・セット

記号記号記号記号 10進値進値進値進値 記号記号記号記号 10進値進値進値進値

空白 32 ; 59

! 33 < 60

" 34 = 61

# 35 > 62

$ 36 ? 63

% 37 @ 64

& 38 A-Z 65-90

' 39 [ 91

( 40 \ 92

) 41 ] 93

* 42 ^ 94

+ 43 _ 95

, 44 ' 96

- 45 a-z 97-122

. 46 { 123

/ 47 | 124

0-9 48-57 } 125

: 58 ~ 126

Oracle SQLの基本要素 2-27

Page 54: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

オブジェクト値オブジェクト値オブジェクト値オブジェクト値オブジェクト値は、比較関数 MAPおよび ORDERのどちらかを使用して比較されます。どちらの関数でもオブジェクト型インスタンスは比較されますが、両者は別のものです。これらの関数は、オブジェクト型の一部として指定される必要があります。

VARRAYとネストした表とネストした表とネストした表とネストした表Oracle8iでは、VARRAYとネストした表を比較することはできません。

表表表表 2-5 EBCDICキャラクタ・セットキャラクタ・セットキャラクタ・セットキャラクタ・セット

記号記号記号記号 10 進値進値進値進値 記号記号記号記号 10進値進値進値進値

空白 64 % 108

¢ 74 _ 109

. 75 > 110

< 76 ? 111

( 77 : 122

+ 78 # 123

| 79 @ 124

& 80 ' 125

! 90 = 126

$ 91 " 127

* 92 a-i 129-137

) 93 j-r 145-153

; 94 s-z 162-169

ÿ 95 A-I 193-201

- 96 J-R 209-217

/ 97 S-Z 226-233

参照参照参照参照 : MAPメソッドと ORDERメソッド、およびこれらのメソッドが戻す値の詳細は、10-80ページの「CREATE TYPE」および『Oracle8iアプリケーション開発者ガイド 基礎編』を参照してください。

2-28 Oracle8i SQLリファレンス Vol.1

Page 55: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

データ変換データ変換データ変換データ変換一般に、式には異なるデータ型の値を含めることができません。たとえば、式では 10に 5を掛けた値に 'JAMES'を加えることはできません。ただし、Oracleでは値をあるデータ型から別のデータ型へ変換する場合の、暗黙的な変換と明示的な変換をサポートしています。

暗黙的なデータ変換暗黙的なデータ変換暗黙的なデータ変換暗黙的なデータ変換あるデータ型から別のデータ型への変換が意味を持つ場合、Oracleは値を自動的に変換します。Oracleは、次の場合にデータ型を変換します。

� INSERT文または UPDATE文で、あるデータ型の値を別のデータ型の列に割り当てる場合。Oracleはその値を列のデータ型に変換します。

� SQL関数または演算子に不当なデータ型の引数を指定して使用する場合。Oracleはその引数を正当なデータ型に変換します。

� 異なるデータ型の値に比較演算子を使用する場合。Oracleは式の一方を他方のデータ型に変換します。

暗黙的なデータ変換の例暗黙的なデータ変換の例暗黙的なデータ変換の例暗黙的なデータ変換の例

テキスト・リテラルの例テキスト・リテラルの例テキスト・リテラルの例テキスト・リテラルの例 テキスト・リテラル '10'は CHARデータ型です。次の文のように数式で使用すると暗黙的に NUMBERデータ型に変換されます。

SELECT sal + '10' FROM emp;

文字値および数値の例文字値および数値の例文字値および数値の例文字値および数値の例 条件で文字値と NUMBER型の値を比較する場合、NUMBER型の値は文字値に変換されず、文字値が暗黙的に NUMBER型の値に変換されます。次の文では、'7936'が暗黙的に 7936に変換されます。

SELECT ename FROM emp WHERE empno = '7936';

日付の例日付の例日付の例日付の例 次の文では、Oracleがデフォルトの日付書式 'DD-MON-YYYY'を使用して、'12-MAR-1993'を DATE値に暗黙的に変換します。

SELECT ename FROM emp WHERE hiredate = '12-MAR-1993';

ROWID例例例例 次の文では、Oracleがテキスト・リテラル 'AAAAZ8AABAAABvlAAA'をROWID値に暗黙的に変換します。

SELECT ename FROM emp WHERE ROWID = 'AAAAZ8AABAAABvlAAA';

Oracle SQLの基本要素 2-29

Page 56: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データ型

明示的なデータ変換明示的なデータ変換明示的なデータ変換明示的なデータ変換SQL変換関数を使用して、データ型の変換を明示的に指定できます。表 2-6に、あるデータ型から別のデータ型に明示的に値を変換する SQL関数を示します。

表表表表 2-6 データ型変換のデータ型変換のデータ型変換のデータ型変換の SQL関数関数関数関数

変換後変換後変換後変換後 /変換前変換前変換前変換前

CHAR NUMBER DATE RAW ROWID LONG/LONG RAW

LOB

CHAR — TO_NUMBER TO_DATE HEXTORAW CHARTOROWID

NUMBER

TO_CHAR

— TO_DATE

(number,'J')

DATE

TO_CHAR

TO_CHAR

(date,'J')

RAW RAWTOHEX —

ROWID ROWIDTOCHAR —

LONG/LONG RAW

— TO_LOB

LOB —

注意注意注意注意 : LONGおよび LONG RAWの値を指定すると、Oracleで暗黙的なデータ型変換を行うことができません。たとえば、関数や演算子を含む式では、LONGと LONG RAWの値を使用できません。LONGデータ型およびLONG RAWデータ型の制限については、2-11ページの「LONGデータ型」を参照してください。

参照参照参照参照 : 4-5ページの「変換関数」を参照してください。

2-30 Oracle8i SQLリファレンス Vol.1

Page 57: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

リテラル

暗黙的なデータ変換と明示的なデータ変換暗黙的なデータ変換と明示的なデータ変換暗黙的なデータ変換と明示的なデータ変換暗黙的なデータ変換と明示的なデータ変換次の理由から、暗黙的な変換または自動変換ではなく、明示的な変換を指定することをお薦めします。

� 明示的なデータ型変換関数を使用すると、SQL文がわかりやすくなります。

� 自動的なデータ型変換(特に列値のデータ型が定数に変換される場合)は、パフォーマンスに悪影響を及ぼす可能性があります。

� 暗黙的な変換はその変換が行われるコンテキストに依存し、どんな場合でも同じように機能するとは限りません。たとえば、日付値から VARCHAR2型へ値を暗黙的に変換すると、NLS_DATE_FORMATパラメータに指定されている値によって、予期しない年が戻される場合があります。

� 暗黙的な変換のアルゴリズムは、ソフトウェア・リリースや Oracle製品の変更によって変更されることがあります。明示的な変換を指定しておくと、その動作は将来的にも確実になります。

リテラルリテラルリテラルリテラルリテラルリテラルリテラルリテラルと定数値定数値定数値定数値という用語の意味は同じで、固定データ値のことです。たとえば、'JACK'、'BLUE ISLAND'および '101'はすべて文字リテラルです。文字リテラルは、単一引用符で囲みます。単一引用符を付けることで、Oracleは文字リテラルとスキーマ・オブジェクト名を区別します。

この項では、次の内容を説明します。

� Text(テキスト)

� Integer(整数)

� Number(数)

� Interval(インターバル)

多くの SQL文と関数では、文字リテラルと数値リテラルを指定する必要があります。式と条件の一部として、リテラルを指定できます。文字リテラルは 'text'の表記法を、各国文字リテラルは N'text'の表記法を、数値リテラルはリテラルのコンテキストにより integerまたは numberの表記法を使用して指定できます。これらの表記法の構文については、次の項で説明します。

Datetime(日時)または Interval(インターバル)のデータ型をリテラルとして指定する場合は、データ型に含まれているオプションの精度を考慮する必要があります。Datetime(日時)および Interval(インターバル)のデータ型をリテラルとして指定する場合の例は、2-2ページの「データ型」の関連する項を参照してください。

Oracle SQLの基本要素 2-31

Page 58: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

リテラル

Text(テキスト)(テキスト)(テキスト)(テキスト)テキスト・リテラルまたは文字リテラルを指定します。このマニュアルの他の箇所で、式、条件、SQL関数および SQL文に示されている 'text'(テキスト)や char(文字)に値を指定するときには、必ずこの表記法を使用してください。

text(テキスト)の構文は次のとおりです。

text::=

ここで、それぞれの記号の意味は次のとおりです。

� Nは、各国語キャラクタ・セットを使用してリテラルを指定します。この表記法を使用して入力したテキストは、使用時に Oracleによって各国語キャラクタ・セットに変換されます。

� cは、単一引用符(')を除く、データベース・キャラクタ・セットの任意の要素です。

� ' 'は、テキスト・リテラルの始まりと終わりを示す 2つの単一引用符です。リテラル内で単一引用符を表すには、単一引用符を 2つ使用します。

テキスト・リテラルは、単一引用符で囲みます。このマニュアルでは、テキスト・リテラルテキスト・リテラルテキスト・リテラルテキスト・リテラルと文字リテラル文字リテラル文字リテラル文字リテラルは同じ用語として使用しています。

テキスト・リテラルは、次のように CHARデータ型と VARCHAR2データ型の両方のプロパティを持ちます。

� 式と条件の中のテキスト・リテラルは、Oracleによって CHARデータ型として扱われ、空白を埋めて長さを揃えた後で比較されます。

� テキスト・リテラルの最大長は 4000バイトです。

有効なテキスト・リテラルの例を次に示します。

'Hello''ORACLE.dbs''Jackie''s raincoat''09-MAR-98'N'nchar literal'

参照参照参照参照 : 2-26ページの「空白埋め比較」を参照してください。

N’ c ’

2-32 Oracle8i SQLリファレンス Vol.1

Page 59: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

リテラル

Integer(整数)(整数)(整数)(整数)このマニュアルの他の箇所で、式、条件、SQL関数および SQL文に示されている integer(整数)に値を指定するときには、必ずこの表記法を使用してください。

integer(整数)の構文は次のとおりです。

integer::=

digitは、0、1、2、3、4、5、6、7、8、9のいずれかです。

整数は最大 38桁の精度を記憶できます。

有効な integers(整数)の例を次に示します。

7+255

Number(数)(数)(数)(数)このマニュアルの他の箇所で、式、条件、SQL関数および SQLコマンドに示されているnumber(数)に値を指定するときには、必ずこの表記法を使用してください。

number(数)の構文は次のとおりです。

number::=

+

–digit

+

– digit. digit

. digit

E

e

+

–digit

Oracle SQLの基本要素 2-33

Page 60: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

リテラル

ここで、それぞれの記号の意味は次のとおりです。

� +または -は、正の値または負の値を示します。符号を指定しない場合、デフォルトは正の値です。

� digitは、0、1、2、3、4、5、6、7、8、9のいずれかです。

� eまたは Eは、数が科学表記法で指定されることを示します。Eの後の数字が指数を示します。指数は -130~ 125の範囲で指定します。

number(数)は、最大 38桁の精度を記憶できます。

初期化パラメータ NLS_NUMERIC_CHARACTERSを使用してピリオド(.)以外の小数点文字を設定している場合は、'text'の表記法で数値リテラルを指定する必要があります。この場合、Oracleは自動的にテキスト・リテラルを数値に変換します。

たとえば、NLS_NUMERIC_CHARACTERSパラメータでカンマを小数点文字に設定している場合、数値 5.123は次のように指定します。

'5,123'

有効な number(数)の例を次に示します。

25+6.340.525e-03-1

Interval(インターバル)(インターバル)(インターバル)(インターバル)インターバル・リテラルは期間を指定します。年および月、または日付、時間、分および秒の違いを指定できます。Oracleは、YEAR TO MONTHおよび DAY TO SECONDの 2種類のインターバル・リテラルをサポートします。各リテラルは先行フィールドを含み、後続フィールドを含むこともあります。先行フィールドは、計測する日付または時刻の基本単位を定義します。後続フィールドは、考慮する基本単位の最小増分値を定義します。たとえば、YEAR TO MONTHインターバルでは、最も近い月に対する年との間隔が考慮されます。DAY TO MINUTEインターバルでは、最も近い分に対する日との間隔が考慮されます。

参照参照参照参照 : 7-101ページの「ALTER SESSION」および『Oracle8iリファレンス・マニュアル』を参照してください。

2-34 Oracle8i SQLリファレンス Vol.1

Page 61: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

リテラル

数値形式の日付データがある場合、NUMTOYMINTERVALまたは NUMTODSINTERVAL変換関数を使用して、数値データをインターバル・リテラルへ変換できます。

インターバル・リテラルは、主に分析関数とともに使用します。

INTERVAL YEAR TO MONTH次の構文を使用して、YEAR TO MONTHインターバル・リテラルを指定します。

ここで、それぞれの記号の意味は次のとおりです。

� 'integer [-integer]'には、リテラルの先行フィールドおよびオプションの後続フィールドの整数値を指定します。先行フィールドが YEARで、後続フィールドがMONTHの場合、MONTHフィールドの整数値の範囲は 0~ 11です。

� precisionは、先行フィールドの桁数です。先行フィールド精度の有効範囲は 0~ 9で、デフォルトは 2です。

制限事項制限事項制限事項制限事項 : 先行フィールドには、後続フィールドより大きい時間要素を指定する必要があります。たとえば、INTERVAL '0-1' MONTH TO YEARは無効です。

次の INTERVAL YEAR TO MONTHリテラルは、intervalが 123年 2ヶ月であることを示しています。

INTERVAL '123-2' YEAR(3) TO MONTH

参照参照参照参照 :

� 4-8ページの「分析関数」および『Oracle8iデータ・ウェアハウス』を参照してください。

� 詳細は、4-69ページの「NUMTODSINTERVAL」および 4-70ページの「NUMTOYMINTERVAL」を参照してください。

INTERVAL ’ integer– integer

YEAR

MONTH

( precision )TO

YEAR

MONTH

Oracle SQLの基本要素 2-35

Page 62: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

リテラル

このリテラルの他の形式の例を次に示します。省略バージョンも含みます。

ある INTERVAL YEAR TO MONTHリテラルを別のリテラルに加算または減算して、新しいINTERVAL YEAR TO MONTHリテラルを作成できます。たとえば、次のように割り当てることができます。

INTERVAL '5-3' YEAR TO MONTH + INTERVAL '20' MONTH TO MONTH = INTERVAL '6-11' YEAR TO MONTH

INTERVAL '123-2' YEAR(3) TO MONTH 123年 2ヶ月の intervalを示します。先行フィールド精度がデフォルトの 2桁より大きい場合、その精度を指定してください。

INTERVAL '123' YEAR(3) 123年 0ヶ月の intervalを示します。

INTERVAL '300' MONTH(3) 300ヶ月の intervalを示します。

INTERVAL '4' YEAR INTERVAL '4-0' YEAR TO MONTHへマップし、4年を示します。

INTERVAL '50' MONTH INTERVAL '4-2' YEAR TO MONTHへマップし、50ヶ月または 4年 2ヶ月を示します。

INTERVAL '123' YEAR デフォルト精度は 2ですが、123が 3桁のため、エラーを戻します。

2-36 Oracle8i SQLリファレンス Vol.1

Page 63: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

リテラル

INTERVAL DAY TO SECOND次の構文を使用して、DAY TO SECONDインターバル・リテラルを指定します。

ここで、それぞれの記号の意味は次のとおりです。

� integerは日数を指定します。ここで指定した値の桁数が先行精度で指定した桁数より大きい場合、Oracleはエラーを戻します。

� time_exprには、HH[:MI[:SS[.n]]]、MI[:SS[.n]]または SS[.n]形式で時間を指定します(ここで、nは秒の小数部を指定します)。nの桁数が、fractional_seconds_precisionで指定した数より多い場合、nはfractional_seconds_precision値で指定した数に丸められます。先行フィールドが DAYの場合にのみ、1桁の整数および 1つの空白が後に続く time_exprを指定できます。

� leading_precisionは、先行フィールドの桁数です。有効範囲は 1~ 9です。デフォルトは 2です。

� fractional_seconds_precisionは、SECOND日付時刻フィールドの小数部の桁数です。有効範囲は 1~ 9です。デフォルトは 6です。

INTERVAL ’

integer

integer time_expr

time_expr

DAY

HOUR

MINUTE

( leading_precision )

SECOND( leading_precision

, fractional_seconds_precision)

TO

DAY

HOUR

MINUTE

SECOND( fractional_seconds_precision )

Oracle SQLの基本要素 2-37

Page 64: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

リテラル

制限事項制限事項制限事項制限事項 : 先行フィールドには、後続フィールドより大きい時間要素を指定する必要があります。たとえば、INTERVAL MINUTE TO DAYは無効です。このため、SECONDが先行フィールドの場合、インターバル・リテラルは後続フィールドを持つことができません。

後続フィールドの有効範囲は次のとおりです。

様々な INTERVAL DAY TO SECONDリテラルの形式の例を次に示します。省略バージョンも含みます。

HOUR 0~ 23

MINUTE 0~ 59

SECOND 0~ 59.999999999

INTERVAL '4 5:12:10.222' DAY(3) TO SECOND(3)

4日 5時間 12分 10.222秒を示します。

INTERVAL '4 5:12' DAY TO MINUTE 4日 5時間 12分を示します。

INTERVAL '400 5' DAY(3) TO HOUR 400日 5時間を示します。

INTERVAL '400' DAY(3) 400日を示します。

INTERVAL '11:12:10.2222222' HOUR TO SECOND(7)

11時間 12分 10.2222222秒を示します。

INTERVAL '11:20' HOUR TO MINUTE 11時間 20分を示します。

INTERVAL '10' HOUR 10時間を示します。

INTERVAL '10:22' MINUTE TO SECOND 10分 22秒を示します。

INTERVAL '10' MINUTE 10分を示します。

INTERVAL '4' DAY 4日を示します。

INTERVAL '25' HOUR 25時間を示します。

INTERVAL '40' MINUTE 40分を示します。

INTERVAL '120' HOUR(3) 120時間を示します。

INTERVAL '30.12345' SECOND(2,4) 30.1235秒を示します。精度は 4のため、秒の小数部 '12345'は '1235'に丸められます。

2-38 Oracle8i SQLリファレンス Vol.1

Page 65: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

DAY TO SECONDインターバル・リテラルを別の DAY TO SECONDインターバル・リテラルに加算または減算できます。次に例を示します。

INTERVAL '20' DAY - INTERVAL '240' HOUR = INTERVAL '10' DAY

書式モデル書式モデル書式モデル書式モデル書式モデルは、文字列に格納される DATEデータや NUMBERデータの書式を記述する文字リテラルです。文字列を日付または数に変換する場合、書式モデルは文字列の変換方法を問い合せます。SQL文では、書式モデルは、次の目的で、TO_CHAR関数や TO_DATE関数の引数として使用できます。

� Oracleがデータベースから値を戻す場合に使用する書式を指定します。

� Oracleがデータベースに格納するために指定した値の書式を指定します。

たとえば、'17:45:29'の日付書式モデルは、'HH24:MI:SS'です。'11-Nov-1999'の日付書式モデルは、'DD-Mon-YYYY'です。'$2,304.25'の数値書式モデルは、'$9,999.99'です。日付および数値書式モデルの要素のリストは、2-42ページの表 2-7「数値書式の要素」および 2-47ページの表 2-9「日付書式要素」を参照してください。

いくつかの書式の値は、初期化パラメータの値によって決まります。これらの書式要素によって戻される文字は、初期化パラメータ NLS_TERRITORYを使用して暗黙的に指定することもできます。デフォルト日付書式をセッションごとに変更するには、ALTER SESSION文を使用します。

注意注意注意注意 : 書式モデルによってデータベース内に格納された値の内部表現は変更されません。

参照参照参照参照 :

� これらのパラメータの詳細は、『Oracle8iリファレンス・マニュアル』および『Oracle8i NLSガイド』を参照してください。

� これらのパラメータの値を変更する場合の詳細は、7-101ページの「ALTER SESSION」を参照してください。

Oracle SQLの基本要素 2-39

Page 66: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

戻り値の書式戻り値の書式戻り値の書式戻り値の書式 : 例例例例 書式モデルを使用して、データベースから値を戻す場合に Oracleが使用する書式を指定できます。

次の文は、部門 30の従業員のコミッション値を選択し、TO_CHAR関数を使用して、そのコミッション値を数値書式モデル '$9,990.99'で指定した書式の文字値に変換します。

SELECT ename employee, TO_CHAR(comm, '$9,990.99') commission FROM emp WHERE deptno = 30; EMPLOYEE COMMISSION---------- ----------ALLEN $300.00WARD $500.00MARTIN $1,400.00BLAKETURNER $0.00JAMES

Oracleはこの書式モデルによって、ドル記号を先頭に付け、3桁ごとにカンマで区切り、小数点以下 2桁を持つコミッションを戻します。comm列が NULLのすべての従業員について、TO_CHAR関数が NULLを戻していることに注目してください。

次の文は、部門 20の各従業員の入社した日付を選択し、TO_CHAR関数を使用して、その日付を日付書式モデル 'fmMonth DD, YYYY'で指定した書式の文字列に変換します。

SELECT ename, TO_CHAR(Hiredate,'fmMonth DD, YYYY') hiredate FROM emp WHERE deptno = 20; ENAME HIREDATE---------- ------------------SMITH December 17, 1980JONES April 2, 1981SCOTT April 19, 1987ADAMS May 23, 1987FORD December 3, 1981LEWIS October 23, 1997

Oracleはこの書式モデルによって、2桁の日、世紀も含めた 4桁の年で示された入社日付(「fm」で指定)を空白で埋めないで戻します。

参照参照参照参照 : FM書式要素の説明については、2-52ページの「書式モデルの修飾子」を参照してください。

2-40 Oracle8i SQLリファレンス Vol.1

Page 67: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

正しい書式モデルの付与正しい書式モデルの付与正しい書式モデルの付与正しい書式モデルの付与 : 例例例例 列の値を挿入または更新する場合、指定する値のデータ型は列のデータ型と一致している必要があります。書式モデルを使用して、あるデータ型の値を列が必要とする別のデータ型の値に変換する書式を指定できます。

たとえば、DATE列に挿入する値は、DATEデータ型の値か、またはデフォルト日付書式の文字列値である必要があります(Oracleは、暗黙的にデフォルト日付書式の文字列を DATEデータ型に変換します)。値が別の書式で与えられる場合、TO_DATE関数を使用して値をDATEデータ型に変換する必要があります。また、文字列の書式を指定する場合にも、書式モデルを使用する必要があります。

次の文は、TO_DATE関数を使用して BAKERの入社日を更新します。文字列 '1998 05 20'をTO_DATE値に変換するために、書式マスク 'YYYY MM DD'を指定します。

UPDATE emp SET hiredate = TO_DATE('1998 05 20','YYYY MM DD') WHERE ename = 'BLAKE';

この項の後半では、次の使用方法について説明します。

� 数値書式モデル

� 日付書式モデル

� 書式モデルの修飾子

数値書式モデル数値書式モデル数値書式モデル数値書式モデル次の場所で数値書式モデルを使用できます。

� NUMBERデータ型の値を VARCHAR2データ型の値に変換する TO_CHAR関数

� CHARデータ型または VARCHAR2データ型の値を NUMBERデータ型の値に変換するTO_NUMBER関数

すべての数値書式モデルでは、数値が指定された有効桁数に丸められます。小数点左の有効桁数が書式で指定された桁数より多い場合、シャープ記号(#)が値のかわりに戻されます。正の値が非常に大きく、指定の書式で表せない場合、無限大記号(~)が値のかわりに戻されます。同様に、負の値が非常に小さく、指定の書式で表せない場合、負の無限大記号(-~)が戻されます。通常、このイベントは、TO_CHAR関数を制限的な数値書式文字列で使用して、丸め処理が行われた場合に発生します。

参照参照参照参照 : 詳細は、4-108ページの「TO_CHAR(日付変換)」、4-109ページの「TO_CHAR(数値変換)」および 4-110ページの「TO_DATE」を参照してください。

Oracle SQLの基本要素 2-41

Page 68: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

数値書式の要素数値書式の要素数値書式の要素数値書式の要素数値書式モデルは、1つ以上の数値書式の要素で構成されます。表 2-7に数値書式モデルの要素を示します。例を表 2-8に示します。

数値書式モデルに書式要素MI、Sまたは PRが指定されない限り、負の戻り値の先頭には自動的に負の符号が付けられ、正の戻り値の先頭には空白が付けられます。

表表表表 2-7 数値書式の要素数値書式の要素数値書式の要素数値書式の要素

要素要素要素要素 例例例例 説明説明説明説明

,(カンマ) 9,999 指定した位置にカンマを戻します。1つの数値書式モデルに複数のカンマを指定できます。

制限事項制限事項制限事項制限事項 :

� 数値書式モデルは、カンマ要素で始めることはできません。

� 数値書式モデルでは、カンマを小数点文字やピリオドの右側に指定できません。

.(ピリオド) 99.99 指定した位置に小数点(つまりピリオド(.))を戻します。

制限事項制限事項制限事項制限事項 : 1つの数値書式には、1つのピリオドのみ指定できます。

$ $9999 値の前にドル記号を付けて戻します。

0 0999

9990

先行 0(ゼロ)を戻します。

後続 0(ゼロ)を戻します。

9 9999 正の値の場合は先頭に空白を埋め込み、負の値の場合は先頭に負の符号を埋め込んで、指定の桁数にしてから値を戻します。

固定小数点数の整数部分の場合、先行 0(ゼロ)に対して空白を戻します。ただし、値 0(ゼロ)に対しては 0(ゼロ)を戻します。

B B9999 整数部が 0(ゼロ)の場合、書式モデル内の 0にかかわらず、固定小数点数の整数部に対して空白を戻します。

C C999 指定した位置に ISO通貨記号(NLS_ISO_CURRENCYパラメータの現在の値)を戻します。

D 99D99 指定した位置に小数点文字(NLS_NUMERIC_CHARACTERパラメータの現在の値)を戻します。デフォルトはピリオド(.)です。

制限事項制限事項制限事項制限事項 : 1つの数値書式モデルには 1つの小数点文字のみ指定できます。

2-42 Oracle8i SQLリファレンス Vol.1

Page 69: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

EEEE 9.9EEEE 科学表記法で値を戻します。

FM FM90.9 前後に空白を付けずに値を戻します。

G 9G999 指定した位置にグループ・セパレータ(NLS_NUMERIC_CHARACTERパラメータの現在の値)を戻します。単一の数値書式モデルに複数のグループ・セパレータを指定できます。

制限事項制限事項制限事項制限事項 : 数値書式モデルにおいて、グループ・セパレータは小数点文字やピリオドの右側に指定できません。

L L999 指定した位置にローカル通貨記号(NLS_CURRENCYパラメータの現在の値)を戻します。

MI 9999MI 負の値の後に負の符号(-)を戻します。

正の値の後に空白を戻します。

制限事項制限事項制限事項制限事項 : 書式要素MIは、数値書式モデルの最後の位置にのみ指定できます。

PR 9999PR 山カッコ <>の中に負の値を戻します。

正の値の前後に空白を付けて戻します。

制限事項制限事項制限事項制限事項 : 書式要素 PRは、数値書式モデルの最後の位置にのみ指定できます。

RN

rn

RN

rn

大文字のローマ数字で値を戻します。

小文字のローマ数字で値を戻します。

値は 1~ 3999の整数となります。

S S9999 負の値の前に負の符号(-)を戻します。

正の値の前に正の符号(+)を戻します。

9999S 負の値の後に負の符号(-)を戻します。

正の値の後に正の符号(+)を戻します。

制限事項制限事項制限事項制限事項 : 書式要素 Sは、数値書式モデルの最初または最後の位置にのみ指定できます。

表表表表 2-7 数値書式の要素(続き)数値書式の要素(続き)数値書式の要素(続き)数値書式の要素(続き)

要素要素要素要素 例例例例 説明説明説明説明

Oracle SQLの基本要素 2-43

Page 70: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

表 2-8に、異なる numberと 'fmt'に対して次の問合せを行った場合の結果を示します。

SELECT TO_CHAR(number, 'fmt') FROM DUAL;

TM TM テキスト最小値。できるだけ少ない文字数を 10進数で戻します。この要素は、大文字と小文字を区別しません。

デフォルトは TM9です。デフォルトでは、戻り値が 64文字を超えない限り、固定表記法で文字数を戻します。戻り値が 64文字を超える場合、Oracleは自動的に科学表記法で文字数を戻します。

制限事項制限事項制限事項制限事項 :

� この要素を他の要素に優先させることはできません。

� この要素の後には、9、E(1つ)または e(1つ)のみを指定できます。

U U9999 指定した位置にユーロまたは他の第 2通貨記号(NLS_DUAL_CURRENCYパラメータの現在の値)を戻します。

V 999V99 値を 10の n乗にして戻します(必要に応じて数値を丸めます)。この例では nは Vの後の 9の数です。

X XXXX

xxxx

指定の桁数の 16進数値を戻します。指定した値が整数でない場合、Oracleはその値を整数に丸めます。

制限事項制限事項制限事項制限事項 :

� この要素は、正の値または 0(ゼロ)のみを受け入れます。負の値の場合、エラーを戻します。

� この要素は、0(先行 0(ゼロ)を戻す)または FMにのみ優先させることができます。その他の要素の場合、エラーを戻します。0(ゼロ)または FMを Xと同時に指定しないと、戻り値の前に常に空白が 1つ追加されます。

表表表表 2-7 数値書式の要素(続き)数値書式の要素(続き)数値書式の要素(続き)数値書式の要素(続き)

要素要素要素要素 例例例例 説明説明説明説明

2-44 Oracle8i SQLリファレンス Vol.1

Page 71: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

表表表表 2-8 数値変換例の結果数値変換例の結果数値変換例の結果数値変換例の結果

number 'fmt' 結果結果結果結果

-1234567890 9999999999S '1234567890-'

0 99.99 ' .00'

+0.1 99.99 ' .10'

-0.2 99.99 ' -.20'

0 90.99 ' 0.00'

+0.1 90.99 ' 0.10'

-0.2 90.99 ' -0.20'

0 9999 ' 0'

1 9999 ' 1'

0 B9999 ' '

1 B9999 ' 1'

0 B90.99 ' '

+123.456 999.999 ' 123.456'

-123.456 999.999 '-123.456'

+123.456 FM999.009 '123.456'

+123.456 9.9EEEE ' 1.2E+02'

+1E+123 9.9EEEE ' 1.0E+123'

+123.456 FM9.9EEEE ' 1.2E+02'

+123.45 FM999.009 '123.45'

+123.0 FM999.009 '123.00'

+123.45 L999.99 ' $123.45'

+123.45 FML999.99 '$123.45'

+1234567890 9999999999S '1234567890+'

Oracle SQLの基本要素 2-45

Page 72: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

日付書式モデル日付書式モデル日付書式モデル日付書式モデル次の場所で日付書式モデルを使用できます。

� デフォルト日付書式以外の書式の文字値を DATE値に変換する TO_DATE関数

� デフォルト日付書式以外の書式の DATE値を文字列に変換する(たとえば、アプリケーションから日付を出力する)TO_CHAR関数

デフォルト日付書式は、初期化パラメータ NLS_DATE_FORMATで明示的に指定することも、初期化パラメータ NLS_TERRITORYで暗黙的に指定することもできます。これらのパラメータについては、『Oracle8iリファレンス・マニュアル』を参照してください。

デフォルト日付書式をセッションごとに変更するには、ALTER SESSION文を使用します。

日付書式モデルの合計長は最大 22文字です。

日付書式要素日付書式要素日付書式要素日付書式要素日付書式モデルは、表 2-9に示す、1つ以上の日付書式要素で構成されます。

� 入力書式モデルの場合、同じ書式項目は 2回指定できません。また、類似した情報を表す書式項目を組み合せることもできません。たとえば、'SYYYY'と 'BC'を同一の書式文字列内で使用することはできません。

� 表 2-9に示すとおり、日付書式要素には、TO_DATE関数で使用できるものと使用できないものがあります。

日付書式要素での先頭文字の大文字化日付書式要素での先頭文字の大文字化日付書式要素での先頭文字の大文字化日付書式要素での先頭文字の大文字化 戻される日付値では、その大文字と小文字は対応する書式要素の表記に従います。たとえば、日付書式モデル「DAY」は「MONDAY」、「Day」は「Monday」、「day」は「monday」を生成します。

日付書式モデルにおける句読点と文字リテラル日付書式モデルにおける句読点と文字リテラル日付書式モデルにおける句読点と文字リテラル日付書式モデルにおける句読点と文字リテラル 日付書式モデルでは、次の文字も指定できます。

� ハイフン、スラッシュ、カンマ、ピリオド、コロンなどの句読点

� 文字リテラル(二重引用符で囲みます)

これらの文字は、戻り値の中で書式モデルに指定された位置と同じ位置に現れます。

参照参照参照参照 : 7-101ページの「ALTER SESSION」を参照してください。

2-46 Oracle8i SQLリファレンス Vol.1

Page 73: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

表表表表 2-9 日付書式要素日付書式要素日付書式要素日付書式要素

要素要素要素要素 TO_DATEでででで指定できるか指定できるか指定できるか指定できるか

意味意味意味意味

-/,.;:"text"

はい 結果に取り込まれる句読点とテキスト。

ADまたは A.D. はい ピリオド付き /なしで西暦を示します。

注意注意注意注意 : ピリオド付きの標識は、NLS_LANGUAGEパラメータが AMERICANに設定されている場合のみサポートされています。

AMA.M.

はい ピリオド付き /なしで午前を示します。

注意注意注意注意 : ピリオド付きの標識は、NLS_LANGUAGEパラメータが AMERICANに設定されている場合のみサポートされています。

BCB.C.

はい ピリオド付き /なしで紀元前を示します。

注意注意注意注意 : ピリオド付きの標識は、NLS_LANGUAGEパラメータが AMERICANに設定されている場合のみサポートされています。

CCSCC

いいえ '1900'の '19'や '2001'の '20'のような、年を表す 4桁の数のうち、世紀を示す上 2桁。「S」を指定すると紀元前の日付の先頭に「-」が付けられます。

D はい 曜日(1~ 7)。この要素は、TO_DATE関数で指定された日付の妥当性チェックのみに使用されます。

DAY はい 曜日。9文字分の長さまで空白が埋め込まれます。この要素は、TO_DATE関数で指定された日付の妥当性チェックのみに使用されます。

DD はい 月における日(1~ 31)。

DDD はい 年における日(1~ 366)。

DY はい 曜日の省略形。この要素は、TO_DATE関数で指定された日付の妥当性チェックのみに使用されます。

E はい 時代名の略称(日本、韓国、タイ)。

EE はい 時代名の完全名称(日本、韓国、タイ)。

Oracle SQLの基本要素 2-47

Page 74: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

HH はい 時間(1~ 12)。

HH12 はい 時間(1~ 12)。

HH24 はい 時間(0~ 23)。

IW いいえ ISO規格に基づく、年における週(1~ 52または 1~53)。

IYYIYI

いいえ それぞれ ISO年の下 3桁、2桁、1桁。

IYYY いいえ ISO規格に基づく 4桁の年。

J はい ユリウス暦。紀元前 4712年 1月 1日から経過した日数。「J」を付けて指定する数値は、整数にしてください。

MI はい 分(0~ 59)。

MM はい 月の 2桁数値での省略形(01~ 12、1月 =01)

MON はい 月の名前の省略形。

MONTH はい 月の名前。9文字分の長さまで空白が埋め込まれます。

PMP.M.

いいえ ピリオド付き /なしで午前を示します。

注意注意注意注意 : ピリオド付きの標識は、NLS_LANGUAGEパラメータが、AMERICANに設定されている場合のみサポートされています。

Q いいえ 年の四半期(1、2、3、4;1月~ 3月 =1)。

RM はい ローマ数字で表した月(I~ XII;1月 =I)。

RR はい 年を 2桁に丸めます。

� 指定した年が <50で、現在の年の下 2桁が >=50の場合、戻された年の上 2桁は現在の年の上 2桁よりも 1多くなります。

� 指定した年が >=50で、現在の年の下 2桁が <50の場合、戻された年の上 2桁は現在の年の上 2桁と同じになります。

RRRR はい 年を丸めます。4桁または 2桁で入力できます。2桁の場合、RRの場合と同様の結果が戻ります。年を 4桁で入力すると、この処理は行われません。

表表表表 2-9 日付書式要素(続き)日付書式要素(続き)日付書式要素(続き)日付書式要素(続き)

要素要素要素要素 TO_DATEでででで指定できるか指定できるか指定できるか指定できるか

意味意味意味意味

2-48 Oracle8i SQLリファレンス Vol.1

Page 75: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

書式文字列に句読点文字がある日付文字列に英数字がある場合、Oracleはエラーを戻します。次に、例を示します。

TO_CHAR (TO_DATE('0297','MM/YY'), 'MM/YY')

この場合、エラーが戻ります。

日付書式要素と各国語サポート日付書式要素と各国語サポート日付書式要素と各国語サポート日付書式要素と各国語サポートいくつかの日付書式要素の機能は、Oracleを使用している国および言語に依存します。たとえば、次の日付書式要素は、フルスペルで値が戻されます。

� MONTH

� MON

� DAY

� DY

� BC、AD、B.C.または A.D.

� AM、PM、A.M.または P.M.

SS はい 秒(0~ 59)。

SSSSS はい 午前 0時から経過した秒(0~ 86399)。

WW いいえ 年における週(1~ 53)。第 1週はその年の 1月 1日で始まり、1月 7日で終了します。

W いいえ 月における週(1~ 5)。第 1週はその月の 1日で始まり、7日で終了します。

Y,YYY はい 指定した位置にカンマを付けた年。

YEARSYEAR

いいえ フルスペルで表した年。「S」を指定すると紀元前の日付の先頭に「-」が付けられます。

YYYYSYYYY

はい 4桁の年。「S」を指定すると紀元前の日付の先頭に「-」が付けられます。

YYYYYY

はい それぞれ年の下 3桁、2桁、1桁。

表表表表 2-9 日付書式要素(続き)日付書式要素(続き)日付書式要素(続き)日付書式要素(続き)

要素要素要素要素 TO_DATEでででで指定できるか指定できるか指定できるか指定できるか

意味意味意味意味

Oracle SQLの基本要素 2-49

Page 76: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

これらの値を戻す言語は、初期化パラメータ NLS_DATE_LANGUAGEによって明示的に指定することも、初期化パラメータ NLS_LANGUAGEによって暗黙的に指定することもできます。日付書式要素 YEARと SYEARによって戻される値は常に英語です。

日付書式要素 Dは、曜日の数(1~ 7)を戻します。この数が 1である曜日は、初期化パラメータ NLS_TERRITORYによって暗黙的に指定されます。

ISO標準日付書式要素標準日付書式要素標準日付書式要素標準日付書式要素Oracleは、ISO規格に従った日付書式要素 IYYY、IYY、IY、Iおよび IWによって戻される値を計算します。これらの値と日付書式要素 YYYY、YYY、YY、YおよびWWによって戻される値の相違点については、『Oracle8i NLSガイド』の「各国語サポート」の章を参照してください。

RR日付書式要素日付書式要素日付書式要素日付書式要素RR日付書式要素は、YY日付書式要素に似ていますが、20世紀以外の日付値を格納する場合の柔軟性が優れています。RR日付書式要素によって、現在が 20世紀でも、年の下 2桁を指定するだけで、21世紀の日付を格納できます。また、必要に応じて、同じ方法で、21世紀の時点でも 20世紀の日付を格納できます。

YY日付書式要素で TO_DATE関数を使用した場合、日付値は常に現在の日付と同じ上 2桁で戻されます。そのかわりに RR日付書式要素を使用した場合、年に指定した 2桁の数とその年の下 2桁の数によって戻り値の世紀が変化します。表 2-10に、RR日付書式要素の特徴を示します。

次に、RR日付書式要素の特徴を具体的に説明します。

参照参照参照参照 : 各国語サポートの初期化パラメータの詳細は、『Oracle8iリファレンス・マニュアル』および『Oracle8i NLSガイド』を参照してください。

表表表表 2-10 RR日付要素書式日付要素書式日付要素書式日付要素書式

指定された指定された指定された指定された 2桁の年桁の年桁の年桁の年

0~~~~ 49 50~~~~ 99

現在の年の現在の年の現在の年の現在の年の下下下下 2桁桁桁桁

0~~~~ 49 戻される日付は、現在の日付と同じ上 2桁を持ちます。

戻される日付の上 2桁は、現在の日付の上 2桁より 1少なくなります。

50~~~~ 99 戻される日付の上 2桁は、現在の日付の上 2桁より 1大きくなります。

戻される日付は、現在の日付と同じ上 2桁を持ちます。

2-50 Oracle8i SQLリファレンス Vol.1

Page 77: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

RR日付書式の例日付書式の例日付書式の例日付書式の例

次の問合せが、1950年~ 1999年の間に発行されるとします。

SELECT TO_CHAR(TO_DATE('27-OCT-98', 'DD-MON-RR') ,'YYYY') "Year" FROM DUAL;

Year----1998

SELECT TO_CHAR(TO_DATE('27-OCT-17', 'DD-MON-RR') ,'YYYY') "Year" FROM DUAL;

Year----2017

次の問合せが、2000年~ 2049年の間に発行されるとします。

SELECT TO_CHAR(TO_DATE('27-OCT-98', 'DD-MON-RR') ,'YYYY') "Year" FROM DUAL;

Year----1998

SELECT TO_CHAR(TO_DATE('27-OCT-17', 'DD-MON-RR') ,'YYYY') "Year" FROM DUAL;

Year----2017

発行される年(2000年の前後)にかかわらず、問合せが同じ値を戻していることに注目してください。RR日付書式要素によって、年の上 2桁が異なっても同じ値を戻す SQL文を記述できます。

Oracle SQLの基本要素 2-51

Page 78: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

日付書式要素の接尾辞日付書式要素の接尾辞日付書式要素の接尾辞日付書式要素の接尾辞表 2-11に、日付書式要素に付加できる接尾辞を示します。

書式モデルの修飾子書式モデルの修飾子書式モデルの修飾子書式モデルの修飾子TO_CHAR関数の書式モデルで修飾子 FMと FXを使用して、空白の埋め方および書式検査を制御できます。

修飾子は書式モデルに複数指定できます。この場合、後の修飾子は前の修飾子の効果を逆にします。第 1の修飾子は、それに後続するモデル部分に対して有効になり、第 2の修飾子が指定されると、その後のモデル部分で無効になります。第 3の修飾子が指定されると、その後のモデル部分で再び有効になります。以降、同様に続きます。

FM Fill mode(埋込みモード)です。この修飾子は、TO_CHAR関数の戻り値における空白の埋込みを抑制します。

� TO_CHAR関数の日付書式要素では、この修飾子は後続の文字要素(MONTHなど)では空白を抑制し、日付書式モデルの後続の数要素(MIなど)では先行 0(ゼロ)を抑制します。FMを指定していない場合、文字要素の結果は常に右に空白を埋め込んだ固定長となり、数要素に対しては常に先行 0(ゼロ)が戻されます。FMを指定した場合、空白の埋込みがないために、戻り値の長さが異なることもあります。

� TO_CHAR関数の数値書式要素では、この修飾子は数値の左に加えられた空白を抑制します。これによって、その結果は出力バッファ中で左揃えになります。FMを指定していない場合、結果は常に右揃えとなり、数の左に空白が埋め込まれます。

表表表表 2-11 日付書式要素の接尾辞日付書式要素の接尾辞日付書式要素の接尾辞日付書式要素の接尾辞

接尾辞接尾辞接尾辞接尾辞 意味意味意味意味 要素の例要素の例要素の例要素の例 値の例値の例値の例値の例

TH 序数 DDTH 4TH

SP フルスペルで表した数 DDSP FOUR

SPTHまたはTHSP

フルスペルで表した序数 DDSPTH FOURTH

制限事項制限事項制限事項制限事項 :

� これらの接尾辞を 1つでも日付書式要素に付加した場合、戻り値は常に英語です。

� 日付の接尾辞は出力のみで有効です。データベースに日付を挿入するためには使用できません。

2-52 Oracle8i SQLリファレンス Vol.1

Page 79: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

FX Format exact(厳密な書式一致)です。この修飾子は、TO_DATE関数の文字引数と日付書式モデルに対して、厳密な一致を指定します。

� 文字引数における句読点と引用符で囲まれたテキストは、書式モデルの対応する部分と(大文字小文字の違いを除いて)厳密に一致する必要があります。

� 文字引数には余分な空白を含めることはできません。FXを指定していない場合、Oracleは余分な空白を無視します。

� 文字引数における数値データの桁数は、書式モデルの対応する要素と同じ桁数である必要があります。FXを指定していない場合、文字引数における数値により先行 0(ゼロ)が省略されます。

FXが使用可能になっているとき、FM修飾子を指定して、この先行 0(ゼロ)のチェックを使用禁止にできます。

文字引数の位置がこれらの条件に違反する場合、Oracleはエラー・メッセージを戻します。

フォーマット修飾子の例フォーマット修飾子の例フォーマット修飾子の例フォーマット修飾子の例次の文は、日付書式モデルを使用して文字式を戻します。

SELECT TO_CHAR(SYSDATE, 'fmDDTH')||' of '||TO_CHAR (SYSDATE, 'fmMonth')||', '||TO_CHAR(SYSDATE, 'YYYY') "Ides" FROM DUAL;

Ides ------------------ 3RD of April, 1998

この文は FM修飾子も使用していることに注目してください。FMを指定しないと、月は、次のように空白を埋め込んで 9文字にして戻されます。

SELECT TO_CHAR(SYSDATE, 'DDTH')||' of '|| TO_CHAR(SYSDATE, 'Month')||', '|| TO_CHAR(SYSDATE, 'YYYY') "Ides" FROM DUAL;

Ides ----------------------- 03RD of April , 1998

Oracle SQLの基本要素 2-53

Page 80: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

書式モデル

次の文は、2つの連続した単一引用符を含む日付書式モデルを使用することによって、戻り値に単一引用符を含めます。

SELECT TO_CHAR(SYSDATE, 'fmDay')||'''s Special' "Menu" FROM DUAL;

Menu ----------------- Tuesday's Special

書式モデル内の文字リテラルにおいても、同じ目的で単一引用符を 2つ連続して使用できます。

表 2-12に、char値と 'fmt'の様々な組合せに対し、次の文が FXを使用したマッチング条件を満たしているかどうかを示します(tableという名前の表には DATEデータ型の列date_columnがあります)。

UPDATE table SET date_column = TO_DATE(char, 'fmt');

表表表表 2-12 FX書式モデル修飾子による文字データと書式モデルのマッチング書式モデル修飾子による文字データと書式モデルのマッチング書式モデル修飾子による文字データと書式モデルのマッチング書式モデル修飾子による文字データと書式モデルのマッチング

char 'fmt' 一致とエラー一致とエラー一致とエラー一致とエラー

'15/JAN/1998' 'DD-MON-YYYY' 一致

' 15! JAN % /1998' 'DD-MON-YYYY' エラー

'15/JAN/1998' 'FXDD-MON-YYYY' エラー

'15-JAN-1998' 'FXDD-MON-YYYY' 一致

'1-JAN-1998' 'FXDD-MON-YYYY' エラー

'01-JAN-1998' 'FXDD-MON-YYYY' 一致

'1-JAN-1998' 'FXFMDD-MON-YYYY' 一致

2-54 Oracle8i SQLリファレンス Vol.1

Page 81: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NULL

文字列から日付への変換に関する規則文字列から日付への変換に関する規則文字列から日付への変換に関する規則文字列から日付への変換に関する規則次の追加の書式化規則は、文字列値を日付値に変換する場合に適用されます(ただし、修飾子 FMと FXを使用して空白の埋め方および書式検査を制御した場合は適用できません)。

� 先行 0(ゼロ)を含む数値書式要素の桁がすべて指定されている場合は、日付文字列から書式文字列に含まれる句読点を省略できます。たとえば、MM、DD、YYなどの 2桁の書式要素については、2のかわりに 02を指定した場合です。

� 日付文字列から、書式文字列の最後にある時間フィールドを省略できます。

� 日付書式要素と日付文字列内の対応する文字のマッチングに失敗した場合、表 2-13に示すとおり、元の書式要素のかわりに、別の書式要素の適用が試みられます。

NULL行内のある列の値がない場合、その列は NULLである、またはNULLを含むといいます。NOT NULL整合性制約または PRIMARY KEY整合性制約によって制限されていない列の場合は、どのデータ型の列でも NULLを含むことができます。実際のデータ値が不定または値に意味がない場合に、NULLを使用してください。

NULLは値 0(ゼロ)と同じではないため、0(ゼロ)を表すために NULL値を使用しないでください。(現在、Oracleは、長さが 0(ゼロ)の文字値を NULLとして処理します。ただし、この処理は Oracleの将来のバージョンでも継続されるとは限らないため、空の文字列を NULLとして処理しないことをお薦めします。)NULLを含む算術式は、必ず NULLに評価されます。たとえば、NULLに 10を加算しても結果は NULLです。実際、オペランドに NULLを指定した場合、(連結演算子を除く)すべての演算子は NULLを戻します。

表表表表 2-13 Oracle形式マッチング形式マッチング形式マッチング形式マッチング

元の書式要素元の書式要素元の書式要素元の書式要素 元の書式要素のかわりに試行元の書式要素のかわりに試行元の書式要素のかわりに試行元の書式要素のかわりに試行する書式要素する書式要素する書式要素する書式要素

'MM' 'MON'および 'MONTH'

'MON 'MONTH'

'MONTH' 'MON'

'YY' 'YYYY'

'RR' 'RRRR'

Oracle SQLの基本要素 2-55

Page 82: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NULL

SQL関数での関数での関数での関数での NULL引数として NULLを指定した場合、(REPLACE、NVLおよび CONCATを除く)すべてのスカラー関数では NULLが戻されます。NVL関数を使用した場合、NULLが発生したときに値を戻すことができます。たとえば、NVL(COMM,0)は、COMMがNULLの場合は 0(ゼロ)を戻し、COMMが NULLでなければ COMMの値を戻します。

ほぼすべての集計関数では、NULLは無視されます。たとえば、1000、NULL、NULL、NULL、2000という 5つの値の平均を得る問合せを考えます。そのような問合せでは NULLは無視され、平均は(1000+2000)/2=1500となります。

比較演算子での比較演算子での比較演算子での比較演算子での NULLNULLを検査するには、比較演算子 IS NULLおよび IS NOT NULLのみを使用します。NULLを他の演算子で使用して、その結果が NULLの値に依存する場合、結果は UNKNOWNになります。NULLはデータの欠落を表すため、任意の値や別の NULLとの関係で等号や不等号は成り立ちません。ただし、Oracleは DECODE式を評価するときに 2つのNULLを等しい値とみなします。

コンポジット・キーの場合、2つの NULLは等しいと判断されます。NULLを含む 2つのコンポジット・キーは、そのキーの NULL以外の構成要素のすべてが等しい場合、同一であると判断されます。

条件での条件での条件での条件での NULLUNKNOWNとして評価される条件は、FALSEと評価される場合とほとんど同じ働きをします。たとえば、UNKNOWNと評価される条件を WHERE句に持つ SELECT文からは、行が戻されません。ただし、UNKNOWNと評価される条件は FALSE条件とは異なり、UNKNOWN条件をさらに評価しても UNKNOWNと評価されます。したがって、NOT FALSEは TRUEと評価されますが、NOT UNKNOWNは UNKNOWNと評価されます。

表 2-14は、条件に NULLを含む評価の例です。SELECT文の WHERE句で UNKNOWNと評価される条件が使用された場合、その問合せに対して行は戻されません。

参照参照参照参照 : 構文および追加情報の詳細は、5-13ページの「DECODE式」を参照してください。

2-56 Oracle8i SQLリファレンス Vol.1

Page 83: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

疑似列

NULLを含む論理式の結果を示した真理値表は、3-12ページの表 3-6、表 3-7および表 3-8を参照してください。

疑似列疑似列疑似列疑似列疑似列疑似列疑似列疑似列は表の列のように使用できますが、実際に表に格納されているわけではありません。疑似列から値を選択できますが、疑似列に対して値の挿入、更新、削除はできません。この項では、次の疑似列について説明します。

� CURRVALと NEXTVAL

� LEVEL

� ROWID

� ROWNUM

CURRVALとととと NEXTVAL順序は、一意の連続値を生成できるスキーマ・オブジェクトです。これらの値は、主キーや一意のキーによく使用されます。次の疑似列を使用した SQL文で、順序値を参照できます。

表表表表 2-14 NULLを含む条件を含む条件を含む条件を含む条件

Aの値の値の値の値 条件条件条件条件 評価結果評価結果評価結果評価結果

10 a IS NULL FALSE

10 a IS NOT NULL TRUE

NULL a IS NULL TRUE

NULL a IS NOT NULL FALSE

10 a = NULL UNKNOWN

10 a != NULL UNKNOWN

NULL a = NULL UNKNOWN

NULL a != NULL UNKNOWN

NULL a = 10 UNKNOWN

NULL a != 10 UNKNOWN

Oracle SQLの基本要素 2-57

Page 84: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

疑似列

CURRVALと NEXTVALは、順序の名前で修飾する必要があります。

sequence.CURRVALsequence.NEXTVAL

別のユーザーのスキーマ内での順序の現在の値または次の値を参照するには、その順序に対する SELECTオブジェクト権限または SELECT ANY SEQUENCEシステム権限のどちらかが必要です。さらに、その順序は、次に示すとおり、順序を含むスキーマで修飾する必要があります。

schema.sequence.CURRVALschema.sequence.NEXTVAL

リモート・データベース上の順序の値を参照するには、次のように、データベース・リンクの完全な名前または部分的な名前で順序を修飾する必要があります。

[email protected]@dblink

順序値の使用場所順序値の使用場所順序値の使用場所順序値の使用場所次の場所で CURRVALと NEXTVALを使用できます。

� 副問合せ、スナップショットまたはビューに含まれていない SELECT文の SELECT構文のリスト

� INSERT文内の副問合せの SELECT構文のリスト

� INSERT文の VALUES句

� UPDATE文の SET句

CURRVAL 順序の現在の値を戻します。

NEXTVAL 順序を増加させて次の値を戻します。

参照参照参照参照 : データベース・リンクの参照方法の詳細は、2-88ページの「リモート・データベース内のオブジェクトの参照」を参照してください。

2-58 Oracle8i SQLリファレンス Vol.1

Page 85: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

疑似列

制限事項制限事項制限事項制限事項 : 次の場所では、CURRVALと NEXTVALを使用できません。

� DELETE文、SELECT文または UPDATE文内の副問合せ

� ビューの問合せ、またはマテリアライズド・ビューの問合せ

� DISTINCT演算子を持つ SELECT文

� GROUP BY句または ORDER BY句を持つ SELECT文

� 集合演算子 UNION、INTERSECTまたは MINUSによって別の SELECT文と結合されている SELECT文

� SELECT文の WHERE句

� CREATE TABLE文または ALTER TABLE文の列の DEFAULT値

� CHECK制約の条件

また、CURRVALまたは NEXTVALを使用する単一の SQL文では、参照された LONG列、更新された表、ロックされた表がすべて同じデータベース上にある必要があります。

順序値の使用方法順序値の使用方法順序値の使用方法順序値の使用方法順序を作成するときに、初期値と増分値を定義できます。NEXTVALの最初の参照によって、順序の初期値が戻されます。その後の参照によって、定義された NEXTVAL増分値で順序が増加され、その新しい値が戻されます。CURRVALを参照すると、NEXTVALへの最後の参照で戻された値である、順序の現在の値が常に戻されます。なお、セッションの順序に対してCURRVALを使用する前に、まず NEXTVALで順序を初期化してください。

単一の SQL文の中では、Oracleは行ごとに 1回のみ順序を増加させます。1つの文の中で順序に対して複数回 NEXTVALを参照している場合、Oracleは 1回のみ順序を増加させ、NEXTVALが現れるたびにすべて同じ値を戻します。1つの文の中で CURRVALと NEXTVALの両方を参照している場合、Oracleは順序を増加させ、それらが文の中で現れる順序にかかわらず、CURRVALと NEXTVALの両方に対して同じ値を戻します。

順序には、待機またはロックすることなく多数のユーザーが同時にアクセスできます。

順序の現在の値の検索順序の現在の値の検索順序の現在の値の検索順序の現在の値の検索 : 例例例例 この例は、従業員順序の現在の値を選択します。

SELECT empseq.currval FROM DUAL;

参照参照参照参照 : トランザクションの詳細は、9-149ページの「CREATE SEQUENCE」を参照してください。

Oracle SQLの基本要素 2-59

Page 86: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

疑似列

表への順序値の挿入表への順序値の挿入表への順序値の挿入表への順序値の挿入 : 例例例例 この例は、従業員順序を増加させ、従業員表に挿入される新しい従業員のためにその値を使用します。

INSERT INTO emp VALUES (empseq.nextval, 'LEWIS', 'CLERK', 7902, SYSDATE, 1200, NULL, 20);

順序の現在の値の再使用順序の現在の値の再使用順序の現在の値の再使用順序の現在の値の再使用 : 例例例例 この例は、次の注文番号を使用して新しい注文をマスター注文表に追加します。その後、この番号を使用して関連する注文をディテール注文表に追加します。

INSERT INTO master_order(orderno, customer, orderdate) VALUES (orderseq.nextval, 'Al''s Auto Shop', SYSDATE);

INSERT INTO detail_order (orderno, part, quantity) VALUES (orderseq.currval, 'SPARKPLUG', 4);

INSERT INTO detail_order (orderno, part, quantity) VALUES (orderseq.currval, 'FUEL PUMP', 1);

INSERT INTO detail_order (orderno, part, quantity) VALUES (orderseq.currval, 'TAILPIPE', 2);

LEVEL階層問合せによって戻される各行について、LEVEL疑似列は、ルート・ノードに 1を戻し、ルートの子には 2を戻します(以降同様に続きます)。ルート・ノードは逆ツリー構造の最上位ノードです。子ノードはルートではない任意のノードです。親ノードは子を持つ任意のノードです。リーフ・ノードは子を持たない任意のノードです。図 2-2に、逆ツリーのノードとそれらの LEVEL値を示します。

2-60 Oracle8i SQLリファレンス Vol.1

Page 87: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

疑似列

図図図図 2-2 階層ツリー階層ツリー階層ツリー階層ツリー

問合せの中で階層型の関連を定義するには、START WITH句および CONNECT BY句を使用する必要があります。

ROWIDデータベース内の各行について、ROWID疑似列によって行のアドレスが戻されます。Oracle8iの ROWID値には、行を検索するために必要な次の情報が含まれています。

� オブジェクトのデータ・オブジェクト番号

� データ・ファイル内のデータ・ブロック

� データ・ブロック内の行(最初の行は 0)

� データ・ファイル(最初のファイルは 1)。ファイル番号は表領域に対して相対的です。

ほとんどの場合、ROWID値ではデータベース内の行は一意に識別されます。ただし、同じクラスタに格納されている異なる表の行には、同じ ROWIDを持つことができます。

ROWID疑似列の値は ROWIDまたは UROWIDデータ型を持ちます。

参照参照参照参照 :

� LEVEL疑似列の使用方法の詳細は、11-88ページの「SELECTおよび副問合せ」を参照してください。

� マテリアライズド・ビューに関する一般的な情報については、5-21ページの「階層問合せ」を参照してください。

子/�リーフ�

Level 1

Level 2

Level 3

Level 4

親/子�

ルート/�親�

子/�リーフ�親/子�

子/�リーフ�

親/子�

子/�リーフ�

子/リーフ�

親/子�

Oracle SQLの基本要素 2-61

Page 88: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

疑似列

ROWID値には、次の重要な用途があります。

� 単一の行に最も速くアクセスする方法です。

� 表の行が格納されている様子を示すことができます。

� 表の行に対する一意の識別子です。

表の主キーとして ROWIDを使用しないでください。たとえば、インポート・ユーティリティとエクスポート・ユーティリティで行を削除してから再挿入する場合、ROWIDが変わる場合があります。行を削除した場合、Oracleは、後から新しく挿入される行にそのROWIDを再度割り当てる可能性があります。

問合せの SELECT句と WHERE句で ROWID疑似列を使用できますが、これらの疑似列の値が実際にデータベースに格納されるわけではありません。ROWID疑似列の値に対して挿入、更新および削除はできません。

例例例例 次の文は、部門 20の従業員のデータを含むすべての行のアドレスを選択します。

SELECT ROWID, ename FROM emp WHERE deptno = 20; ROWID ENAME------------------ ----------AAAAqYAABAAAEPvAAA SMITHAAAAqYAABAAAEPvAAD JONESAAAAqYAABAAAEPvAAH SCOTTAAAAqYAABAAAEPvAAK ADAMSAAAAqYAABAAAEPvAAM FORD

ROWNUMROWNUM疑似列は、問合せによって戻される各行について、表や結合処理された行の集合から Oracleが行を選択する順序を示す番号を戻します。つまり、選択される最初の行のROWNUMは 1、2番目の行の ROWNUMは 2です(以降同様に続きます)。

次の例のように、ROWNUMを使用して問合せによって戻される行数を制限できます。

SELECT * FROM emp WHERE ROWNUM < 10;

参照参照参照参照 : 2-20ページの「UROWIDデータ型」および 2-18ページの「ROWIDデータ型」を参照してください。

2-62 Oracle8i SQLリファレンス Vol.1

Page 89: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

疑似列

同じ問合せで ROWNUMに ORDER BY句が続く場合、ORDER BY句によって行が再び順序付けられます。結果は、行がアクセスされる方法によって異なります。たとえば、ORDER BY句の指定によって Oracleが索引を使用してデータにアクセスする場合、索引なしの場合とは異なる順序で行が取り出されることがあります。そのため、後続の文には前述の例と同じ効果はありません。

SELECT * FROM emp WHERE ROWNUM < 11 ORDER BY empno;

ORDER BY句を副問合せに埋め込んで ROWNUM条件をトップレベル問合せに置いた場合、行の順序付けの後で ROWNUM条件を強制的に適用させることができます。たとえば、次の問合せは、小さい順から 10個の従業員数を戻します。これは、top-N queryと呼ばれることがあります。

SELECT * FROM (SELECT empno FROM emp ORDER BY empno) WHERE ROWNUM < 11;

前述の例では、ROWNUM値はトップレベルの SELECT文の値です。これらの値は、副問合せ内の empnoによって行が順序付けられた後で生成されます。

比較条件「ROWNUM値 >正の整数」は、常に偽となるため注意してください。たとえば、次の問合せでは行は戻されません。

SELECT * FROM emp WHERE ROWNUM > 1;

最初にフェッチされる行の ROWNUMには 1が割り当てられるため、条件は偽と判断されます。2番目にフェッチされる予定であった行は最初の行になるため、この ROWNUMにも 1が割り当てられ、条件も偽と判断されます。このように、後続するすべての行が条件を満たさないため、行は戻されません。

また、次の例のように、ROWNUMを使用して表の各行に一意の値を割り当てることもできます。

UPDATE tabx SET col1 = ROWNUM;

参照参照参照参照 : top-N queryの詳細は、『Oracle8iアプリケーション開発者ガイド 基礎編』を参照してください。

注意注意注意注意 : 問合せで ROWNUMを使用した場合、ビューの最適化に影響することがあります。詳細は、『Oracle8i概要』を参照してください。

Oracle SQLの基本要素 2-63

Page 90: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

コメント

コメントコメントコメントコメントSQL文とスキーマ・オブジェクトに対してコメントを付けることができます。

SQL文中のコメント文中のコメント文中のコメント文中のコメントSQL文中のコメントは、文の実行には影響しませんが、アプリケーションを読みやすく、メンテナンスしやすくできます。文にはアプリケーションでのその文の目的を記述したコメントを含めることができます。

コメントは、文中のキーワード、パラメータまたは句読点の間に入れることができます。次のどちらかの方法を使用します。

� スラッシュとアスタリスク(/*)を使用してコメントを開始します。コメントのテキストを続けます。このテキストは複数行に及んでもかまいません。アスタリスクとスラッシュ(*/)を使用してコメントを終了します。開始文字と終了文字は、空白や改行によってテキストから切り離す必要はありません。

� --(ハイフン 2個)を使用してコメントを開始します。コメントのテキストを続けます。このテキストは複数行にまたがることはできません。改行によってコメントを終了します。

SQL文の中に両方のスタイルのコメントが複数あってもかまいません。コメントのテキストには、使用しているデータベース・キャラクタ・セットの印字可能文字を含めることができます。

例例例例 次の文には多くのコメントが含まれています。

SELECT ename, sal + NVL(comm, 0), job, loc/* Select all employees whose compensation isgreater than that of Jones.*/ FROM emp, dept /*The DEPT table is used to get the department name.*/ WHERE emp.deptno = dept.deptno AND sal + NVL(comm,0) > /* Subquery: */ (SELECT sal + NLV(comm,0) /* total compensation is sal + comm */ FROM emp WHERE ename = 'JONES');

注意注意注意注意 : SQLスクリプト内の SQL文では、このようなスタイルのコメントを使用できません。この場合、SQL*Plusの REMARKコマンドを使用してください。これらの文の詳細は、『Oracle8i SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。

2-64 Oracle8i SQLリファレンス Vol.1

Page 91: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

コメント

SELECT ename, -- select the name sal + NVL(comm, 0), -- total compensation job, -- job loc -- and city containing the office FROM emp, -- of all employees dept WHERE emp.deptno = dept.deptno AND sal + NVL(comm, 0) > -- whose compensation -- is greater than (SELECT sal + NVL(comm,0) -- the compensation FROM emp WHERE ename = 'JONES'); -- of Jones.

スキーマ・オブジェクトに関するコメントスキーマ・オブジェクトに関するコメントスキーマ・オブジェクトに関するコメントスキーマ・オブジェクトに関するコメントCOMMENTコマンドを使用して、表、ビュー、マテリアライズド・ビューまたは列にコメントを付けることができます。スキーマ・オブジェクトに付けたコメントは、データ・ディクショナリに格納されます。

ヒントヒントヒントヒントOracleオプティマイザに指示(ヒント)を与えるために、SQL文中でコメントを使用できます。オプティマイザは、これらのヒントを提案として使用し、文の実行計画を選択します。

文ブロックには、ヒントを含むコメントは 1つのみ指定できます。このコメントは、SELECT、UPDATE、INSERTまたは DELETEのいずれかのキーワードの後でのみ指定できます。次の構文は、Oracleが文ブロック内でサポートする両方のスタイルのコメントに含まれるヒントの構文です。

{DELETE|INSERT|SELECT|UPDATE} /*+ hint [text] [hint[text]]... */

または

{DELETE|INSERT|SELECT|UPDATE} --+ hint [text] [hint[text]]...

参照参照参照参照 : コメントについては、8-129ページの「COMMENT」を参照してください。

Oracle SQLの基本要素 2-65

Page 92: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

コメント

ここで、それぞれの意味は次のとおりです。

� DELETE、INSERT、SELECTまたは UPDATEは、文ブロックを始める DELETE、INSERT、SELECTまたは UPDATEのいずれかのキーワードです。ヒントを含むコメントは、これらのキーワードの後でのみ指定できます。

� +(プラス記号)は、コメントをヒントのリストとして、Oracleに解析させます。プラス記号は、コメント・デリミタの直後に置く必要があります(空白を入れてはいけません)。

� hintは、この項で説明するヒントの 1つです。プラス記号とヒントの間の空白は入れても入れなくてもかまいません。コメントに複数のヒントが含まれている場合は、1つ以上の空白で区切る必要があります。

� textは、ヒントに含めることができるその他のコメント・テキストです。

次に、各ヒントの構文および説明を示します。ヒントは、機能のカテゴリに分類して説明しています。

最適化方法と目標のヒント最適化方法と目標のヒント最適化方法と目標のヒント最適化方法と目標のヒント

ALL_ROWSヒントによって、最高のスループットを実現する(リソース使用の合計を最小限にする)という目的で文ブロックを最適化するために、コストベース方法を明示的に選択します。

CHOOSEヒントによって、各 SQL文について、ルールベース方法とコストベース方法のいずれかをオプティマイザが選択します。どちらを選択するかは、この文による表アクセスの統計情報を利用します。

参照参照参照参照 : ヒントの詳細は、『Oracle8iパフォーマンスのための設計およびチューニング』および『Oracle8i概要』を参照してください。

/*+ ALL_ROWS */

/*+ CHOOSE */

2-66 Oracle8i SQLリファレンス Vol.1

Page 93: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

コメント

FIRST_ROWSヒントによって、最適の応答時間を実現する(最初の行を戻すために使用するリソースを最小限にする)という目的で文ブロックを最適化するために、コストベース方法を明示的に選択します。

このヒントによって、オプティマイザは次のように選択できます。

� 索引スキャンが使用可能な場合、フル・テーブル・スキャンを選択します。

� 索引スキャンが使用可能な場合、対応する表がネステッド・ループの内部表であれば、ソート /マージ結合に対して、ネステッド・ループ・ジョインを選択します。

� 索引スキャンが ORDER BY句によって使用可能な場合、ソート操作を回避します。

RULEヒントによって、文ブロックのために、ルールベース最適化を明示的に選択します。これによって、文ブロックに指定されている別のヒントは無視されます。

アクセス方法のヒントアクセス方法のヒントアクセス方法のヒントアクセス方法のヒント

AND_EQUALヒントによって、複数の単一列索引のスキャン結果をマージするアクセス・パスを使用する実行計画を明示的に選択します。

CLUSTERヒントによって、指定された表にアクセスするために、クラスタ・スキャンを明示的に選択します。このヒントは、クラスタ化されているオブジェクトでのみ適用されます。

FULLヒントによって、指定された表に対するフル・テーブル・スキャンを明示的に選択します。

/*+ FIRST_ROWS */

/*+ RULE */

/*+ AND_EQUAL ( table index indexindex index index

) */

/*+ CLUSTER ( table ) */

/*+ FULL ( table ) */

Oracle SQLの基本要素 2-67

Page 94: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

コメント

HASHヒントによって、指定された表にアクセスするために、ハッシュ・スキャンを明示的に選択します。このヒントは、クラスタに格納されている表のみで適用されます。

INDEXヒントによって、指定された表に対する索引スキャンを明示的に選択します。INDEXヒントは、ドメイン、B*ツリーおよびビットマップ索引に対して使用できます。ただし、ビットマップ索引に対しては、INDEXヒントではなく、適応性の高い INDEX_COMBINEヒントを使用することをお薦めします。

INDEX_ASCヒントによって、指定された表に対する索引スキャンを明示的に選択します。文が索引レンジ・スキャンを使用する場合、索引付けされた値の昇順に索引エントリをスキャンします。

INDEX_COMBINEヒントによって、表に対するビットマップ・アクセス・パスを明示的に選択します。索引が INDEX_COMBINEヒントの引数として指定されていない場合は、表にアクセスするための推定コストが最適であるビットマップ索引の組合せをオプティマイザが使用します。特定の索引が引数として指定されている場合、オプティマイザは、指定されたビットマップ索引の組合せを次々に試します。

INDEX_DESCヒントによって、指定された表に対する索引スキャンを明示的に選択します。文が索引レンジ・スキャンを使用する場合、索引付けされた値の降順に索引エントリをスキャンします。パーティション索引では、結果はパーティションごとに降順に戻されます。

/*+ HASH ( table ) */

/*+ INDEX ( tableindex

) */

/*+ INDEX_ASC ( tableindex

) */

/*+ INDEX_COMBINE ( tableindex

) */

/*+ INDEX_DESC ( tableindex

) */

2-68 Oracle8i SQLリファレンス Vol.1

Page 95: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

コメント

INDEX_FFSヒントによって、フル・テーブル・スキャンではなく、高速全索引スキャンを実行します。

NO_INDEXヒントによって、指定された表に対する一連の索引を明示的に禁止します。

ROWIDヒントによって、指定された表に対する ROWIDによるテーブル・スキャンを明示的に選択します。

結合順序のヒント結合順序のヒント結合順序のヒント結合順序のヒント

ORDEREDヒントによって、表が、FROM句に指定されている順序で結合されるようにします。

結合を実行する SQL文で ORDEREDヒントを省略した場合、オプティマイザが、表の結合順序を選択します。オプティマイザが選択しない表から選択される行数がわかる場合は、ORDEREDヒントを使用すると、結合順序を指定できる場合があります。この情報によって、オプティマイザより効率的に内部表および外部表を選択できます。

STARヒントによって、スター問合せ計画を強制的に使用します。スター計画の問合せでは、結合順序の最後に最大表があり、その最大表とネステッド・ループ・ジョインを連結索引上で結合します。3つ以上の表があり、大規模表の連結索引に 3つ以上の列があり、アクセス方法のヒントまたは結合方法のヒントに矛盾がない場合に、STARヒントを適用します。また、オプティマイザは、小規模表の異なる順列についても考慮します。

/*+ INDEX_FFS ( tableindex

) */

/*+ NO_INDEX ( tableindex

) */

/*+ ROWID ( table ) */

/*+ ORDERED */

/*+ STAR */

Oracle SQLの基本要素 2-69

Page 96: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

コメント

結合操作のヒント結合操作のヒント結合操作のヒント結合操作のヒント

DRIVING_SITEヒントによって、問合せ処理が、Oracleによって選択されたサイトとは異なるサイトで実行されるようにします。このヒントは、ルールベースまたはコストベースの最適化で使用可能です。

特定の問合せの場合に、NOT IN副問合せに MERGE_AJまたは HASH_AJヒントを指定します。MERGE_AJはソート /マージ・アンチジョインを使用し、HASH_AJはハッシュ・アンチジョインを使用します。

特定の問合せの場合に、EXISTS副問合せに HASH_SJまたは MERGE_SJヒントを指定します。HASH_SJはハッシュ・セミジョインを使用し、MERGE_SJはソート /マージ・セミジョインを使用します。

LEADINGヒントによって、結合順序で最初の表として指定された表を使用できるようにします。

異なる表で LEADINGヒントを指定する場合、すべての LEADINGヒントは無視されます。ORDEREDヒントを指定すると、すべての LEADINGヒントはオーバーライドされます。

/*+ DRIVING_SITE ( table ) */

/*+ HASH_AJ */

/*+ MERGE_AJ */

/*+ HASH_SJ */

/*+ MERGE_SJ */

/*+ LEADING ( table ) */

2-70 Oracle8i SQLリファレンス Vol.1

Page 97: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

コメント

USE_HASHヒントによって、ハッシュ結合を使用して、指定された各表を別の行ソースに結合させます。

USE_MERGEヒントによって、ソート /マージ結合を使用して、指定された各表を別の行ソースに結合させます。

USE_NLヒントによって、ネステッド・ループ・ジョインを使用して、指定された各表を別の行ソースに結合させます。この場合、指定された表を内部表として使用します。

パラレル実行のヒントパラレル実行のヒントパラレル実行のヒントパラレル実行のヒント

APPENDヒントを INSERT文で使用する場合、表にデータが簡単に追加されます。表に現在割り当てられているブロックに存在する空き領域は使用されません。

INSERT文が、PARALLELヒントまたは句を使用してパラレル化された場合、デフォルトでAPPENDモードが使用されます。NOAPPENDヒントを使用した場合、APPENDモードはオーバーライドされます。APPENDヒントは、シリアル挿入およびパラレル挿入の両方に適用します。

注意注意注意注意 : Oracleは、一時表に関するパラレル・ヒントを無視します。

参照参照参照参照 : 詳細は、10-7ページの「CREATE TABLE」および『Oracle8i概要』を参照してください。

/*+ USE_HASH ( table ) */

/*+ USE_MERGE ( table ) */

/*+ USE_NL ( table ) */

/*+

APPEND

NOAPPEND

parallel_hint

,

*/

Oracle SQLの基本要素 2-71

Page 98: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

コメント

[NO]オプションが操作対象の表に設定されているかどうかによって、追加操作は、LOGGINGモードまたは NOLOGGINGモードで実行されます。ALTER TABLE...[NO]LOGGING文を使用して、適切な値を設定します。

NOAPPENDヒントは、APPENDモードをオーバーライドします。

NOPARALLELヒントによって、表内の句の PARALLEL指定をオーバーライドします。一般的に、ヒントは表内の句より優先されます。

制限事項制限事項制限事項制限事項 : ネストした表を含む問合せは、パラレル化できません。

PARALLELヒントを使用した場合、パラレル操作に必要な同時サーバーの数を指定できます。ヒントは、INSERT、UPDATEおよび DELETE文の一部およびテーブル・スキャン部分に適用されます。

パラレル制限に違反した場合、ヒントは無視されます。

PARALLEL_INDEXヒントによって、パーティション索引の索引範囲スキャンのパラレル化に必要な同時サーバー数を指定します。

注意注意注意注意 : ソートまたはグループ化操作では、使用できるサーバーの数は、PARALLELヒントの 2倍です。

/*+ NOPARALLEL ( table ) */

/*+ PARALLEL ( table

, integer

, DEFAULT

,

, integer

, DEFAULT

) */

/*+ PARALLEL_INDEX ( tableindex

,

, integer

, DEFAULT

,

, integer

, DEFAULT

) */

2-72 Oracle8i SQLリファレンス Vol.1

Page 99: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

コメント

PQ_DISTRIBUTEヒントによって、パラレル結合操作のパフォーマンスを向上させます。結合された表の行を、生成側の問合せサーバーと受取側の問合せサーバーの間でどのように分散するかを指定します。このヒントによって、オプティマイザが通常行う決定がオーバーライドされます。

EXPLAIN PLAN文を使用すると、オプティマイザが指定した分散を確認できます。両方の表がシリアルの場合、オプティマイザは分散ヒントを無視します。

NOPARALLEL_INDEXヒントによって、パラレル索引スキャン操作を回避するために、索引の PARALLEL属性をオーバーライドします。

問合せ変換のヒント問合せ変換のヒント問合せ変換のヒント問合せ変換のヒント

MERGEヒントによって、問合せベースでビューをマージできます。

ビューに対する問合せの選択リストに GROUP BY句または DISTINCT演算子が含まれる場合、複合ビューがマージ可能であれば、オプティマイザはビューの問合せをアクセス文にマージできます。また、副問合せと相関関係がなければ、IN副問合せをアクセス文にマージする場合にも複合マージを使用できます。

複合マージはコストベースでは実行されません。アクセス問合せブロックには、MERGEヒントを含める必要があります。このヒントを含めない場合、オプティマイザは別の方法を使用します。

参照参照参照参照 : 外部および内部結合表への分散で使用可能な組合せについては、『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

/*+ PQ_DISTRIBUTE ( table,

outer_distribution , inner_distribution ) */

/*+ NOPARALLEL_INDEX ( tableindex

) */

/*+ MERGE ( table ) */

Oracle SQLの基本要素 2-73

Page 100: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

コメント

NO_EXPANDヒントによって、WHERE句に OR条件または INリストが指定されている問合せに対して、コストベースのオプティマイザが OR拡張を検討しないようにします。通常、オプティマイザは、OR拡張の使用を検討し、使用しない場合よりコストが低いと判断した場合は、この方法を使用します。

NO_MERGEヒントによって、マージ可能なビューをマージしないようにします。

NOREWRITEヒントによって、QUERY_REWRITE_ENABLEDパラメータの設定をオーバーライドして、問合せブロックの問合せのリライトを使用禁止にします。問合せブロック要求には、NOREWRITEヒントを使用してください。

REWRITEヒントによって、コストを考慮する必要がない場合、コストベースのオプティマイザに、マテリアライズド・ビューの問合せをリライトさせます。ビュー・リストの指定にかかわらず、REWRITEヒントを使用してください。ビュー・リストを指定して REWRITEヒントを使用し、そのリストに適切なマテリアライズド・ビューが含まれる場合、Oracleはコストに関係なくそのビューを使用します。

Oracleでは、リスト外のビューを考慮しません。ビュー・リストを指定しない場合、Oracleは適切なマテリアライズド・ビューを検索し、コストに関係なくそのビューを使用します。

STAR_TRANSFORMATIONヒントによって、型変換が適用された最適な計画をオプティマイザが使用するようにします。ヒントを使用しない場合、オプティマイザは、型変換を適用した問合せ用の最適な計画ではなく、型変換を適用せずに生成した最適な計画を使用することを、コストベースで判断します。

/*+ NO_EXPAND */

/*+ NO_MERGE ( table ) */

/*+ NOREWRITE */

/*+ REWRITE( view )

*/

/*+ STAR_TRANSFORMATION */

2-74 Oracle8i SQLリファレンス Vol.1

Page 101: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

コメント

ヒントを指定した場合でも、型変換されるとは限りません。オプティマイザは、適切であると判断した場合にのみ、副問合せを生成します。副問合せが生成されない場合、型変換が適用された問合せが存在しないため、型変換が適用されない問合せに対する最適な計画が、ヒントの有無にかかわらず使用されます。

USE_CONCATヒントによって、問合せの WHERE句に指定されている結合条件 ORを、UNION ALL集合演算子を使用して複合問合せに変換します。一般的に、この型変換は、連結を使用する問合せのコストが、連結を使用しないコストより少ない場合にのみ発生します。

USE_CONCATヒントは、INリストの処理および INリストを含むすべての論理和に対するOR拡張をオフにします。

その他のヒントその他のヒントその他のヒントその他のヒント

CACHEヒントによって、フル・テーブル・スキャンの実行時に、この表に取り出されたブロックを、バッファ・キャッシュ内の LRUリストの最高使用頻度側に入れます。このオプションは、小規模な参照表で有効です。

NOCACHEヒントによって、フル・テーブル・スキャンの実行時に、この表に取り出されたブロックを、バッファ・キャッシュ内の LRUリストの最低使用頻度側に入れます。これは、バッファ・キャッシュ内のブロックの通常の動作です。

UNNEST_SUBQUERYパラメータを使用して副問合せのネスト解除を使用可能にした場合、NO_UNNESTヒントによって、特定の副問合せブロックに対するネスト解除を使用禁止にします。

/*+ USE_CONCAT */

/*+ CACHE ( table ) */

/*+ NOCACHE ( table ) */

/*+ NO_UNNEST */

Oracle SQLの基本要素 2-75

Page 102: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

コメント

ORDERED_PREDICATESヒントによって、索引キーとして使用される述語を除く述語の評価順序をオプティマイザが保持できるようにします。SELECT文の WHERE句で、このヒントを使用します。

ORDERED_PREDICATESヒントを使用しない場合、Oracleでは、次のルールに従って指定された順序ですべての述語を評価します。

� 最初に、ユーザー定義ファンクション、型メソッドまたは副問合せのない述語は、WHERE句に指定されている順序で評価されます。

� 次に、ユーザーが計算したコストを持つユーザー定義ファンクションおよび型メソッドのある述語が、そのコストの昇順で評価されます。

� 次に、ユーザーが計算したコストを持たないユーザー定義ファンクションおよび型メソッドのある述語が、WHERE句に指定された順序で評価されます。

� 次に、WHERE句に指定されていない述語(オプティマイザが中間的に生成した述語など)が評価されます。

� 最後に、副問合せのある述語が、WHERE句に指定されている順序で評価されます。

PUSH_PREDヒントによって、ビューへの述語結合をプッシュするようにします。

NO_PUSH_PREDヒントによって、ビューへの述語結合をプッシュしないようにします。

PUSH_SUBQヒントは、マージされていない副問合せを、実行計画の中でできるだけ早く評価するようにします。一般に、マージされていない副問合せは、実行計画の最後に実行されます。比較的コストが低く、行数を大幅に削減する副問合せの場合、副問合せを早く評価することによって、パフォーマンスを改善できます。

注意注意注意注意 : 前述のとおり、ORDERED_PREDICATESヒントを使用して、索引キーの述語評価の順序を保持することはできません。

/*+ ORDERED_PREDICATES */

/*+ PUSH_PRED ( table ) */

/*+ NO_PUSH_PRED ( table ) */

/*+ PUSH_SUBQ */

2-76 Oracle8i SQLリファレンス Vol.1

Page 103: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・オブジェクト

副問合せがリモート表に適用される場合、または副問合せがマージ結合を使用して結合される場合は、このヒントを使用しても効果はありません。

UNNEST_SUBQUERYセッション・パラメータを TRUEに設定すると、副問合せのネスト解除が使用可能になります。副問合せのネスト解除によって、副問合せの本体がネスト解除され、その副問合せを含む文の本体に結合されます。これによって、オプティマイザは、アクセス・パスおよび結合の評価時に、副問合せと文を 1つのものと判断できます。

UNNEST_SUBQUERYパラメータは、文が有効かどうかを最初に確認します。文が無効の場合、副問合せのネスト解除はできません。この場合、文は、発見的テストにパスする必要があります。

UNNESTヒントは、副問合せブロックの妥当性のみを調べます。有効な副問合せブロックであれば、副問合せのネスト解除は使用可能になります。

データベース・オブジェクトデータベース・オブジェクトデータベース・オブジェクトデータベース・オブジェクト次の項で説明するとおり、Oracleは、特定のスキーマに対応付けられたオブジェクトと、特定のスキーマに対応付けられていないオブジェクトを認識します。

スキーマ・オブジェクトスキーマ・オブジェクトスキーマ・オブジェクトスキーマ・オブジェクトスキーマスキーマスキーマスキーマとは、データの論理構造の集まり、つまりスキーマ・オブジェクトです。スキーマは、データベース・ユーザーによって所有され、そのユーザーと同じ名前を持ちます。各ユーザーは、1つのスキーマを所有します。スキーマ・オブジェクトは、SQLを使用して作成および操作できます。スキーマ・オブジェクトには次のタイプのオブジェクトがあります。

� クラスタ

� データベース・リンク

� データベース・トリガー

� ディメンション

� 外部プロシージャ・ライブラリ

� 索引構成表

� 索引

� 索引タイプ

� Javaクラス、Javaリソース、Javaソース

/*+ UNNEST */

Oracle SQLの基本要素 2-77

Page 104: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・オブジェクト

� マテリアライズド・ビュー

� マテリアライズド・ビュー・ログ

� オブジェクト表

� オブジェクト型

� オブジェクト・ビュー

� 演算子

� パッケージ

� 順序

� ストアド・ファンクション、ストアド・プロシージャ

� シノニム

� 表

� ビュー

非スキーマ・オブジェクト非スキーマ・オブジェクト非スキーマ・オブジェクト非スキーマ・オブジェクト次のタイプのオブジェクトもデータベースに格納され、SQLで作成および操作されますが、スキーマには含まれません。

� コンテキスト

� ディレクトリ

� プロファイル

� ロール

� ロールバック・セグメント

� 表領域

� ユーザー

2-78 Oracle8i SQLリファレンス Vol.1

Page 105: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・オブジェクト

各タイプのオブジェクトは、このマニュアルの第 7章~第 11章のデータベース・オブジェクトを作成する文の項で簡単に定義されています。これらの文は、キーワード CREATEで始まります。たとえば、クラスタの定義については、9-3ページの「CREATE CLUSTER」を参照してください。

大部分のスキーマ・オブジェクトでは、作成時に名前を指定する必要があります。名前は、以降の項に示す規則に従って付けてください。

スキーマ・オブジェクトの部分スキーマ・オブジェクトの部分スキーマ・オブジェクトの部分スキーマ・オブジェクトの部分スキーマ・オブジェクトの中には、次に示すとおり名前を付けることができる、または名前を付ける必要のある部分で構成されるものもあります。

� 表やビューの中の列

� 索引と表のパーティションおよびサブパーティション

� 表に対する整合性制約

� パッケージ・プロシージャ、パッケージ・ストアド・ファンクション、およびパッケージ内に格納されるその他のオブジェクト

パーティション表と索引パーティション表と索引パーティション表と索引パーティション表と索引表および索引はパーティション化できます。パーティション化されたスキーマ・オブジェクトは、パーティションと呼ばれる多数の部分で構成され、各パーティションのすべての論理属性は同じです。たとえば、表のパーティションはすべて同じ列定義と制約定義を共有し、索引のパーティションはすべて同じ索引列を共有します。

レンジ・メソッドを使用して表または索引をパーティション化する場合、各パーティションのパーティション・キー列の最大値を指定します。ハッシュ・メソッドを使用して表または索引をパーティション化する場合、パーティション・キー列に関してシステムが定義するハッシュ関数に基づいて、Oracleが表の行をパーティションに分割するようにします。コンポジット・パーティション・メソッドを使用して表または索引をパーティション化する場合、パーティションの範囲を指定すると、Oracleはハッシュ関数に基づいて、各パーティションにある行を 1つ以上のハッシュ・サブパーティションに分割します。コンポジット・メソッドを使用してパーティション化された表または索引の各サブパーティションは、同じ論理属性を持ちます。

参照参照参照参照 : データベース・オブジェクトの概要については、『Oracle8i概要』を参照してください。

Oracle SQLの基本要素 2-79

Page 106: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・オブジェクト

拡張パーティションおよび拡張サブパーティション表名拡張パーティションおよび拡張サブパーティション表名拡張パーティションおよび拡張サブパーティション表名拡張パーティションおよび拡張サブパーティション表名拡張パーティションおよび拡張サブパーティション表名を使用した場合、1つのパーティションまたはサブパーティションのみ、パーティション・レベルおよびサブパーティション・レベルの操作(あるパーティションまたはサブパーティションからのすべての行の削除など)ができます。拡張された表名がない場合、そのような操作には述語(WHERE句)を指定する必要があります。レンジ・パーティション表では、パーティション・レベル操作を述語で表そうとすると(特にレンジ・パーティション・キーで複数の列を使用しているときは)、非常に複雑になる可能性があります。ハッシュ・パーティションおよびサブパーティションの場合、述語の使用はより難しくなります。これは、これらのパーティションおよびサブパーティションが、システムが定義するハッシュ関数に基づいているためです。

拡張パーティション表名を使用した場合、パーティションを表のように使用できます。この方法のメリットは、これらのビューに対する権限を他のユーザーやロールに付与する(または取り消す)ことによって、パーティション・レベルのアクセス制御機構を構築できることです。このメリットは、レンジ・パーティション表に最も有効です。パーティションを表として使用するには、単一のパーティションからデータを選択してビューを作成し、そのビューを表として使用します。

次の DML文の拡張パーティションまたは拡張サブパーティションの表名を指定できます。

� DELETE

� INSERT

� LOCK TABLE

� SELECT

� UPDATE

構文構文構文構文 拡張パーティション表名および拡張サブパーティション表名を使用する場合の基本的な構文は次のとおりです。

注意注意注意注意 : アプリケーションの移植性と ANSI構文準拠を考慮し、このOracle特有の拡張部分からアプリケーションを切り離すには、ビューを使用することをお薦めします。

schema . table

view

@ dblink

PARTITION ( partition )

SUBPARTITION ( subpartition )

2-80 Oracle8i SQLリファレンス Vol.1

Page 107: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

スキーマ・オブジェクト名および修飾子

制限事項制限事項制限事項制限事項 現在、拡張パーティション表名および拡張サブパーティション表名を使用するときには、次の制限があります。

� リモート表 :拡張パーティション表名または拡張サブパーティション表名には、データベース・リンク(dblink)、または dblinkを使用して表に変換するシノニムを含めることはできません。リモート・パーティションおよびリモート・サブパーティションを使用するには、拡張表名の構文を使用してリモート・サイトにビューを作成し、そのリモート・ビューを参照します。

� シノニム :拡張パーティションまたは拡張サブパーティションは、ベース表を使用して指定する必要があります。シノニム、ビューまたはその他のオブジェクトは使用できません。

例例例例 次の文の salesは、パーティション jan97を持つパーティション表です。単一パーティション jan97のビューを作成でき、それを表のように使用できます。この例では、パーティションから行が削除されます。

CREATE VIEW sales_jan97 AS SELECT * FROM sales PARTITION (jan97); DELETE FROM sales_jan97 WHERE amount < 0;

スキーマ・オブジェクト名および修飾子スキーマ・オブジェクト名および修飾子スキーマ・オブジェクト名および修飾子スキーマ・オブジェクト名および修飾子この項では、次の内容について説明します。

� スキーマ・オブジェクトとスキーマ・オブジェクトの位置修飾子のネーミング規則

� スキーマ・オブジェクトと修飾子のネーミング計画

スキーマ・オブジェクトのネーミング規則スキーマ・オブジェクトのネーミング規則スキーマ・オブジェクトのネーミング規則スキーマ・オブジェクトのネーミング規則スキーマ・オブジェクトのネーミングには、次の規則があります。

1. 名前は、1~ 30バイトの長さで指定する必要があります。ただし、次の 2つは例外です。

� データベースの名前は、8バイトまでに制限されています。

� データベース・リンクの名前は、128バイトまで指定できます。

2. 名前には、引用符を含めることができません。

3. 名前は、大文字と小文字を区別しません。

4. 名前は、二重引用符で囲まれていない限り、使用しているデータベース・キャラクタ・セットのアルファベット文字で開始する必要があります。

Oracle SQLの基本要素 2-81

Page 108: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

スキーマ・オブジェクト名および修飾子

5. 名前には、使用しているデータベース・キャラクタ・セットの英数字およびアンダースコア(_)、ドル記号($)およびシャープ記号(#)のみ含めることができます。$と #はできるだけ使用しないでください。データベース・リンクの名前は、ピリオド(.)とアットマーク(@)を含むこともできます。

データベース・キャラクタ・セットがマルチバイト文字を含む場合、ユーザーまたはロールの名前にはシングルバイト文字を 1つ以上含めることをお薦めします。

6. 名前には、Oracleの予約語は使用できません。Oracleの予約語のすべてのリストは、付録 Cを参照してください。

名前は、データベース・オブジェクトにアクセスするために使用する Oracle製品固有のその他の予約語によって、さらに制限されることもあります。

7. DUALという語をオブジェクトまたはオブジェクトの部分の名前として使用しないでください。DUALは、ダミー表の名前です。

8. Oracleの SQL言語には、特別な意味を持つ文字が含まれています。これらの文字は、データ型、関数名およびキーワード(DIMENSION、SEGMENT、ALLOCATE、DISABLEなど、大文字の SQL文)を含みます。これらの文字は予約語ではありません。ただし、Oracleはこれらの文字を内部的に使用します。したがって、これらの文字をオブジェクトおよびオブジェクトの部分の名前として使用した場合、使用している SQL文が読みにくくなり、予期しない結果になることがあります。

特に、「SYS_」で始まる文字をスキーマ・オブジェクト名として使用しないでください。また、SQL組込み関数の名前を、スキーマ・オブジェクトまたはユーザー定義ファンクションの名前として使用しないでください。

注意注意注意注意 : データベース名、グローバル・データベース名またはデータベース・リンク名には、ヨーロッパまたはアジアのキャラクタ・セットの中の特殊文字は使用できません。たとえば、ウムラウトを使用することはできません。

参照参照参照参照 :

� Oracleの予約語のすべてのリストは、付録 C「Oracleの予約語」を参照してください。

� 製品の予約語のリストについては、『Oracle8i PL/SQLユーザーズ・ガイドおよびリファレンス』などの各製品のマニュアルを参照してください。

参照参照参照参照 : 2-2ページの「データ型」および 4-2ページの「SQL関数」を参照してください。

2-82 Oracle8i SQLリファレンス Vol.1

Page 109: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

スキーマ・オブジェクト名および修飾子

9. ネームスペース内では、2つのオブジェクトに同じ名前を付けることはできません。

次に、スキーマ・オブジェクトのネームスペースを示します。各ボックスはネームスペースです。表とビューは同じネームスペースに存在します。このため、同じスキーマ内の表とビューには、同じ名前を付けることはできません。ただし、表と索引は異なるネームスペースに存在します。このため、同じスキーマ内の表と索引には、同じ名前を付けることができます。

データベース内の各スキーマには、その中のオブジェクトのために固有のネームスペースがあります。たとえば、異なるスキーマ内の 2つの表は異なるネームスペースに存在し、同じ名前を付けることができます。

次に、非スキーマ・オブジェクトのネームスペースを示します。これらのネームスペース内のオブジェクトはスキーマに含まれないため、これらのネームスペースはデータベース全体で使用されます。

10. 同じ表やビューでは、複数の列に同じ名前を付けることはできません。ただし、異なる表やビューでは、複数の列に同じ名前を付けることができます。

表�

ユーザー定義型�

マテリアライズド・ビュー/スナップショット�

索引�

ビュー�

プライベート・シノニム�

順序�

スタンドアロン・プロシージャ�

スタンドアロン・ストアド・ファンクション�

パッケージ�

クラスタ�

制約�

データベース・トリガー�

プライベート・データベース・リンク�

ディメンション�

USER

PUBLIC SYNONYMS

PUBLIC DATABASE LINKS

TABLESPACES

ROLLBACK SEGMENTS

PROFILES

ROLES

Oracle SQLの基本要素 2-83

Page 110: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

スキーマ・オブジェクト名および修飾子

11. 同じパッケージに含まれるプロシージャやファンクションには、引数の数やデータ型を変えることによって、同じ名前を付けることができます。異なる引数を持ち、同じ名前のプロシージャやファンクションを同じパッケージ内に複数作成することを、オーバーロードといいます。

12. 名前は、二重引用符で囲むことができます。その場合、このリストの規則 3~規則 7にとらわれずに、名前には空白も含めた任意の文字の組合せを使用できます。移植性を持たせるためにこのような例外が認められていますが、規則 3~規則 7に違反しないことをお薦めします。

二重引用符で囲んだスキーマ・オブジェクト名を使用した場合、そのオブジェクトを参照するときには、必ず二重引用符を使用する必要があります。

次の場合は、名前を二重引用符で囲みます。

� 空白を含める場合

� 大文字と小文字を区別する場合

� 数字のようなアルファベット以外の文字で名前を開始する場合

� 英数字、_、$および #以外の文字を名前に含める場合

� 予約語を名前として使用する場合

名前を二重引用符で囲むことによって、同じネームスペース内の異なるオブジェクトに対して次の名前を指定できます。

emp"emp""Emp""EMP "

ただし、Oracleは次の名前を同じ名前として解析するため、同じネームスペース内の異なるオブジェクトには、次の名前を使用できません。

empEMP"EMP"

ユーザーまたはパスワードに引用符で囲んだ名前を付ける場合、その名前に小文字を含めることはできません。

データベース・リンク名を引用符で囲むことはできません。

2-84 Oracle8i SQLリファレンス Vol.1

Page 111: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

スキーマ・オブジェクト名および修飾子

スキーマ・オブジェクトのネーミング例スキーマ・オブジェクトのネーミング例スキーマ・オブジェクトのネーミング例スキーマ・オブジェクトのネーミング例次に、有効なスキーマ・オブジェクト名の例を示します。

enamehorsescott.hiredate"EVEN THIS & THAT!"a_very_long_and_valid_name

列別名、表別名、ユーザー名およびパスワードは、オブジェクトやオブジェクトの部分ではありませんが、同様にこれらのネーミング規則に従う必要があります。ただし、次のような例外があります。

� 列別名と表別名は、単一の SQL文の実行時に存在するだけで、データベースには格納されないため、規則 12は適用されません。

� パスワードにはネームスペースがないため、規則 9は適用されません。

� ユーザー名とパスワードで大文字 /小文字を区別するために引用符を使用しないでください。

スキーマ・オブジェクト名のネーミング計画スキーマ・オブジェクト名のネーミング計画スキーマ・オブジェクト名のネーミング計画スキーマ・オブジェクト名のネーミング計画オブジェクトとその部分に名前を付ける場合に有効なガイドラインを次に示します。

� わかりやすい名前(またはよく知られている省略形)を使用します。

� 一貫したネーミング規則を使用します。

� 複数の表にまたがる同一のエンティティや属性を記述するためには、同一の名前を使用します。

オブジェクトに名前を付ける場合は、短くて簡単な名前とわかりやすい名前のバランスを考えてください。迷ったときには、わかりやすい名前にしてください。これは、データベース内のオブジェクトは、多くの人々が長期間にわたって使用する可能性があるためです。payment_due_dateのかわりに pmddという名前を使用すると、10年後の担当者はデータベースの理解に苦労することになります。

一貫したネーミング規則を使用すると、アプリケーション上の各表の働きが理解しやすくなります。そのような規則の例として、FINANCEアプリケーションに属している表の名前をすべて fin_で始めるような場合が考えられます。

同一のエンティティや属性に対しては、複数の表にまたがっていても同じ名前を使用してください。たとえば、employees表と departments表の部門番号列には、どちらにもdeptnoという名前を付けます。

参照参照参照参照 : ユーザー名とパスワードのネーミング規則の詳細は、10-99ページの「CREATE USER」を参照してください。

Oracle SQLの基本要素 2-85

Page 112: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

スキーマ・オブジェクトの構文および SQL文の構成要素

スキーマ・オブジェクトの構文およびスキーマ・オブジェクトの構文およびスキーマ・オブジェクトの構文およびスキーマ・オブジェクトの構文および SQL文の構成要素文の構成要素文の構成要素文の構成要素SQL文のコンテキストでスキーマ・オブジェクトとそれらの部分を参照する方法について説明します。次の項目について説明します。

� オブジェクトを参照するための一般的な構文

� Oracleがオブジェクトへの参照を変換する方法

� 自分のスキーマ以外のスキーマ内のオブジェクトを参照する方法

� リモート・データベース内のオブジェクトを参照する方法

次に、オブジェクトやそれらの部分を参照するための一般的な構文を示します。

ここで、それぞれの意味は次のとおりです。

� objectは、オブジェクトの名前です。

� schemaは、オブジェクトを含むスキーマです。この修飾子を指定することによって、自分のスキーマ以外のスキーマ内のオブジェクトを参照できます。その場合には、自分のスキーマ以外のスキーマ内のオブジェクトを参照するための権限が必要です。この修飾子を指定しないと、自分自身のスキーマ内のオブジェクトを参照するものとみなされます。

スキーマ・オブジェクトのみが schemaで修飾できます。スキーマ・オブジェクトについては、2-83ページの規則 9を参照してください。2-83ページの規則 9に示す非スキーマ・オブジェクトはスキーマ・オブジェクトではないため、schemaでは修飾できません。(ただし、パブリック・シノニムは例外で、「PUBLIC」で修飾できます。この場合、引用符が必要です。)

� partは、オブジェクトの部分です。この識別子によって、スキーマ・オブジェクトの部分(たとえば、表の列またはパーティション)を参照できます。なお、すべてのタイプのオブジェクトが部分を持っているわけではありません。

� dblinkは、Oracleの分散オプションを使用している場合にのみ適用されます。オブジェクトを含むデータベースの名前です。この修飾子 dblinkを指定することによって、ローカル・データベース以外のデータベース内のオブジェクトを参照できます。この dblinkを指定しないと、自分自身のローカル・データベース内のオブジェクトを参照するものとみなされます。なお、すべての SQL文でリモート・データベースのオブジェクトにアクセスできるとは限りません。

オブジェクトを参照する際の構成要素を区切っているピリオドの前後には、空白を入れることができます。ただし、通常は入れません。

schema .object

. part @ dblink

2-86 Oracle8i SQLリファレンス Vol.1

Page 113: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

スキーマ・オブジェクトの構文および SQL文の構成要素

Oracleによるスキーマ・オブジェクト参照の変換方法によるスキーマ・オブジェクト参照の変換方法によるスキーマ・オブジェクト参照の変換方法によるスキーマ・オブジェクト参照の変換方法SQL文内のオブジェクトが参照される場合、Oracleはその SQL文のコンテキストを検討して、該当するネームスペース内でそのオブジェクトの位置を確認します。そのオブジェクトの位置を確認してから、そのオブジェクトに対して文の操作を実行します。指定した名前のオブジェクトが適切なネームスペース内に存在しない場合、Oracleはエラーを戻します。

次の例で、Oracleが SQL文内のオブジェクト参照を変換する方法について説明します。名前 deptで識別される表にデータ行を追加する次の文を考えます。

INSERT INTO dept VALUES (50, 'SUPPORT', 'PARIS');

文のコンテキストに基づいて、Oracleは、deptが次のようなオブジェクトであると判断します。

� 自分のスキーマ内の表

� 自分のスキーマ内のビュー

� 表またはビューに対するプライベート・シノニム

� パブリック・シノニム

Oracleは、文を発行したユーザーのスキーマ外のネームスペースを考慮する前に、そのユーザーのスキーマ内のネームスペースからオブジェクト参照を変換しようとします。この例では、Oracleは次の方法で名前 deptを変換しようとします。

1. Oracleは,最初に、表、ビューおよびプライベート・シノニムを含む文を発行したユーザーのスキーマ内のネームスペースで、オブジェクトの位置を確認しようとします。オブジェクトがプライベート・シノニムの場合、Oracleはそのシノニムが表すオブジェクトの位置を確認します。このオブジェクトは、ユーザー自身のスキーマ、他のスキーマ、または他のデータベースにあることもあります。このオブジェクトが別のシノニムである場合もあります。その場合、Oracleはそのシノニムが表すオブジェクトの位置を確認します。

2. オブジェクトがネームスペース内に存在する場合、Oracleはそのオブジェクトに対して文を実行しようとします。この場合、Oracleはデータの行を deptに追加しようとします。オブジェクトがその処理にとって正しい型でない場合、Oracleはエラーを戻します。この場合、deptは、表またはビュー、あるいは表またはビューとなるプライベート・シノニムである必要があります。deptが順序である場合、Oracleはエラーを戻します。

3. 前述の処理で検索されたネームスペースにオブジェクトが存在しない場合、Oracleはパブリック・シノニムを含むネームスペースを検索します。オブジェクトがそのネームスペースに存在する場合、Oracleはそのオブジェクトに対して文を実行しようとします。オブジェクトがその処理にとって正しい型でない場合、Oracleはエラーを戻します。この例では、deptが順序のパブリック・シノニムである場合、Oracleはエラーを戻します。

Oracle SQLの基本要素 2-87

Page 114: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

スキーマ・オブジェクトの構文および SQL文の構成要素

他のスキーマ内のオブジェクトの参照他のスキーマ内のオブジェクトの参照他のスキーマ内のオブジェクトの参照他のスキーマ内のオブジェクトの参照自分が所有するスキーマ以外のスキーマ内のオブジェクトを参照するには、次のように、オブジェクト名の前にスキーマ名を付けます。

schema.object

たとえば、次の文は、スキーマ scott内の emp表を削除します。

DROP TABLE scott.emp

リモート・データベース内のオブジェクトの参照リモート・データベース内のオブジェクトの参照リモート・データベース内のオブジェクトの参照リモート・データベース内のオブジェクトの参照ローカル・データベース以外のデータベース内のオブジェクトを参照するには、オブジェクト名の後に、そのデータベースへのデータベース・リンクの名前を続けます。データベース・リンクはスキーマ・オブジェクトであり、これによって Oracleがリモート・データベースに接続され、そこにあるオブジェクトにアクセスします。この項では、次の項目について説明します。

� データベース・リンクを作成する方法

� SQL文でデータベース・リンクを使用する方法

データベース・リンクを作成するデータベース・リンクを作成するデータベース・リンクを作成するデータベース・リンクを作成する9-28ページの「CREATE DATABASE LINK」を使用して、データベース・リンクを作成します。この文では、データベース・リンクに関する次の情報を指定できます。

� データベース・リンク名

� リモート・データベースにアクセスするためのデータベース接続文字列

� リモート・データベースに接続するためのユーザー名およびパスワード

これらの情報はデータ・ディクショナリに格納されます。

データベース・リンク名データベース・リンク名データベース・リンク名データベース・リンク名 データベース・リンクを作成するとき、データベース・リンク名を指定する必要があります。データベース・リンク名は、他のオブジェクト型の名前とは異なります。データベース・リンク名は 128バイト以内の長さで指定し、ピリオド(.)とアットマーク(@)を使用できます。

データベース・リンクに付ける名前は、データベース・リンクが参照するデータベースの名前、およびデータベース名の階層内のそのデータベースの位置に一致している必要があります。次に、データベース・リンク名の書式を示します。

2-88 Oracle8i SQLリファレンス Vol.1

Page 115: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

スキーマ・オブジェクトの構文および SQL文の構成要素

dblink::=

それぞれの意味は次のとおりです。

� databaseには、データベース・リンクが接続するリモート・データベースのグローバル名の名前の部分を指定します。このグローバル名は、リモート・データベースのデータ・ディクショナリに格納されます。この名前は、GLOBAL_NAMEビューで見ることができます。

� domainには、データベース・リンクが接続するリモート・データベースのグローバル名のドメイン部分を指定します。データベース・リンクの名前に domainを指定しないと、Oracleは、現在、データ・ディクショナリに存在しているローカル・データベースのドメインに、データベース・リンク名を付加します。

� connect_descriptorによって、データベース・リンクをさらに修飾できます。接続修飾子を使用する場合、同じデータベースに複数のデータベース・リンクを作成できます。たとえば、接続修飾子を使用して、同じデータベースにアクセスする Oracle Parallel Serverの異なるインスタンスに、複数のデータベース・リンクを作成できます。

database.domainの組合せは、「サービス名」と呼ばれることもあります。

ユーザー名およびパスワードユーザー名およびパスワードユーザー名およびパスワードユーザー名およびパスワード リモート・データベースに接続するために、ユーザー名およびパスワードを使用します。データベース・リンクでは、ユーザー名およびパスワードはオプションです。

データベース接続文字列データベース接続文字列データベース接続文字列データベース接続文字列 データベース接続文字列は、Net8がリモート・データベースにアクセスするために使用する仕様です。データベース接続文字列の記述方法については、使用しているネットワーク・プロトコル用の Net8のドキュメントを参照してください。データベース・リンク用のデータベース文字列はオプションです。

データベース・リンクの参照データベース・リンクの参照データベース・リンクの参照データベース・リンクの参照データベース・リンクは、分散オプションを指定して Oracleを使用している場合にのみ利用できます。データベース・リンクを含む SQL文の発行時に、次のいずれかの方法でデータベース・リンク名を指定します。

� completeは、データ・ディクショナリ内に格納される、database、domain、およびオプションの connect_descriptorを含む完全なデータベース・リンク名を指定します。

参照参照参照参照 : 『Oracle8i Net8管理者ガイド』を参照してください。

database. domain @ connect_descriptor

Oracle SQLの基本要素 2-89

Page 116: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

スキーマ・オブジェクトの構文および SQL文の構成要素

� partialは、database、およびオプションの connect_descriptor構成要素を含むが、domain構成要素を含まないように指定します。

Oracleは、リモート・データベースに接続する前に次のタスクを実行します。

1. 文中に指定されているデータベース・リンク名が部分指定の場合、Oracleは、データ・ディクショナリ内に格納されているグローバル・データベース名に見られるとおり、そのリンク名にローカル・データベースのドメイン名を付加します。現在のグローバル・データベース名は、GLOBAL_NAMEデータ・ディクショナリ・ビューで見ることができます。

2. Oracleは、最初に、文を発行したユーザーのスキーマ内で、文の中のデータベース・リンクと同じ名前を持つプライベート・データベース・リンクを検索します。必要に応じて、同じ名前を持つパブリック・データベース・リンクを検索します。

� Oracleは、必ず最初に一致したデータベース・リンク(プライベートまたはパブリック)のユーザー名およびパスワードを採用します。最初に一致したデータベース・リンクに対応付けられているユーザー名およびパスワードがあると、Oracleはそれを使用します。対応付けられているユーザー名およびパスワードがない場合、Oracleは、現在のユーザー名およびパスワードを使用します。

� 最初に一致したデータベース・リンクに対応付けられているデータベース文字列が存在する場合、Oracleは、そのデータベース文字列を使用します。データベース文字列がない場合、Oracleは一致する次の(パブリック)データベース・リンクを検索します。一致するデータベース・リンクが存在しない場合、または一致するリンクに対応付けられているデータベース文字列が存在しない場合、Oracleはエラーを戻します。

3. Oracleは、リモート・データベースにアクセスするためにデータベース文字列を使用します。リモート・データベースにアクセスした後で、GLOBAL_NAMESパラメータの値が trueの場合は、Oracleは、データベース・リンク名の database.domain部分がリモート・データベースの完全なグローバル名に一致しているかどうかを確認します。この条件が満たされている場合、Oracleはステップ 2で選択したユーザー名とパスワードを使用して接続を続行します。それ以外の場合、Oracleはエラーを戻します。

4. データベース文字列、ユーザー名およびパスワードを使用した接続が成功した場合、Oracleは、リモート・データベース上の指定されたオブジェクトにアクセスしようとします。このとき、この項の前半で説明した、オブジェクト参照を変換するための規則、および他のスキーマ内のオブジェクトを参照するための規則が使用されます。

リモート・データベースの完全なグローバル名が、データベース・リンクのdatabase.domain部分と一致する必要があるという要件を無効にするには、初期化パラメータ GLOBAL_NAMESか、ALTER SYSTEMまたは ALTER SESSION文の GLOBAL_NAMESパラメータに falseを設定します。

参照参照参照参照 : リモート・データベースの名前の変換の詳細は、『Oracle8i 分散システム』を参照してください。

2-90 Oracle8i SQLリファレンス Vol.1

Page 117: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

スキーマ・オブジェクトの構文および SQL文の構成要素

オブジェクト型の属性とメソッドの参照オブジェクト型の属性とメソッドの参照オブジェクト型の属性とメソッドの参照オブジェクト型の属性とメソッドの参照SQL文のオブジェクト型の属性とメソッドを参照するには、参照を表の別名で完全に修飾する必要があります。次に例を示します。

CREATE TYPE person AS OBJECT (ssno VARCHAR(20), name VARCHAR (10));

CREATE TABLE emptab (pinfo person);

次に示すとおり、SQL文では、ssno属性への参照は表別名を使用して完全に修飾する必要があります。

SELECT e.pinfo.ssno FROM emptab e;

UPDATE emptab e SET e.pinfo.ssno = '510129980' WHERE e.pinfo.name = 'Mike';

引数を取らないオブジェクト型のメンバー・メソッドを参照する場合は、空のカッコを付ける必要があります。たとえば、ageが個人タイプのメソッドで、引数を取らないとします。SQL文でこのメソッドを呼び出すには、次の例のように、空のカッコを付ける必要があります。

SELECT e.pinfo.age() FROM emptab e WHERE e.pinfo.name = 'Mike';

参照参照参照参照 : ユーザー定義データ型の詳細は、『Oracle8i概要』を参照してください。

Oracle SQLの基本要素 2-91

Page 118: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

スキーマ・オブジェクトの構文および SQL文の構成要素

2-92 Oracle8i SQLリファレンス Vol.1

Page 119: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

3

演算子演算子演算子演算子

演算子は、個々のデータ項目を操作し、結果を戻すために使用します。これらのデータ項目をオペランドまたは引数と呼びます。演算子は、特殊文字またはキーワードで表します。たとえば、乗算演算子はアスタリスク(*)で表し、NULLをテストする演算子はキーワードIS NULLで表します。

この章では、次の内容を説明します。

� 単項演算子およびバイナリ演算子

� 優先順位

� 算術演算子

� 連結演算子

� 比較演算子

� 論理演算子 : NOT、AND、OR

� 集合演算子 : UNION [ALL]、INTERSECT、MINUS

� その他の組込み演算子

� ユーザー定義演算子

算子 3-1

Page 120: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

単項演算子およびバイナリ演算子

単項演算子およびバイナリ演算子単項演算子およびバイナリ演算子単項演算子およびバイナリ演算子単項演算子およびバイナリ演算子一般に、演算子には次の 2つのクラスがあります。

この他、特別な書式を持ち、3つ以上のオペランドについて操作可能な演算子もあります。演算子のオペランドに NULLが指定された場合、結果は常にNULLになります。この規則に従わない唯一の演算子が連結演算子(||)です。

優先順位優先順位優先順位優先順位優先順位とは、同じ式の中の異なる演算子を Oracleが評価する順序を意味します。複数の演算子を含む式を評価するとき、Oracleは優先順位の高い演算子を評価した後で、優先順位の低い演算子を評価します。優先順位の等しい演算子は、式の中で左から右に評価されます。

表 3-1に、SQL演算子を優先順位の高い方から順に示します。同じ行にリストされている演算子の優先順位は同じです。

単項 単項演算子は、1つのみのオペランドについて操作します。単項演算子の書式は次のとおりです。

operator operand

バイナリ バイナリ演算子は、2つのオペランドについて操作します。バイナリ演算子の書式は次のとおりです。

operand1 operator operand2

表表表表 3-1 SQL 演算子の優先順位演算子の優先順位演算子の優先順位演算子の優先順位

演算子演算子演算子演算子 操作操作操作操作

+、- 同一、否定

*、/ 乗算、除算

+、-、|| 加算、減算、連結

=、!=、<、>、<=、>=、IS NULL、LIKE、BETWEEN、IN

比較

NOT 指数、論理否定

AND 論理積

OR 論理和

3-2 Oracle8i SQLリファレンス Vol.1

Page 121: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

算術演算子

優先順位の例優先順位の例優先順位の例優先順位の例 次の式では、乗算は加算よりも優先順位が高いため、2と 3を掛けた結果に1が加算されます。

1+2*3

式の中でカッコを使用して演算子の優先順位をオーバーライドできます。Oracleは、カッコの内側の式を評価した後で、外側の式を評価します。

SQLでは、集合演算子(UNION、UNION ALL、INTERSECTおよび MINUS)もサポートされます。集合演算子によって結合されるのは、問合せによって戻される行の集まりで、個々のデータ項目ではありません。集合演算子の優先順位はすべて同じです。

算術演算子算術演算子算術演算子算術演算子算術演算子を式の中で使用することによって、数値を否定(正負を反転)、加算、減算、乗算および除算できます。演算の結果も数値になります。これらの演算子の中には、日付算術で使用するものもあります。表 3-2に、算術演算子を示します。

二重否定や負の数の減算を表現する場合に、算術式で、連続した負の符号(--)は使用しないでください。文字 --は、SQL文ではコメントの開始を示す場合に使用します。連続した負の符号は、空白またはカッコで区切ってください。

表表表表 3-2 算術演算子算術演算子算術演算子算術演算子

演算子演算子演算子演算子 用途用途用途用途 例例例例

+、- 式の正負を示す場合、これらは単項演算子です。

SELECT * FROM orders WHERE qtysold = -1;SELECT * FROM emp WHERE -sal < 0;

加算、減算を行う場合、これらはバイナリ演算子です。

SELECT sal + comm FROM emp WHERE SYSDATE - hiredate > 365;

*、/ 乗算、除算を行います。これらはバイナリ演算子です。

UPDATE emp SET sal = sal * 1.1;

参照参照参照参照 : SQL文中のコメントの詳細は、2-64ページの「コメント」を参照してください。

演算子 3-3

Page 122: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

連結演算子

連結演算子連結演算子連結演算子連結演算子連結演算子は、文字列を操作する場合に使用します。表 3-3に、連結演算子を示します。

2つの文字列を連結した結果は別の文字列になります。両方の文字列が CHARデータ型の場合、結果は CHARデータ型の文字列になり、その最大文字数は 2000です。どちらかの文字列が VARCHAR2データ型の場合、結果は VARCHAR2データ型の文字列になり、その最大文字数は 4000です。文字列のデータ型にかかわりなく、後続空白は連結後も文字列に残ります。

多くのプラットフォームでは、連結演算子は、表 3-3に示すとおり 2本の実線垂直バーで表されます。ただし、IBM社のプラットフォームの中には、この演算子として破線垂直バーを使用するものもあります。異なるキャラクタ・セットを持つシステム間(たとえば ASCIIとEBCDIC間)で SQLスクリプト・ファイルを移動する場合、垂直バーが、移動先の Oracle環境で必要な垂直バーに変換されない場合があります。オペレーティング・システムまたはネットワーク・ユーティリティによる変換の制御が困難または不可能である場合に備えて、Oracleでは、垂直バー演算子にかわるものとして CONCAT文字関数が提供されています。異なるキャラクタ・セットを持つ環境間でアプリケーションを移動する場合は、この文字関数を使用することをお薦めします。

Oracleは、長さが 0(ゼロ)の文字列を NULLとして処理しますが、長さが 0(ゼロ)の文字列を別のオペランドと連結すると、その結果は常にもう一方のオペランドになります。結果が NULLになるのは、2つのNULL文字列を連結したときのみです。ただし、この処理は Oracleの将来のバージョンでも継続されるとは限りません。NULLになる可能性がある式を連結する場合は、NVL関数を使用して、その式を長さが 0(ゼロ)の文字列に明示的に変換してください。

表表表表 3-3 連結演算子連結演算子連結演算子連結演算子

演算子演算子演算子演算子 用途用途用途用途 例例例例

|| 文字列を連結します。 SELECT 'Name is ' || ename FROM emp;

参照参照参照参照 : CHARデータ型と VARCHAR2データ型の違いの詳細は、2-6ページの「文字データ型」を参照してください。

3-4 Oracle8i SQLリファレンス Vol.1

Page 123: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

比較演算子

例例例例 次の例では、CHAR列および VARCHAR2列を持つ表を作成し、後続空白のある値とない値を挿入してから、これらの値を選択し、連結します。なお、CHAR列および VARCHAR2列では、ともに後続空白が保存されます。

CREATE TABLE tab1 (col1 VARCHAR2(6), col2 CHAR(6), col3 VARCHAR2(6), col4 CHAR(6) );

Table created.

INSERT INTO tab1 (col1, col2, col3, col4) VALUES ('abc', 'def ', 'ghi ', 'jkl');

1 row created.

SELECT col1||col2||col3||col4 "Concatenation" FROM tab1;

Concatenation------------------------abcdef ghi jkl

比較演算子比較演算子比較演算子比較演算子比較演算子は、2つの式を比較します。比較の結果は、真(TRUE)、偽(FALSE)または不明(UNKNOWN)になります。

表 3-4に、比較演算子を示します。

参照参照参照参照 : 条件の詳細は、5-15ページの「条件」を参照してください。

表表表表 3-4 比較演算子比較演算子比較演算子比較演算子

演算子演算子演算子演算子 用途用途用途用途 例例例例

= 等価性をテストします。 SELECT * FROM emp WHERE sal = 1500;

!=^=<>

不等性をテストします。プラットフォームによっては、一部の不等号演算子の書式を使用できない場合もあります。

SELECT * FROM emp WHERE sal != 1500;

演算子 3-5

Page 124: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

比較演算子

>

<

大 /小をテストします。 SELECT * FROM emp WHERE sal > 1500;SELECT * FROM emp WHERE sal < 1500;

>=

<=

以上 /以下をテストします。 SELECT * FROM emp WHERE sal >= 1500;SELECT * FROM emp WHERE sal <= 1500;

IN メンバーとの等価性をテストします。「= ANY」と同じです。

SELECT * FROM emp WHERE job IN ('CLERK','ANALYST');SELECT * FROM emp WHERE sal IN (SELECT sal FROM emp WHERE deptno = 30);

NOT IN 「!=ALL」と同じです。メンバーのいずれかが NULLの場合には、FALSEと評価されます。

SELECT * FROM emp WHERE sal NOT IN (SELECT sal FROM emp WHERE deptno = 30);SELECT * FROM emp WHERE job NOT IN ('CLERK', 'ANALYST');

ANYSOME

リスト内の各値または問合せによって戻される各値と、ある値を比較します。=、!=、>、<、<=、>=のいずれかを先に指定する必要があります。

問合せによって行が戻されない場合には、FALSEと評価されます。

SELECT * FROM emp WHERE sal = ANY (SELECT sal FROM emp WHERE deptno = 30);

ALL リスト内のすべての値または問合せによって戻されるすべての値と、ある値を比較します。=、!=、>、<、<=、>=のいずれかを先に指定する必要があります。

問合せによって行が戻されない場合には、TRUEと評価されます。

SELECT * FROM emp WHERE sal >= ALL ( 1400, 3000);

[NOT] BETWEEN x AND y

x以上 y以下の範囲である [ない ]ことをテストします。

SELECT * FROM emp WHERE sal BETWEEN 2000 AND 3000;

表表表表 3-4 比較演算子(続き)比較演算子(続き)比較演算子(続き)比較演算子(続き)

演算子演算子演算子演算子 用途用途用途用途 例例例例

3-6 Oracle8i SQLリファレンス Vol.1

Page 125: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

比較演算子

NOT IN演算子および LIKE演算子については、次の項で説明します。

NOT IN演算子演算子演算子演算子NOT IN演算子に続くリストの中のいずれかの項目が NULLの場合は、すべての行は不明(UNKNOWN)と評価されます(行は戻されません)。たとえば、次の文ではそれぞれの行に対して文字列 'TRUE'が戻されます。

SELECT 'TRUE' FROM emp WHERE deptno NOT IN (5,15);

EXISTS 副問合せによって行が 1行以上戻される場合には、TRUEと評価されます。

SELECT ename, deptno FROM dept WHERE EXISTS (SELECT * FROM emp WHERE dept.deptno = emp.deptno);

x [NOT] LIKE y

[ESCAPE 'z']

xがパターン yと一致する [しない ]場合に TRUEと評価されます。yの中の「%」文字は、NULLを除く 0(ゼロ)文字以上の任意の文字列に一致します。「_」文字は、任意の 1文字に一致します。パーセント(%)およびアンダースコア(_)を除く任意の文字を ESCAPEの後に指定できます。ワイルド・カード文字は、エスケープ文字に指定された文字が前に付いている場合はリテラルとして扱われます。

参照参照参照参照 : 3-8ページの「LIKE演算子」を参照してください。

SELECT * FROM tab1 WHERE col1 LIKE 'A_C/%E%' ESCAPE '/';

IS [NOT] NULL NULLをテストします。NULLのテストに使用する必要がある唯一の演算子です。

参照参照参照参照 : 2-55ページの「NULL」を参照してください。

SELECT ename, deptno FROM emp WHERE comm IS NULL;

表表表表 3-4 比較演算子(続き)比較演算子(続き)比較演算子(続き)比較演算子(続き)

演算子演算子演算子演算子 用途用途用途用途 例例例例

演算子 3-7

Page 126: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

比較演算子

ただし、次の文では行は戻されません。

SELECT 'TRUE' FROM emp WHERE deptno NOT IN (5,15,null);

この例で行が戻されないのは、WHERE句の条件が次のように評価されるためです。

deptno != 5 AND deptno != 15 AND deptno != null

NULLを比較するすべての条件は NULLになるため、式全体の結果は NULLになります。特に、NOT IN演算子が副問合せを参照するときは、このような動作を見逃してしまう可能性があることに注意してください。

LIKE演算子演算子演算子演算子LIKE演算子は、パターン一致による文字列の比較で使用されます。次に、LIKE演算子を使用する条件の構文を示します。

char1 パターンと比較される値を指定します。この値は、CHARデータ型またはVARCHAR2データ型を持ちます。

NOT NOTキーワードは、条件の結果を論理的に反転させます。条件が TRUEに評価された場合には FALSEを戻し、FALSEに評価された場合にはTRUEを戻します。

char2 char1の比較対象となるパターンを指定します。パターンは CHARデータ型または VARCHAR2データ型の値で、特殊なパターン一致文字 %および _を含みます。

ESCAPE エスケープ文字として単一の文字 esc_charを指定します。エスケープ文字を使用して、%または _を特殊文字としてではなくリテラルとして解析させることができます。

エスケープ文字を含む文字列を検索する場合、そのエスケープ文字を 2回指定する必要があります。たとえば、エスケープ文字が「/」で、文字列「client/server」を検索する場合、「client//server」と指定してください。

char1NOT

LIKE char2ESCAPE esc_char

3-8 Oracle8i SQLリファレンス Vol.1

Page 127: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

比較演算子

等号(=)は、ある文字値を別の文字値と一致させますが、LIKE演算子は、ある文字値の一部を別の文字値と一致させます(ある値が指定したパターンの検索を、もう一方の値に対して行います)。LIKE比較では、空白埋めが使用されないことに注意してください。

LIKE演算子では、値を定数ではなくパターンと比較できます。必ず LIKEキーワードの直後に、パターンを指定してください。たとえば、次の問合せを発行することによって、名前が「SM」で始まるすべての従業員の給与を検索できます。

SELECT sal FROM emp WHERE ename LIKE 'SM%';

次の問合せは、LIKE演算子ではなく =演算子を使用しているため、名前が 'SM%'のすべての従業員の給与が検索されます。

SELECT sal FROM emp WHERE ename = 'SM%';

次の問合せでは、名前が 'SM%'のすべての従業員の給与が検索されます。この場合、'SM%'が LIKE演算子の前にあるため、Oracleは、'SM%'をパターンとしてではなく、テキスト・リテラルとして解析します。

SELECT sal FROM emp WHERE 'SM%' LIKE ename;

パターンでは、値の中の異なる文字に置き換えることができる特殊文字がよく使用されます。

� パターン中のアンダースコア(_)は、値の中の 1文字(マルチバイトのキャラクタ・セットでの 1バイトとは異なる)に置き換えることができます。

� パターン中のパーセント記号(%)は、値の中の 0(ゼロ)を含む任意の数の文字(マルチバイトのキャラクタ・セットでの 1バイトとは異なる)に置き換えることができます。ただし、パターン '%'は、NULLと一致しないため注意してください。

大文字大文字大文字大文字 /小文字の区別およびパターン一致小文字の区別およびパターン一致小文字の区別およびパターン一致小文字の区別およびパターン一致 LIKE演算子と等号(=)演算子を含む文字式を比較するすべての条件において、大文字と小文字は区別されます。次の例のように、UPPER関数を使用すると、大文字と小文字を区別しないで一致させることができます。

UPPER(ename) LIKE 'SM%'

演算子 3-9

Page 128: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

比較演算子

索引列でのパターン一致索引列でのパターン一致索引列でのパターン一致索引列でのパターン一致 LIKEを使用して索引列をパターン検索する場合、パターンの先頭文字が「%」または「_」でなければ、Oracleは索引を利用して文のパフォーマンスを向上させることができます。この場合、Oracleはこの先頭文字によって索引をスキャンできます。パターンの先頭文字が「%」または「_」の場合、Oracleは索引をスキャンできないため、問合せのパフォーマンスは向上しません。

LIKE演算子の例演算子の例演算子の例演算子の例 次の条件は、「MA」で始まるすべての ename値について TRUE(真)となります。

ename LIKE 'MA%'

次の ename値は、すべて条件が TRUE(真)となります。

MARTIN, MA, MARK, MARY

大文字と小文字は区別されるため、「Ma」、「ma」および「mA」で始まる ename値では条件が FALSE(偽)になります。

次の条件を考えます。

ename LIKE 'SMITH_'

この条件は、次の ename値について TRUE(真)となります。

SMITHE, SMITHY, SMITHS

特殊文字「_」は、ename値の 1つの文字に置き換えることができるため、この条件は「SMITH」について偽となります。

次の文は、名前の中に文字列「A_B」を持つ従業員を検索します。

SELECT ename FROM emp WHERE ename LIKE '%A\_B%' ESCAPE '\';

ESCAPEオプションは、エスケープ文字としてバックスラッシュ(\)を識別します。パターンの中でエスケープ文字はアンダースコア(_)に先行します。これによって、Oracleは、アンダースコアを特殊なパターン一致文字としてではなく、リテラルとして解析します。

ESCAPEオプションの例オプションの例オプションの例オプションの例 ESCAPEオプションを使用すると、パターン中に「%」または「_」を実際の文字として含めることができます。ESCAPEオプションはエスケープ文字を識別します。エスケープ文字がパターンの中で文字「%」または「_」の前に指定されている場合、Oracleは、この文字を特殊なパターン一致文字としてではなく、リテラル文字として解析します。

3-10 Oracle8i SQLリファレンス Vol.1

Page 129: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

論理演算子 : NOT、AND、OR

%なしのパターンなしのパターンなしのパターンなしのパターン パターンに文字「%」が含まれていない場合、両方のオペランドの長さが同じ場合にのみ、条件が TRUE(真)になります。

例例例例 : この表の定義および挿入される値について考えます。

CREATE TABLE freds (f CHAR(6), v VARCHAR2(6));INSERT INTO freds VALUES ('FRED', 'FRED');

Oracleは、CHAR値に空白埋めを行うため、fの値は空白埋めによって 6バイトになります。vの値は穴埋めされず、4文字長のままです。

論理演算子論理演算子論理演算子論理演算子 : NOT、、、、AND、、、、OR論理演算子は、2つのコンポーネントの条件の結果を結合して、両方をもとに単一の結果を生成するため、または単一の条件の結果を反転させるために使用します。表 3-5に、論理演算子を示します。

表表表表 3-5 論理演算子論理演算子論理演算子論理演算子

演算子演算子演算子演算子 機能機能機能機能 例例例例

NOT 後続する条件が FALSEの場合にTRUEを戻します。TRUEの場合にはFALSEを戻します。UNKNOWNの場合には UNKNOWNを戻します。

SELECT * FROM emp WHERE NOT (job IS NULL);SELECT * FROM emp WHERE NOT (sal BETWEEN 1000 AND 2000);

AND 構成要素の条件が両方とも TRUEの場合に TRUEを戻します。どちらかがFALSEの場合には FALSEを戻します。それ以外の場合は UNKNOWNを戻します。

SELECT * FROM emp WHERE job = 'CLERK' AND deptno = 10;

OR 構成要素の条件のどちらかが TRUEの場合に TRUEを戻します。両方ともFALSEの場合は FALSEを戻します。それ以外の場合は UNKNOWNを戻します。

SELECT * FROM emp WHERE job = 'CLERK' OR deptno = 10;

演算子 3-11

Page 130: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

論理演算子 : NOT、AND、OR

たとえば、次の SELECT文の WHERE句は、AND論理演算子を使用して、1984年より前に入社し、かつ月給が 1,000ドルを超える従業員のみが選択されるように指定しています。

SELECT * FROM emp WHERE hiredate < TO_DATE('01-JAN-1984', 'DD-MON-YYYY') AND sal > 1000;

NOT演算子演算子演算子演算子表 3-6に、条件に NOT演算子を適用した結果を示します。

AND演算子演算子演算子演算子表 3-7に、AND演算子で 2つの式を結合した結果を示します。

OR演算子演算子演算子演算子表 3-8に、OR演算子で 2つの式を結合した結果を示します。

表表表表 3-6 NOT真理値表真理値表真理値表真理値表

TRUE FALSE UNKNOWN

NOT FALSE TRUE UNKNOWN

表表表表 3-7 AND真理値表真理値表真理値表真理値表

AND TRUE FALSE UNKNOWN

TRUE TRUE FALSE UNKNOWN

FALSE FALSE FALSE FALSE

UNKNOWN UNKNOWN FALSE UNKNOWN

表表表表 3-8 OR真理値表真理値表真理値表真理値表

OR TRUE FALSE UNKNOWN

TRUE TRUE TRUE TRUE

FALSE TRUE FALSE UNKNOWN

UNKNOWN TRUE UNKNOWN UNKNOWN

3-12 Oracle8i SQLリファレンス Vol.1

Page 131: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

集合演算子 : UNION [ALL]、INTERSECT、MINUS

集合演算子集合演算子集合演算子集合演算子 : UNION [ALL]、、、、INTERSECT、、、、MINUS集合演算子は、2つのコンポーネントの問合せ結果を 1つの結果にまとめます。集合演算子を含む問合せをコンパウンド問合せと呼びます。表 3-9に、SQLの集合演算子を示します。

集合演算子の優先順位はすべて同じです。SQL文に複数の集合演算子がある場合、カッコによって明示的に別の順序が指定されない限り、Oracleは左から右の順に評価します。

コンパウンド問合せを構成する各問合せと、それに対応する SELECT構文のリスト内の各式は、数値とデータ型が一致している必要があります。集合演算子によって結合された 2つの問合せが文字データを選択する場合、戻される値のデータ型は次のようにして決定されます。

� 両方の問合せが CHARデータ型の値を選択する場合、戻される値のデータ型は CHARになります。

� 問合せのどちらか一方または両方が、VARCHAR2データ型の値を選択する場合、戻される値のデータ型は VARCHAR2になります。

集合演算子の例集合演算子の例集合演算子の例集合演算子の例 次の 2つの問合せとその結果を想定します。

SELECT part FROM orders_list1;

PART ---------- SPARKPLUG FUEL PUMP FUEL PUMP TAILPIPE

SELECT part FROM orders_list2;

PART ----------

表表表表 3-9 集合演算子集合演算子集合演算子集合演算子

演算子演算子演算子演算子 戻る結果戻る結果戻る結果戻る結果

UNION 各問合せによって戻るすべての行(重複行は含まない)

UNION ALL 各問合せによって戻るすべての行(重複行を含む)

INTERSECT 両方の問合せによって戻るすべての行(重複行は含まない)

MINUS 最初の問合せによって戻る行で、2番目の問合せでは戻されない行(重複行は含まない)

演算子 3-13

Page 132: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

集合演算子 : UNION [ALL]、INTERSECT、MINUS

CRANKSHAFT TAILPIPE TAILPIPE

次に、各集合演算子でこの 2つの問合せの結果を結合する例を示します。

UNIONの例の例の例の例 次の文は、UNION演算子によって 2つの結果を結合しています。結果に重複行は含まれません。次の文は、他方の表に存在していない列がある場合に、データ型を一致させる必要がある(TO_DATEおよび TO_NUMBER関数を使用して)ことを示しています。

SELECT part, partnum, to_date(null) date_in FROM orders_list1UNIONSELECT part, to_number(null), date_in FROM orders_list2;

PART PARTNUM DATE_IN---------- ------- -------- SPARKPLUG 3323165 SPARKPLUG 10/24/98FUEL PUMP 3323162FUEL PUMP 12/24/99TAILPIPE 1332999TAILPIPE 01/01/01CRANKSHAFT 9394991CRANKSHAFT 09/12/02

SELECT part FROM orders_list1 UNION SELECT part FROM orders_list2;

PART ---------- SPARKPLUG FUEL PUMP TAILPIPE CRANKSHAFT

3-14 Oracle8i SQLリファレンス Vol.1

Page 133: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

集合演算子 : UNION [ALL]、INTERSECT、MINUS

UNION ALLの例の例の例の例 次の文は、UNION ALL演算子を使用して 2つの結果を結合しています。結果には重複行が含まれることもあります。

SELECT part FROM orders_list1 UNION ALL SELECT part FROM orders_list2;

PART ---------- SPARKPLUG FUEL PUMP FUEL PUMP TAILPIPE CRANKSHAFT TAILPIPE TAILPIPE

UNION ALL演算子がすべての行を戻すことに対して、UNION演算子は重複しない行のみを戻すことに注意してください。問合せで複数回戻される part値(FUEL PUMPなど)は、UNION演算子では 1回のみ戻されますが、UNION ALL演算子では複数回戻されています。

INTERSECTの例の例の例の例 次の文は、INTERSECT演算子によって 2つの結果を結合しています。この場合、両方の問合せによって共通に戻される行のみが戻されます。

SELECT part FROM orders_list1 INTERSECT SELECT part FROM orders_list2;

PART ---------- TAILPIPE

MINUSの例の例の例の例 次の文は、MINUS演算子を使用して 2つの結果を結合します。この場合、最初の問合せでは戻されるが、2番目の問合せでは戻されない行のみが戻されます。

SELECT part FROM orders_list1 MINUS SELECT part FROM orders_list2;

PART ---------- SPARKPLUG FUEL PUMP

演算子 3-15

Page 134: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

その他の組込み演算子

その他の組込み演算子その他の組込み演算子その他の組込み演算子その他の組込み演算子表 3-10に、その他の SQL演算子を示します。

ユーザー定義演算子ユーザー定義演算子ユーザー定義演算子ユーザー定義演算子ユーザー定義演算子は、組込み演算子のように、一連のオペランドを入力として受け取り、結果を戻します。ただし、ユーザー定義演算子は、ユーザーが CREATE OPERATOR文で作成して、名前(MERGEなど)で識別されます。これらは、表、ビュー、型およびスタンドアロン・ファンクションとして同じネームスペースに存在します。

新規の演算子を定義すると、他の組込み演算子のように SQL文で使用できます。たとえば、SELECT文の SELECT構文のリスト、WHERE句の条件、ORDER BY句および GROUP BY句でユーザー定義演算子を使用できます。ただし、これはユーザー定義オブジェクトであるため、演算子に対する EXECUTE権限が必要です。

たとえば、指定したキーワードがドキュメントに含まれる場合に、入力としてテキスト・ドキュメントおよびキーワードを受け取り、1を戻す CONTAINS演算子を定義するときは、次のような SQL問合せを作成します。

SELECT * FROM emp WHERE contains (resume, 'Oracle and UNIX') = 1;

表表表表 3-10 その他のその他のその他のその他の SQL演算子演算子演算子演算子

演算子演算子演算子演算子 用途用途用途用途 例例例例

(+) (+)の直前の列が結合における外部結合列であることを示す。

参照参照参照参照 : 5-24ページの「外部結合」を参照してください。

SELECT ename, dname FROM emp, dept WHERE dept.deptno = emp.deptno(+);

PRIOR 階層型(ツリー構造)の問合せで、PRIORの次の式をカレント行の親である行に対して評価します。このような問合せでは、行の親子関連を定義するために、CONNECT BY句でこの演算子を使用する必要があります。また、階層問合せを実行する SELECT文の他の部分でこの演算子を使用できます。PRIOR演算子は単項演算子であり、単項算術演算子の +および -と同じ優先順位を持っています。

参照参照参照参照 : 5-21ページの「階層問合せ」を参照してください。

SELECT empno, ename, mgr FROM emp CONNECT BY PRIOR empno = mgr;

参照参照参照参照 : ユーザー定義演算子の詳細は、9-112ページの「CREATE OPERATOR」および『Oracle8iデータ・カートリッジ開発者ガイド』を参照してください。

3-16 Oracle8i SQLリファレンス Vol.1

Page 135: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

4

関数関数関数関数

関数は、データ項目を操作し結果を戻すという点で演算子と似ています。関数と演算子は引数を指定する書式が異なります。次の書式によって、関数では 0(ゼロ)以上の引数を操作できます。

function(argument, argument, ...)

この章では、次の内容を説明します。

� SQL関数

� ユーザー定義ファンクション

関数 4-1

Page 136: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL関数

SQL関数関数関数関数SQL関数は、Oracleに組み込まれており、適切な SQL文で使用できます。SQL関数と、PL/SQLで記述されたユーザー・ファンクションを混同しないでください。

SQL関数が戻す値のデータ型以外のデータ型の引数で SQL関数をコールすると、OracleはSQL関数を実行する前に、その引数を必要なデータ型に暗黙的に変換します。NULLを引数として SQL関数をコールすると、SQL関数は自動的に NULLを戻します。この規則に従わない SQL関数は、CONCAT、NVLおよび REPLACEのみです。

SQL関数の構文図では、データ型とともに引数が示されています。SQL構文にパラメータ「function」が指定されている場合は、この項で説明する関数の 1つに置き換えます。関数は、引数のデータ型および戻り値によってグループ化されています。

一般的な構文は次のとおりです。

function::=

参照参照参照参照 :

� ユーザー・ファンクションの詳細は、4-128ページの「ユーザー定義ファンクション」を参照してください。

� Oracle interMediaで使用する関数の詳細は、『Oracle8i interMedia Audio, Imageおよび Videoユーザーズ・ガイドおよびリファレンス』を参照してください。

� データ型の暗黙的な変換については、2-29ページの「データ変換」を参照してください。

� xvページの「構文図および表記法」を参照してください。

single_row_function

aggregate_function

analytic_function

object_reference_function

user_defined_function

4-2 Oracle8i SQLリファレンス Vol.1

Page 137: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL関数

single_row_function::=

次の項に、前述の図のユーザー定義ファンクション以外の各グループにおける組込み SQL関数を示します。すべての組込み SQL関数を、アルファベット順に説明します。ユーザー定義ファンクションについては、この章の最後で説明します。

関数の説明の例には、サンプル Oracleデータベースの scottスキーマの一部である、empおよび dept表を使用します。sales表を使用している例もあります。sales表の内容は次のとおりです。

REGION PRODUCT S_DAY S_MONTH S_YEAR S_AMOUNT S_PROFIT------ ------- ------ ---------- ---------- ---------- --------200 1 10 6 1998 77586 586200 1 26 8 1998 62109 509200 1 11 11 1998 46632 432200 1 14 4 1999 15678 278201 1 9 6 1998 77972 587201 1 25 8 1998 62418 510201 1 10 11 1998 46864 433201 1 13 4 1999 15756 279200 2 9 6 1998 39087 293.5200 2 25 8 1998 31310 255200 2 10 11 1998 23533 216.5200 2 13 4 1999 7979 139.5201 2 9 11 1998 23649.5 217201 2 12 4 1999 8018.5 140200 3 9 11 1998 15834 144.67200 3 12 4 1999 5413.33 93.33201 3 11 4 1999 5440 93.67200 4 11 4 1999 4131 70.25201 4 10 4 1999 4151.25 70.5200 5 10 4 1999 3362 56.4201 5 5 6 1998 16068 118.2201 5 21 8 1998 12895.6 102.8201 5 9 4 1999 3378.4 56.6

number_function

character_function

date_function

conversion_function

miscellaneous_single_row_function

関数 4-3

Page 138: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL関数

単一行関数単一行関数単一行関数単一行関数単一行関数は、問合せ対象の表またはビューの各行に対して 1つの結果行を戻します。これらの関数は、SELECT構文のリスト、WHERE句、START WITH句および CONNECT BY句に指定できます。

数値関数数値関数数値関数数値関数数値関数は入力として数値を受け取り、結果として数値を戻します。これらの関数のほとんどは、38桁(10進)の値を戻します。超越関数(COS、COSH、EXP、LN、LOG、SIN、SINH、SQRT、TANおよび TANH)は、36桁(10進)の値を戻します。超越関数の ACOS、ASIN、ATAN、ATAN2は、30桁(10進)の値を戻します。数値関数を次に示します。

文字値を戻す文字関数文字値を戻す文字関数文字値を戻す文字関数文字値を戻す文字関数特に指定しない限り、文字値を戻す文字関数は、VARCHAR2データ型を持つ値を戻し、その値の長さが 4000バイトに制限されます。データ型が CHARの値を戻す関数は、値の長さが2000バイトに制限されます。戻り値の長さが制限を超えた場合、Oracleは戻り値から制限を超えた部分を切り捨てて、エラー・メッセージを出力せずにその結果を戻します。文字値を戻す文字関数を次に示します。

ABS

ACOS

ADD_MONTHS

ATAN

ATAN2

BITAND

CEIL

COS

COSH

EXP

FLOOR

LN

LOG

MOD

POWER

ROUND(数値関数)

SIGN

SIN

SINH

SQRT

TAN

TANH

TRUNC(数値関数 )

CHR

CONCAT

INITCAP

LOWER

LPAD

LTRIM

NLS_INITCAP

NLS_LOWER

NLSSORT

NLS_UPPER

REPLACE

RPAD

RTRIM

SOUNDEX

SUBSTR

SUBSTRB

TRANSLATE

TRIM

UPPER

4-4 Oracle8i SQLリファレンス Vol.1

Page 139: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL関数

数値を戻す文字関数数値を戻す文字関数数値を戻す文字関数数値を戻す文字関数数値を戻す文字関数を次に示します。

日付関数日付関数日付関数日付関数日付関数は、DATEデータ型の値を操作します。数を戻す MONTHS_BETWEEN関数を除いて、すべての日付関数は DATEデータ型の値を戻します。日付関数を次に示します。

変換関数変換関数変換関数変換関数変換関数は、あるデータ型から他のデータ型に値を変換します。一般に、関数名はdatatype TO datatypeの形式で指定されます。最初のデータ型は入力データ型です。2番目のデータ型は出力データ型です。SQL変換関数を次に示します。

ASCII

INSTR

INSTRB

LENGTH

LENGTHB

ADD_MONTHS

LAST_DAY

MONTHS_BETWEEN

NEW_TIME

NEXT_DAY

ROUND(日付関数)

SYSDATE

TRUNC(日付関数)

CHARTOROWID

CONVERT

HEXTORAW

NUMTODSINTERVAL

NUMTOYMINTERVAL

RAWTOHEX

ROWIDTOCHAR

TO_CHAR(日付変換)

TO_CHAR(数値変換)

TO_DATE

TO_LOB

TO_MULTI_BYTE

TO_NUMBER

TO_SINGLE_BYTE

TRANSLATE ... USING

関数 4-5

Page 140: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL関数

その他の単一行関数その他の単一行関数その他の単一行関数その他の単一行関数次の単一行関数は、他の単一行関数のカテゴリのいずれにも入りません。

集計関数集計関数集計関数集計関数集計関数は、単一行に基づく結果行を戻すのではなく、行のグループに基づく単一結果行を戻します。集計関数は、SELECT構文のリスト、ORDER BYおよび HAVING句に指定できます。集計関数は、通常、SELECT文の GROUP BY句で使用され、Oracleは問合せ対象の表またはビューの行をグループ化します。GROUP BY句を含む問合せでは、SELECT構文のリストの要素は、これらのいずれかを含む集計関数、GROUP BY式、定数または式にする必要があります。Oracleは、集計関数を行の各グループに適用し、各グループに単一の結果行を戻します。

GROUP BY句を指定しないと、Oracleは、SELECT構文のリスト内の集計関数を、問合せ対象の表またはビューのすべての行に適用します。HAVING句で集計関数を使用して、グループを出力しないこともできます。このとき、出力は、問合せ対象の表またはビューの各行の値ではなく、集計関数の結果に基づきます。

BFILENAME

DUMP

EMPTY_[B | C]LOB

GREATEST

LEAST

NLS_CHARSET_DECL_LEN

NLS_CHARSET_ID

NLS_CHARSET_NAME

NVL

NVL2

SYS_CONTEXT

SYS_GUID

UID

USER

USERENV

VSIZE

参照参照参照参照 : 問合せおよび副問合せにおける GROUP BY句および HAVING句の詳細は、11-105ページの「GROUP BYの例」および 11-100ページの「HAVING」句を参照してください。

4-6 Oracle8i SQLリファレンス Vol.1

Page 141: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL関数

単一の引数を指定する多くの集計関数には、次のオプションがあります。

� DISTINCTを指定すると、集計関数は引数式の重複行を排除した値のみを考慮します。

� ALLを指定すると、集計関数は重複行を含むすべての値を考慮します。

たとえば、1、1、1、3の平均値は DISTINCTでは 2となり、ALLでは 1.5となります。どのオプションも指定しない場合、デフォルトで ALLが使用されます。

COUNT(*)および GROUPINGを除くすべての集計関数は、NULLを無視します。集計関数に対する引数に NVL関数を使用して、NULLをある値で置き換えることができます。COUNTは NULLを戻しません。数字または 0(ゼロ)を戻します。その他の集計関数では、データ・セットに行がない場合、または集計関数に対する引数として NULLを持つ行のみがある場合は NULLを戻します。

集計関数はネストできます。たとえば、次の例では、scottスキーマのすべての部門の最高給与の平均を計算しています。

SELECT AVG(MAX(sal)) FROM emp GROUP BY deptno;

AVG(MAX(SAL))------------- 3616.66667

この計算では、GROUP BY句(deptno)で定義されている各グループごとの内部集計(MAX(sal))を評価し、その結果をもう一度集計しています。

集計関数を次に示します。

AVG

CORR

COUNT

COVAR_POP

COVAR_SAMP

GROUPING

MAX

MIN

REGR_(線形リグレッション)関数

STDDEV

STDDEV_POP

STDDEV_SAMP

SUM

VAR_POP

VAR_SAMP

VARIANCE

関数 4-7

Page 142: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL関数

分析関数分析関数分析関数分析関数分析関数は、行のグループに基づいて集計値を計算します。行のグループを windowといい、分析句で定義されます。各行に対して、行の「スライディング」ウィンドウが定義されます。windowは、「カレント行」の計算に使用される行の範囲を決定します。windowの大きさは、行の物理数値または時間などのロジカル・インターバルに基づきます。

分析関数は、問合せで最後に実行される演算(最後の ORDER BY句を除く)の集合です。すべての結合およびすべての WHERE、GROUP BYおよび HAVING句は、分析関数が処理される前に実行されます。そのため、分析関数は、SELECT構文のリストまたは ORDER BY句のみに指定できます。

分析関数は、通常、累積集計、移動集計、センター集計およびレポート集計の実行に使用されます。

analytic_function::=

analytic_clause::=

query_partition_clause::=

ORDER_BY_clause::=

analytic_function (arguments

) OVER ( analytic_clause )

query_partition_clause ORDER_BY_clausewindowing_clause

PARTITION BY value_expr

,

ORDER BY

expr

position

c_alias

ASC

DESC

NULLS FIRST

NULLS LAST

,

4-8 Oracle8i SQLリファレンス Vol.1

Page 143: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL関数

windowing_clause::=

この構文のキーワードおよびパラメータを次に示します。

analytic_function

分析関数の名前を指定します(4-12ページの分析関数のリストを参照してください)。

arguments

分析関数には引数を 0~ 3個指定します。

analytic_clause

analytic_clause OVER句は、関数が問合せ結果セットを操作することを示します。FROM、WHERE、GROUP BYおよび HAVING句の後に計算されます。SELECT構文のリストのこの句または ORDER BY句に分析関数を指定できます。分析関数に基づいて、問合せの結果をフィルタするには、これらの関数を親問合せ内でネストした後、ネストした副問合せの結果をフィルタします。

注意注意注意注意 : 分析関数はネストできないため、analytic_clauseのどの部分にも、分析関数を指定できません。ただし、副問合せで分析関数を指定して、別の分析関数を計算することはできます。

ROWS

RANGE

BETWEEN

UNBOUNDED PRECEDING

CURRENT ROW

value_exprPRECEDING

FOLLOWING

AND

UNBOUNDED FOLLOWING

CURRENT ROW

value_exprPRECEDING

FOLLOWING

UNBOUNDED PRECEDING

CURRENT ROW

value_expr PRECEDING

関数 4-9

Page 144: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL関数

query_partition_clause

ORDER_BY_clause

ORDER BY句を使用すると、パーティション内でのデータの順序付け方法を指定できます。複数キーでパーティションの値を順序付けできます。これらの値は、それぞれ value_exprによって定義され、順序付けシーケンスで修飾されています。

各関数には、複数の順序式を指定できます。これは、2番目の式が最初の式にある同一値との間の関連性を変換できるため、値をランク付けする関数を使用する場合に特に役立ちます。

制限事項制限事項制限事項制限事項 : ORDER_BY_clauseを分析関数で使用する場合、式(expr)が必要です。位置(position)および列別名(c_alias)は無効です。それ以外で使用する場合、このORDER_BY_clauseは、問合せまたは副問合せ全体を順序付ける場合に使用するものと同じです。

PARTITION BY PARTITION BY句を使用すると、1つ以上の value_exprに基づいて、問合せ結果セットをグループに分割できます。この句を省略すると、関数は問合せ結果セットのすべての行を単一のグループとして扱います。

同じまたは異なる PARTITION BYキーで、同じ問合せに複数の分析関数を指定できます。

注意注意注意注意 :問い合せているオブジェクトにパラレル属性があり、query_partition_clauseで分析関数を指定する場合は、関数の計算もパラレル化されます。

value_expr 有効な値の式は、定数、列、非分析関数、関数式、またはこれらのいずれかを含む式です。

注意注意注意注意 : 分析関数は、常に、関数の ORDER_BY_clauseで指定された順序で行を操作します。ただし、関数の ORDER_BY_clauseは結果の順序を保証しません。最終結果の順序を保証するには、問合せのORDER_BY_clauseを使用してください。

4-10 Oracle8i SQLリファレンス Vol.1

Page 145: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL関数

windowing_clause

参照参照参照参照 : この句の詳細は、11-102ページの「SELECTおよび副問合せ」のorder_by_clauseを参照してください。

ASC | DESC 順序付けシーケンス(昇順または降順)を指定します。デフォルトはASCです。

NULLS FIRST | NULLS LAST

NULL値を含む戻り値を、順序付けシーケンスの最初にするかまたは最後にするかを指定します。

NULLS LASTは昇順のデフォルトで、NULLS FIRSTは降順のデフォルトです。

ROWS | RANGE これらのキーワードは、各行に対して、関数の結果の計算に使用される「window」(行の物理集合または論理集合)を定義します。関数は、

windowのすべての行に適用されます。windowは、問合せ結果セット内またはパーティションの上から下までスライドします。

� ROWSは、物理単位(行)で windowを指定します。

� RANGEは、論理オフセットとして windowを指定します。

ORDER_BY_clauseを指定しないと、この句を指定できません。

注意注意注意注意 : 分析関数が論理オフセットで戻す値は、常に決定的なものです。ただし、分析関数が物理オフセットで戻す値は、順序式の結果が一意の順序にならない限り、非決定的な結果を生成することがあります。ORDER_BY_clauseに複数の列を指定して、結果の順序を一意にする必要があります。

BETWEEN ... AND BETWEEN ... AND句を使用すると、windowにスタート・ポイントおよびエンド・ポイントを指定できます。最初の式(ANDの前)はスタート・ポイントを定義し、2番目の式(ANDの後)はエンド・ポイントを定義します。

BETWEENを省略してエンド・ポイントを 1つのみ指定すると、Oracleはそれをスタート・ポイントとみなし、デフォルトでカレント行をエンド・ポイントに指定します。

関数 4-11

Page 146: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL関数

UNBOUNDED PRECEDING

UNBOUNDED PRECEDINGを指定すると、パーティションの最初の行で、windowが開始することを指定できます。これはスタート・ポイントの指定で、エンド・ポイントの指定としては使用できません。

UNBOUNDED FOLLOWING

UNBOUNDED FOLLOWINGを指定して、パーティションの最後の行で、windowが終了することを指定できます。これはエンド・ポイントの指定で、スタート・ポイントの指定としては使用できません。

CURRENT ROW スタート・ポイントとして、windowがカレント行または値(それぞれROWまたは RANGEを指定したかどうかに基づく)で開始することを指定します。この場合、value_expr PRECEDINGをエンド・ポイントにできません。

エンド・ポイントとして、windowがカレント行または値(それぞれROWまたは RANGEを明示的に指定したかどうかに基づく)で終了することを指定します。この場合、value_expr FOLLOWINGをスタート・ポイントにできません。

value_expr PRECEDING

value_expr FOLLOWING

RANGEまたは ROWに対して、

� value_expr FOLLOWINGがスタート・ポイントの場合、エンド・ポイントは value_expr FOLLOWINGである必要があります。

� value_expr PRECEDINGがエンド・ポイントの場合、スタート・ポイントは value_expr PRECEDINGである必要があります。

数値形式の時間間隔で定義されている論理ウィンドウを定義する場合、変換関数を使用する必要があります。

参照参照参照参照 : 数値時間からインターバル・リテラルへの変換の詳細は、4-70ページの「NUMTOYMINTERVAL」および 4-69ページの「NUMTODSINTERVAL」を参照してください。

ROWSを指定した場合、

� value_exprは物理オフセットになります。これは定数または式であり、正数値に評価する必要があります。

� value_exprがスタート・ポイントの一部の場合、エンド・ポイントの前にある行に評価する必要があります。

4-12 Oracle8i SQLリファレンス Vol.1

Page 147: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL関数

分析関数は、通常、データ・ウェアハウス環境で使用されます。分析関数を次に示します。

RANGEを指定した場合、

� value_exprは論理オフセットになります。これは、正数値またはインターバル・リテラルに評価する定数または式である必要があります。

参照参照参照参照 : インターバル・リテラルの詳細は、2-31ページの「リテラル」を参照してください。

� ORDER_BY_clauseには、式を 1つのみ指定できます。

� value_exprが数値に対して評価を行う場合、ORDER BY exprはNUMBERまたは DATEデータ型である必要があります。

� value_exprが間隔値に対して評価を行う場合、ORDER BY exprはDATEデータ型である必要があります。

windowing_clauseを完全に省略した場合、デフォルトで RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROWになります。

AVG

CORR

COVAR_POP

COVAR_SAMP

COUNT

CUME_DIST

DENSE_RANK

LAG

FIRST_VALUE

LAST_VALUE

LEAD

MAX

MIN

NTILE

PERCENT_RANK

RATIO_TO_REPORT

RANK

REGR_(線形リグレッション)関数

ROW_NUMBER

STDDEV

STDDEV_POP

STDDEV_SAMP

SUM

VAR_POP

VAR_SAMP

VARIANCE

参照参照参照参照 : これらの関数およびその使用方法の詳細は、『Oracle8iデータ・ウェアハウス』を参照してください。

関数 4-13

Page 148: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL関数のリスト(アルファベット順)

オブジェクト参照関数オブジェクト参照関数オブジェクト参照関数オブジェクト参照関数オブジェクト関数は、指定されたオブジェクト型のオブジェクトへの参照となる REFを操作します。オブジェクト参照関数を次に示します。

SQL関数のリスト(アルファベット順)関数のリスト(アルファベット順)関数のリスト(アルファベット順)関数のリスト(アルファベット順)

ABS

構文構文構文構文

用途用途用途用途ABSは、nの絶対値を戻します。

例例例例SELECT ABS(-15) "Absolute" FROM DUAL;

Absolute---------- 15

DEREF

MAKE_REF

REF

REFTOHEX

VALUE

参照参照参照参照 : REFの詳細は、『Oracle8i概要』および『Oracle8iアプリケーション開発者ガイド 基礎編』を参照してください。

ABS ( n )

4-14 Oracle8i SQLリファレンス Vol.1

Page 149: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ADD_MONTHS

ACOS

構文構文構文構文

用途用途用途用途ACOSは、nのアーク・コサインを戻します。入力は -1~ 1の範囲で、出力は 0~ π(ラジアン)の範囲です。

例例例例SELECT ACOS(.3)"Arc_Cosine" FROM DUAL;

Arc_Cosine----------1.26610367

ADD_MONTHS

構文構文構文構文

用途用途用途用途ADD_MONTHSは、日付 dに nか月を加えて戻します。引数 nには、任意の整数を指定できます。dが月の最終日の場合、または結果の月の日数が dの日付コンポーネントよりも少ない場合、戻される値は結果の月の最終日となります。それ以外の場合、結果は dと同じ日付コンポーネントを持ちます。

例例例例SELECT TO_CHAR( ADD_MONTHS(hiredate,1), 'DD-MON-YYYY') "Next month" FROM emp WHERE ename = 'SMITH';

Next Month-----------17-JAN-1981

ACOS ( n )

ADD_MONTHS ( d , n )

関数 4-15

Page 150: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ASCII

ASCII

構文構文構文構文

用途用途用途用途ASCIIは、charの最初の文字の、データベース・キャラクタ・セットでの 10進表記を戻します。データベース・キャラクタ・セットが 7ビットの ASCIIの場合、この関数はASCII値を戻します。データベース・キャラクタ・セットが EBCDICコードの場合、この関数はEBCDIC値を戻します。この関数と一致する EBCDIC文字関数は存在しません。

例例例例SELECT ASCII('Q') FROM DUAL; ASCII('Q')---------- 81

ASIN

構文構文構文構文

用途用途用途用途ASINは、nのアーク・サインを戻します。入力は -1~ 1の範囲で、出力は -π/2~ π/2(ラジアン)の範囲です。

例例例例SELECT ASIN(.3) "Arc_Sine" FROM DUAL;

Arc_Sine----------.304692654

ASCII ( char )

ASIN ( n )

4-16 Oracle8i SQLリファレンス Vol.1

Page 151: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ATAN2

ATAN

構文構文構文構文

用途用途用途用途ATANは、nのアーク・タンジェントを戻します。入力範囲に制限はなく、出力は -π/2~π/2(ラジアン)の範囲です。

例例例例SELECT ATAN(.3) "Arc_Tangent" FROM DUAL;

Arc_Tangent----------.291456794

ATAN2

構文構文構文構文

用途用途用途用途ATAN2は、nおよび mのアーク・タンジェントを戻します。入力範囲に制限はなく、出力はnおよび mの符号により、-π~ π(ラジアン)の範囲です。ATAN2(n, m)は、ATAN2(n/m)と同じです。

例例例例SELECT ATAN2(.3, .2) "Arc_Tangent2" FROM DUAL; Arc_Tangent2------------ .982793723

ATAN ( n )

ATAN2 ( n,

/m )

関数 4-17

Page 152: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

AVG

AVG

構文構文構文構文

用途用途用途用途AVGは、exprの平均値を戻します。これは、集計関数または分析関数として使用できます。

DISTINCTを指定する場合は、analytic_clauseの query_partition_clauseのみ指定できます。ORDER_BY_clauseおよび windowing_clauseは指定できません。

集計の例集計の例集計の例集計の例次の例では、emp表にあるすべての従業員の平均給与を計算します。

SELECT AVG(sal) "Average" FROM emp;

Average----------2077.21429

分析の例分析の例分析の例分析の例次の例では、emp表の各従業員について、ある期間内に雇用された従業員の平均給与を所属別に計算します。

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

参照参照参照参照 :

� 4-6ページの「集計関数」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

AVG (

DISTINCT

ALLexpr )

OVER ( analytic_clause )

4-18 Oracle8i SQLリファレンス Vol.1

Page 153: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

BFILENAME

SELECT mgr, ename, hiredate, sal, AVG(sal) OVER (PARTITION BY mgr ORDER BY hiredate ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS c_mavg FROM emp;

MGR ENAME HIREDATE SAL C_MAVG---------- ---------- --------- ---------- ---------- 7566 FORD 03-DEC-81 3000 3000 7566 SCOTT 19-APR-87 3000 3000 7698 ALLEN 20-FEB-81 1600 1425 7698 WARD 22-FEB-81 1250 1450 7698 TURNER 08-SEP-81 1500 1333.33333 7698 MARTIN 28-SEP-81 1250 1233.33333 7698 JAMES 03-DEC-81 950 1100 7782 MILLER 23-JAN-82 1300 1300 7788 ADAMS 23-MAY-87 1100 1100 7839 JONES 02-APR-81 2975 2912.5 7839 BLAKE 01-MAY-81 2850 2758.33333 7839 CLARK 09-JUN-81 2450 2650 7902 SMITH 17-DEC-80 800 800 KING 17-NOV-81 5000 5000

BFILENAME

構文構文構文構文

用途用途用途用途BFILENAMEは、サーバーのファイル・システムの物理 LOBバイナリ・ファイルに対応付けられている BFILEロケータを戻します。'directory'は、ファイルが実際に格納されているサーバー・ファイル・システム上での完全パス名の別名です。また、'filename'は、サーバー・ファイル・システムでのファイル名です。

BFILENAMEを指定する時点では、'directory'および 'filename'はファイル・システムに存在しているオブジェクトを指している必要はありません。ただし、後続の SQL、PL/SQL、DBMS_LOBパッケージまたは OCIの操作を実行する前に、BFILE値を物理ファイルに関連付けておく必要があります。

BFILENAME ( ’ directory ’ , ’ filename ’ )

関数 4-19

Page 154: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

BITAND

例例例例INSERT INTO file_tbl VALUES (BFILENAME ('lob_dir1', 'image1.gif'));

BITAND

構文構文構文構文

用途用途用途用途BITANDは、構成要素 argument1、argument2に対して AND操作を計算します。argument1および argument2は、負以外の整数に変換される必要があり、整数を戻します。次に示すとおり、この関数は、一般的に DECODE式で使用されます。

例例例例carsという名前の表を次に示します。

MANUFACTURER MODEL OPTIONS--------------- ---------- ----------TOYOTA CAMRY 3TOYOTA COROLLA 5NISSAN MAXIMA 6

次の例は、個々の構成要素別に、各車のオプションを示しています。

SELECT manufacturer, model, DECODE(BITAND(options, 1), 1, 'Automatic', 'Stick-shift'), DECODE(BITAND(options, 2), 2, 'CD', 'Radio'), DECODE(BITAND(options, 4), 4, 'ABS', 'No-ABS') FROM cars;

参照参照参照参照 :

� LOBの詳細は、『Oracle8iアプリケーション開発者ガイド ラージ・オブジェクト』および『Oracle8iコール・インタフェース・プログラマーズ・ガイド』を参照してください。

� 9-39ページの「CREATE DIRECTORY」を参照してください。

BITAND ( argument1 , argument2 )

4-20 Oracle8i SQLリファレンス Vol.1

Page 155: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

CHARTOROWID

MANUFACTURER MODEL DECODE(BITA DECOD DECODE--------------- ---------- ----------- ----- ------TOYOTA CAMRY Automatic CD No-ABSTOYOTA COROLLA Automatic Radio ABSNISSAN MAXIMA Stick-shift CD ABS

CEIL

構文構文構文構文

用途用途用途用途CEILは、n以上の最も小さい整数を戻します。

例例例例SELECT CEIL(15.7) "Ceiling" FROM DUAL;

Ceiling---------- 16

CHARTOROWID

構文構文構文構文

用途用途用途用途CHARTOROWIDは、CHARデータ型または VARCHAR2データ型の値を ROWIDデータ型に変換します。

例例例例SELECT ename FROM emp WHERE ROWID = CHARTOROWID('AAAAfZAABAAACp8AAO'); ENAME----------LEWIS

CEIL ( n )

CHARTOROWID ( char )

関数 4-21

Page 156: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

CHR

CHR

構文構文構文構文

用途用途用途用途CHRは、データベース・キャラクタ・セットまたは各国語キャラクタ・セットの中の nに等しい 2進数を持つ文字を戻します。

USINGNCHAR_CSが指定されていない場合、この関数は、データベース・キャラクタ・セットの中の nに等しい 2進数を持つ文字を VARCHAR2値として戻します。

USING NCHAR_CSが指定されている場合、この関数は、各国語キャラクタ・セットの中の nに等しい 2進数を持つ文字を NVARCHAR2値として戻します。

例例例例次の例は、データベース・キャラクタ・セットがWE8ISO8859P1と定義されている ASCIIベースのマシンで実行されています。

SELECT CHR(67)||CHR(65)||CHR(84) "Dog" FROM DUAL;

Dog---CAT

SELECT CHR(16705 USING NCHAR_CS) FROM DUAL; C-A

注意注意注意注意 : (オプションの USING NCHAR_CS句の有無にかかわらず)CHR関数を使用すると、ASCIIおよび EBCDICベースのマシン・アーキテクチャ間で移植不可能なコードが戻されます。

CHR ( nUSING NCHAR_CS

)

4-22 Oracle8i SQLリファレンス Vol.1

Page 157: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

CONCAT

キャラクタ・セットがWE8EBCDIC1047の EBCDICベースのマシンでも同じ結果を戻すには、前述の例を次のように修正する必要があります。

SELECT CHR(195)||CHR(193)||CHR(227) "Dog" FROM DUAL;

Dog --- CAT

CONCAT

構文構文構文構文

用途用途用途用途CONCATは、char2に連結されている char1を戻します。この関数は、連結演算子(||)と同等です。

例例例例次の例では、ネストを使用して 3つの文字列を連結します。

SELECT CONCAT(CONCAT(ename, ' is a '), job) "Job"FROM empWHERE empno = 7900;

Job-----------------JAMES is a CLERK

参照参照参照参照 : CONCAT演算子の詳細は、3-4ページの「連結演算子」を参照してください。

CONCAT ( char1 , char2 )

関数 4-23

Page 158: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

CONVERT

CONVERT

構文構文構文構文

用途用途用途用途CONVERTは、文字列を、あるキャラクタ・セットから別のキャラクタ・セットに変換します。

� 引数 charは変換する値です。

� 引数 dest_char_setは charが変換されるキャラクタ・セットの名前です。

� 引数 source_char_setは、charをデータベースに格納しているキャラクタ・セットの名前です。デフォルト値はデータベース・キャラクタ・セットです。

変換先キャラクタ・セットと変換元キャラクタ・セットの引数として、リテラルまたはキャラクタ・セットの名前を含んでいる列を指定できます。

完全に文字を変換するには、変換先キャラクタ・セットが変換元キャラクタ・セットで定義されているすべての文字を表現できる必要があります。文字が変換先キャラクタ・セットに存在しないと、置換文字が使用されます。置換文字は、キャラクタ・セット定義の一部として定義できます。

例例例例SELECT CONVERT('Groß', 'US7ASCII', 'WE8HP') "Conversion" FROM DUAL;

Conversion----------Gross

一般的なキャラクタ・セットを次に示します。

� US7ASCII: US7ビット ASCIIキャラクタ・セット

� WE8DECDEC: 西ヨーロッパ 8ビット・キャラクタ・セット

� WE8HP: HP西ヨーロッパ Laserjet 8ビット・キャラクタ・セット

CONVERT ( char , dest_char_set, source_char_set

)

4-24 Oracle8i SQLリファレンス Vol.1

Page 159: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

CORR

� F7DEC: DECフランス 7ビット・キャラクタ・セット

� WE8EBCDIC500: IBM西ヨーロッパ EBCDICコード・ページ 500

� WE8PC850: IBM PCコード・ページ 850

� WE8ISO8859P1: ISO 8859-1西ヨーロッパ 8ビット・キャラクタ・セット

CORR

構文構文構文構文

用途用途用途用途CORRは、数値の組の集合に対する相関係数を戻します。これは、集計関数または分析関数として使用できます。

expr1および expr2は数値式です。Oracleは、expr1または expr2が NULLである組を排除した後、この関数を (expr1 , expr2)の集合に適用します。その後、Oracleは次の計算を行います。

COVAR_POP(expr1, expr2) / (STDDEV_POP(expr1) * STDDEV_POP(expr2))

関数は、NUMBER型の値を戻します。関数が空の集合に適用されると、NULLを戻します。

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

参照参照参照参照 :

� 4-6ページの「集計関数」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

CORR ( expr1 , expr2 )OVER ( analytic_clause )

関数 4-25

Page 160: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

COS

集計の例集計の例集計の例集計の例次の例では、emp表から、マネージャが 7698である従業員の給与とコミッションの相関係数を計算します。

SELECT mgr, CORR(sal, comm) FROM EMP GROUP BY mgr HAVING mgr = 7698;

MGR CORR(SAL,COMM)---------- -------------- 7698 -.69920974

分析の例分析の例分析の例分析の例次の例では、1998年度の sales表から、1ヶ月の売上と利益の相関累積係数を計算します。

SELECT s_month, CORR(SUM(s_amount), SUM(s_profit)) OVER (ORDER BY s_month) AS CUM_CORR FROM sales WHERE s_year=1998 GROUP BY s_month ORDER BY s_month;

S_MONTH CUM_CORR ---------- ---------- 6 8 1 11 .860554259

相関関数には、操作する行が 1つ以上必要です。そのため、前述の例にある最初の行には、計算する値はありません。

COS

構文構文構文構文

用途用途用途用途COSは、n(ラジアンで表された角度)のコサインを戻します。

COS ( n )

4-26 Oracle8i SQLリファレンス Vol.1

Page 161: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

COUNT

例例例例SELECT COS(180 * 3.14159265359/180)"Cosine of 180 degrees" FROM DUAL;

Cosine of 180 degrees--------------------- -1

COSH

構文構文構文構文

用途用途用途用途COSHは、nの双曲線コサインを戻します。

例例例例SELECT COSH(0) "Hyperbolic cosine of 0" FROM DUAL; Hyperbolic cosine of 0---------------------- 1

COUNT

構文構文構文構文

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

COSH ( n )

COUNT (

*

DISTINCT

ALLexpr

)OVER ( analytic_clause )

関数 4-27

Page 162: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

COUNT

用途用途用途用途COUNTは、問合せ内の行数を戻します。これは、集計関数または分析関数として使用できます。

DISTINCTを指定する場合は、analytic_clauseの query_partition_clauseのみ指定できます。ORDER_BY_clauseおよび windowing_clauseは指定できません。

exprを指定すると、COUNTは exprが NULLでない行数を戻します。exprのすべての行を数えるか、または異なる値のみを数えることができます。

アスタリスク(*)を指定すると、この関数は重複値および NULL値を含むすべての行を戻します。COUNTは NULLを戻しません。

集計の例集計の例集計の例集計の例SELECT COUNT(*) "Total" FROM emp;

Total ---------- 14

SELECT COUNT(*) "Allstars" FROM emp WHERE comm > 0;

Allstars-------- 3

SELECT COUNT(mgr) "Count" FROM emp;

Count ---------- 13

SELECT COUNT(DISTINCT mgr) "Managers" FROM emp;

Managers ---------- 6

参照参照参照参照 :

� 4-6ページの「集計関数」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

4-28 Oracle8i SQLリファレンス Vol.1

Page 163: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

COVAR_POP

分析の例分析の例分析の例分析の例次の例では、emp表の各従業員について、その従業員の給与より $50少ない金額から $150多い金額の範囲の給与を得ている従業員の数を計算します。

SELECT ename, sal, COUNT(*) OVER (ORDER BY sal RANGE BETWEEN 50 PRECEDING AND 150 FOLLOWING) AS mov_count FROM emp;

ENAME SAL MOV_COUNT---------- ---------- ----------SMITH 800 2JAMES 950 2ADAMS 1100 3WARD 1250 3MARTIN 1250 3MILLER 1300 3TURNER 1500 2ALLEN 1600 1CLARK 2450 1BLAKE 2850 4JONES 2975 3SCOTT 3000 3FORD 3000 3KING 5000 1

COVAR_POP

構文構文構文構文

用途用途用途用途COVAR_POPは、数値の組の集合に対する母集団共分散を戻します。これは、集計関数または分析関数として使用できます。

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

COVAR_POP ( expr1 , expr2 )OVER ( analytic_clause )

関数 4-29

Page 164: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

COVAR_POP

expr1および expr2は数値式です。Oracleは、expr1または expr2が NULLであるすべての組を排除した後、この関数を (expr1 , expr2)の集合に適用します。その後、Oracleは次の計算を行います。

(SUM(expr1 * expr2) - SUM(expr2) * SUM(expr1) / n) / n

ここで、nは (expr1 , expr2)の組の数値です(ただし、expr1および expr2は両方ともNULLではありません)。

関数は、NUMBER型の値を戻します。関数が空の集合に適用されると、NULLを戻します。

集計の例集計の例集計の例集計の例次の例では、sales表から各年度における売上高および売上利益の母集団共分散を計算します。

SELECT s_year, COVAR_POP(s_amount, s_profit) AS COVAR_POP, COVAR_SAMP(s_amount, s_profit) AS COVAR_SAMP FROM sales GROUP BY s_year;

S_YEAR COVAR_POP COVAR_SAMP---------- ---------- ---------- 1998 3747965.53 4060295.99 1999 360536.162 400595.736

分析の例分析の例分析の例分析の例次の例では、1998年の売上高および売上利益の累積標本共分散を計算します。

SELECT s_year, s_month, s_day, COVAR_POP(s_amount, s_profit) OVER (ORDER BY s_month, s_day) AS CUM_COVP, COVAR_SAMP(s_amount, s_profit) OVER (ORDER BY s_month, s_day) AS CUM_COVS FROM sales WHERE s_year=1998 ORDER BY s_year, s_month, s_day;

S_YEAR S_MONTH S_DAY CUM_COVP CUM_COVS ---------- ---------- ---------- ---------- ---------- 1998 6 5 0 1998 6 9 4940952.6 7411428.9 1998 6 9 4940952.6 7411428.9

参照参照参照参照 :

� 4-6ページの「集計関数」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

4-30 Oracle8i SQLリファレンス Vol.1

Page 165: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

COVAR_SAMP

1998 6 10 5281752.33 7042336.44 1998 8 21 6092799.46 7615999.32 1998 8 25 4938283.61 5761330.88 1998 8 25 4938283.61 5761330.88 1998 8 26 4612074.09 5270941.82 1998 11 9 4556799.53 5063110.59 1998 11 9 4556799.53 5063110.59 1998 11 10 4014833.65 4379818.52 1998 11 10 4014833.65 4379818.52 1998 11 11 3747965.53 4060295.99

COVAR_SAMP

構文構文構文構文

用途用途用途用途COVAR_SAMPは、数値の組の集合の標本共分散を戻します。これは、集計関数または分析関数として使用できます。

expr1および expr2は数値式です。Oracleは、expr1または expr2が NULLであるすべての組を排除した後、この関数を (expr1 , expr2)の集合に適用します。その後、Oracleは次の計算を行います。

(SUM(expr1 * expr2) - SUM(expr1) * SUM(expr2) / n) / (n-1)

ここで、nは (expr1 , expr2)の組の数値です(ただし、expr1および expr2は両方ともNULLではありません)。

関数は、NUMBER型の値を戻します。関数が空の集合に適用されると、NULLを戻します。

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

参照参照参照参照 :

� 4-6ページの「集計関数」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

COVAR_SAMP ( expr1 , expr2 )OVER ( analytic_clause )

関数 4-31

Page 166: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

COVAR_SAMP

集計の例集計の例集計の例集計の例次の例では、sales表から各年度における売上高および売上利益の母集団共分散を計算します。

SELECT s_year, COVAR_POP(s_amount, s_profit) AS COVAR_POP, COVAR_SAMP(s_amount, s_profit) AS COVAR_SAMP FROM sales GROUP BY s_year;

S_YEAR COVAR_POP COVAR_SAMP---------- ---------- ---------- 1998 3747965.53 4060295.99 1999 360536.162 400595.736

分析の例分析の例分析の例分析の例次の例では、1998年の売上高および売上利益の累積標本共分散を計算します。

SELECT s_year, s_month, s_day, COVAR_POP(s_amount, s_profit) OVER (ORDER BY s_month, s_day) AS CUM_COVP, COVAR_SAMP(s_amount, s_profit) OVER (ORDER BY s_month, s_day) AS CUM_COVS FROM sales WHERE s_year=1998 ORDER BY s_year, s_month, s_day;

S_YEAR S_MONTH S_DAY CUM_COVP CUM_COVS ---------- ---------- ---------- ---------- ---------- 1998 6 5 0 1998 6 9 4940952.6 7411428.9 1998 6 9 4940952.6 7411428.9 1998 6 10 5281752.33 7042336.44 1998 8 21 6092799.46 7615999.32 1998 8 25 4938283.61 5761330.88 1998 8 25 4938283.61 5761330.88 1998 8 26 4612074.09 5270941.82 1998 11 9 4556799.53 5063110.59 1998 11 9 4556799.53 5063110.59 1998 11 10 4014833.65 4379818.52 1998 11 10 4014833.65 4379818.52 1998 11 11 3747965.53 4060295.99

4-32 Oracle8i SQLリファレンス Vol.1

Page 167: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

CUME_DIST

CUME_DIST

構文構文構文構文

用途用途用途用途CUME_DIST(累積分布)は分析関数です。これは、値のグループにある特定の値の相対位置を計算します。R行について、昇順で順序付けられているとします。Rの CUME_DISTは、Rの値以下の値の行を、評価される行の数(問合せ結果セットまたはパーティション)で割った数です。CUME_DISTが戻す値の範囲は、0より大きく 1以下です。連結値は、常に同じ累積分布値に対して評価を行います。

例例例例次の例では、PRESIDENTおよび MANAGERを除く職種ごとに、各従業員の給与のパーセンタイルを計算します。たとえば、CLERKの 50%が、Jamesの給与以下の給与を得ていることがわかります。

SELECT job, ename, sal, CUME_DIST() OVER (PARTITION BY job ORDER BY sal) AS cume_dist FROM emp WHERE job NOT IN ('MANAGER', 'PRESIDENT');

JOB ENAME SAL CUME_DIST--------- ---------- ---------- ----------ANALYST SCOTT 3000 1ANALYST FORD 3000 1CLERK SMITH 800 .25CLERK JAMES 950 .5CLERK ADAMS 1100 .75CLERK MILLER 1300 1SALESMAN WARD 1250 .5SALESMAN MARTIN 1250 .5SALESMAN TURNER 1500 .75SALESMAN ALLEN 1600 1

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

CUME_DIST ( ) OVER (query_partition_clause

ORDER_BY_clause )

関数 4-33

Page 168: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

DENSE_RANK

DENSE_RANK

構文構文構文構文

用途用途用途用途DENSE_RANKは分析関数です。この関数は、他の行について、問合せで戻される各行のランクを計算します。この計算は、ORDER_BY_clauseにある value_exprsの値に基づいて行われます。ランク付け基準と同じ値を持つ行は、同じランクになります。ランクは 1から始まる連続した整数です。ランクの最大値は、問合せが戻す一意の数値です。ランクの値は、連続した整数です。

例例例例次の文は、RESEARCHまたは SALES部門で働くすべての従業員の部門名、従業員名および給与を選択します。その後、この 2つの部門それぞれについて、一意の各給与に対するランクを計算します。同じ給与は同じランクになります。この例と、4-74ページの「RANK」の例を比較してください。

SELECT dname, ename, sal, DENSE_RANK() OVER (PARTITION BY dname ORDER BY sal) as drank FROM emp, dept WHERE emp.deptno = dept.deptno AND dname IN ('SALES', 'RESEARCH');

DNAME ENAME SAL DRANK-------------- ---------- ---------- ----------RESEARCH SMITH 800 1RESEARCH ADAMS 1100 2RESEARCH JONES 2975 3RESEARCH FORD 3000 4RESEARCH SCOTT 3000 4SALES JAMES 950 1SALES MARTIN 1250 2SALES WARD 1250 2SALES TURNER 1500 3SALES ALLEN 1600 4SALES BLAKE 2850 5

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

DENSE_RANK ( ) OVER (query_partition_clause

ORDER_BY_clause )

4-34 Oracle8i SQLリファレンス Vol.1

Page 169: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

DEREF

DEREF

構文構文構文構文

用途用途用途用途DEREFは、引数 exprのオブジェクト参照を戻します。この場合、exprはオブジェクトにREFを戻す必要があります。問合せでこの関数を使用しない場合、次の例で示すとおり、かわりに REFのオブジェクト IDを戻します。

例例例例CREATE TYPE emp_type AS OBJECT (eno NUMBER, ename VARCHAR2(20), salary NUMBER);CREATE TABLE emp_table OF emp_type (primary key (eno, ename));CREATE TABLE dept_table (dno NUMBER, mgr REF emp_type SCOPE IS emp_table);INSERT INTO emp_table VALUES (10, 'jack', 50000);INSERT INTO dept_table SELECT 10, REF(e) FROM emp_table e;

SELECT mgr FROM dept_table;

MGR--------------------------------------------------------------------00002202085928CB5CDF7B61CAE03400400B40DCB15928C35861E761BCE03400400B40DCB1

SELECT DEREF(mgr) from dept_table;

DEREF(MGR)(ENO, ENAME, SALARY)--------------------------------------------------------EMP_TYPE(10, 'jack', 50000)

参照参照参照参照 : 4-55ページの「MAKE_REF」を参照してください。

DEREF ( expr )

関数 4-35

Page 170: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

DUMP

DUMP

構文構文構文構文

用途用途用途用途DUMPは、exprのデータ型コード、長さ(バイト単位)および内部表現を含む VARCHAR2値を戻します。戻される結果は、常にデータベース・キャラクタ・セットの文字です。各コードに対応するデータ型については、2-5ページの表 2-1を参照してください。

引数 return_fmtには戻り値の書式として、次の値のいずれかを指定します。

� 8は、結果を 8進表記で戻します。

� 10は、結果を 10進表記で戻します。

� 16は、結果を 16進表記で戻します。

� 17は、結果を単一文字として戻します。

デフォルトでは、戻り値にキャラクタ・セット情報が含まれません。exprのキャラクタ・セット名を取り出すには、前述の書式のいずれかの値に 1000を加えて指定します。たとえば、return_fmtに 1008を指定すると、8進表記で結果が戻り、さらに exprのキャラクタ・セット名が得られます。

引数 start_positionと lengthを組み合せて、戻される内部表現の部分を指定します。デフォルトでは、10進表記で全体の内部表現が戻されます。

DUMP ( expr, return_fmt

, start_position, length

)

4-36 Oracle8i SQLリファレンス Vol.1

Page 171: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

EMPTY_[B | C]LOB

exprが NULLの場合、この関数は NULLを戻します。

例例例例SELECT DUMP('abc', 1016) FROM DUAL;

DUMP('ABC',1016) ------------------------------------------ Typ=96 Len=3 CharacterSet=WE8DEC: 61,62,63

SELECT DUMP(ename, 8, 3, 2) "OCTAL" FROM emp WHERE ename = 'SCOTT';

OCTAL----------------------------Type=1 Len=5: 117,124

SELECT DUMP(ename, 10, 3, 2) "ASCII" FROM emp WHERE ename = 'SCOTT';

ASCII----------------------------Type=1 Len=5: 79,84

EMPTY_[B | C]LOB

構文構文構文構文

用途用途用途用途EMPTY_BLOBおよび EMPTY_CLOBは、LOB変数を初期化したり、INSERTまたは UPDATE文で LOB列または属性を EMPTYに初期化できる空の LOBロケータを戻します。EMPTYとは、LOBは初期化されていても、データが移入されていない状態をいいます。

EMPTY_BLOB

EMPTY_CLOB( )

関数 4-37

Page 172: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

EXP

この関数から戻されるロケータは、DBMS_LOBパッケージまたは OCIへのパラメータとして使用することはできません。

例例例例INSERT INTO lob_tab1 VALUES (EMPTY_BLOB());UPDATE lob_tab1

SET clob_col = EMPTY_BLOB();

EXP

構文構文構文構文

用途用途用途用途EXPは、eを n乗した値(e = 2.71828183 ...)を戻します。

例例例例SELECT EXP(4) "e to the 4th power" FROM DUAL;

e to the 4th power------------------ 54.59815

FIRST_VALUE

構文構文構文構文

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

EXP ( n )

FIRST_VALUE ( expr ) OVER ( analytic_clause )

4-38 Oracle8i SQLリファレンス Vol.1

Page 173: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

FIRST_VALUE

用途用途用途用途FIRST_VALUEは分析関数です。これは、順序付けられた値の集合にある最初の値を戻します。

exprには、FIRST_VALUEまたは他の分析関数を使用できません。他の組込み関数式はexprで使用できますが、分析関数はネストできません。

例例例例次の例では、部門 20の各従業員について、その部門で給与が 1番高い従業員の名前を選択します。

SELECT deptno, ename, sal, FIRST_VALUE(ename) OVER (ORDER BY sal DESC ROWS UNBOUNDED PRECEDING) AS rich_emp FROM (SELECT * FROM emp WHERE deptno = 20 ORDER BY empno);

DEPTNO ENAME SAL RICH_EMP---------- ---------- ---------- ---------- 20 SCOTT 3000 SCOTT 20 FORD 3000 SCOTT 20 JONES 2975 SCOTT 20 ADAMS 1100 SCOTT 20 SMITH 800 SCOTT

例では、FIRST_VALUE関数の非決定的な性質が示されています。Scottと Fordの給与は同じであるため、Scottの次の行に Fordがあります。Scottが最初に表示されているのは、副問合せが戻す行が empnoで順序付けられているためです。ただし、副問合せが戻す行がempnoで降順に順序付けられている場合は、次の例に示すとおり、関数は異なる値を戻します。

SELECT deptno, ename, sal, FIRST_VALUE(ename) OVER (ORDER BY sal DESC ROWS UNBOUNDED PRECEDING) AS fv FROM (SELECT * FROM emp WHERE deptno = 20 ORDER BY empno desc);

DEPTNO ENAME SAL FV---------- ---------- ---------- ---------- 20 FORD 3000 FORD 20 SCOTT 3000 FORD 20 JONES 2975 FORD 20 ADAMS 1100 FORD 20 SMITH 800 FORD

参照参照参照参照 : exprの書式の詳細は、5-2ページの「式」を参照してください。

関数 4-39

Page 174: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

FLOOR

次に、一意キーで順序付けることによって、FIRST_VALUE関数を決定的にする方法を示します。

SELECT deptno, ename, sal, hiredate, FIRST_VALUE(ename) OVER (ORDER BY sal DESC, hiredate ROWS UNBOUNDED PRECEDING) AS fv FROM (SELECT * FROM emp WHERE deptno = 20 ORDER BY empno desc);

DEPTNO ENAME SAL HIREDATE FV ---------- ---------- ---------- --------- ---------- 20 FORD 3000 03-DEC-81 FORD 20 SCOTT 3000 19-APR-87 FORD 20 JONES 2975 02-APR-81 FORD 20 ADAMS 1100 23-MAY-87 FORD 20 SMITH 800 17-DEC-80 FORD

FLOOR

構文構文構文構文

用途用途用途用途FLOORは n以下の最大整数を戻します。

例例例例SELECT FLOOR(15.7) "Floor" FROM DUAL;

Floor---------- 15

FLOOR ( n )

4-40 Oracle8i SQLリファレンス Vol.1

Page 175: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

GROUPING

GREATEST

構文構文構文構文

用途用途用途用途GREATESTは、exprリストの最大値を戻します。比較の前に、2番目以降のすべての exprは最初の exprのデータ型に暗黙的に変換されます。Oracleは、非空白埋め比較方法でexprを比較します。文字の比較は、データベース・キャラクタ・セットの文字値に基づいて行われます。キャラクタ・セット値の大きい文字が、別の文字より大きい文字と見なされます。この関数によって戻される値が文字データの場合、そのデータ型は常に VARCHAR2になります。

例例例例SELECT GREATEST ('HARRY', 'HARRIOT', 'HAROLD') "Greatest" FROM DUAL; Greatest--------HARRY

GROUPING

構文構文構文構文

用途用途用途用途GROUPING関数は、ROLLUPや CUBEなど、GROUP BYの拡張機能を含む SELECT文にのみ適用できます。このような操作で、一連のすべての値を表す NULL値を含む超集合行を生成します。GROUPING関数を使用して、超集合行にある一連のすべての値を表す NULL値と実際の NULL値を区別できます。

参照参照参照参照 : 2-25ページの「データ型の比較規則」を参照してください。

GREATEST ( expr

,

)

GROUPING ( expr )

関数 4-41

Page 176: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

GROUPING

GROUPING関数の exprは、GROUP BY句の式のいずれかと一致する必要があります。行のexprの値が一連のすべての値を表す NULLの場合、関数は 1の値を戻します。それ以外の場合は、0(ゼロ)を戻します。GROUPING関数によって戻された値のデータ型は、Oracle NUMBERです。

例例例例次の例では、GROUPING関数が 1(表のデータ行ではなく超集合行)を戻す場合、それ以外の場合で表示される NULLのかわりに、文字列「All Jobs」が表示されます。

SELECT DECODE(GROUPING(dname), 1, 'All Departments', dname) AS dname, DECODE(GROUPING(job), 1, 'All Jobs', job) AS job, COUNT(*) "Total Empl", AVG(sal) * 12 "Average Sal" FROM emp, dept WHERE dept.deptno = emp.deptno GROUP BY ROLLUP (dname, job);

DNAME JOB Total Empl Average Sa --------------- --------- ---------- ---------- ACCOUNTING CLERK 1 15600 ACCOUNTING MANAGER 1 29400 ACCOUNTING PRESIDENT 1 60000 ACCOUNTING All Jobs 3 35000 RESEARCH ANALYST 2 36000 RESEARCH CLERK 2 11400 RESEARCH MANAGER 1 35700 RESEARCH All Jobs 5 26100 SALES CLERK 1 11400 SALES MANAGER 1 34200 SALES SALESMAN 4 16800 SALES All Jobs 6 18800 All Departments All Jobs 14 24878.5714

参照参照参照参照 : これらの用語の詳細は、11-99ページの「SELECT文」のgroup_by_clauseを参照してください。

4-42 Oracle8i SQLリファレンス Vol.1

Page 177: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

INITCAP

HEXTORAW

構文構文構文構文

用途用途用途用途HEXTORAWは、16進数を含む charを RAW値に変換します。

例例例例INSERT INTO graphics (raw_column) SELECT HEXTORAW('7D') FROM DUAL;

INITCAP

構文構文構文構文

用途用途用途用途INITCAPは、各単語の最初の文字を大文字、残りの文字を小文字にして charを戻します。単語は空白または英数字以外の文字で区切ります。

例例例例SELECT INITCAP('the soap') "Capitals" FROM DUAL;

Capitals---------The Soap

参照参照参照参照 : 2-15ページの「RAWデータ型と LONG RAWデータ型」および4-76ページの「RAWTOHEX」を参照してください。

HEXTORAW ( char )

INITCAP ( char )

関数 4-43

Page 178: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

INSTR

INSTR

構文構文構文構文

用途用途用途用途INSTRは、substringの stringを検索します。

� positionは、Oracleが検索を開始する文字 stringの位置を示す整数です。positionが負の場合、Oracleは stringの終わりから逆方向にカウントおよび検索します。

� occurrenceは、検索する stringが現れたことを示す整数です。occurrenceの値は正である必要があります。

この関数は、最初に現れた文字 stringの位置を示す整数を戻します。positionおよびoccurrenceのデフォルト値は 1です。この場合、Oracleは stringの最初の文字から検索を開始します。検索対象は substringが最初に現れる位置です。戻り値は、positionの値にかかわらず、stringの先頭に関係し、文字で表されます。検索が失敗した(stringの position番目の文字の後に substringが occurrence回現れない)場合、戻り値は 0となります。

例例例例SELECT INSTR('CORPORATE FLOOR','OR', 3, 2) "Instring" FROM DUAL; Instring---------- 14

SELECT INSTR('CORPORATE FLOOR','OR', -3, 2)"Reversed Instring" FROM DUAL; Reversed Instring----------------- 2

INSTR ( string , substring, position

, occurrence

)

4-44 Oracle8i SQLリファレンス Vol.1

Page 179: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

LAG

INSTRB

構文構文構文構文

用途用途用途用途INSTRBは、positionおよび戻り値が文字ではなくバイトで表されること以外は INSTRと同じです。データベース・キャラクタ・セットがシングルバイトの場合、INSTRBはINSTRと同じです。

例例例例この例では、データベース・キャラクタ・セットがダブルバイトの場合を想定しています。

SELECT INSTRB('CORPORATE FLOOR','OR',5,2)"Instring in bytes"FROM DUAL;

Instring in bytes----------------- 27

LAG

構文構文構文構文

参照参照参照参照 : 4-44ページの「INSTR」を参照してください。

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

INSTRB ( string , substring, position

, occurrence

)

LAG ( value_expr, offset , default

) OVER ( analytic_clause )

関数 4-45

Page 180: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

LAST_DAY

用途用途用途用途LAGは分析関数です。これは、内部結合せずに、表の 1つ以上の行へ同時アクセスを行います。問合せから戻される一連の行およびカーソル位置を指定すると、LAGは、その位置より前にある指定された物理オフセットにある行へアクセスします。

offsetを指定しない場合、デフォルト値は 1です。オフセットがウィンドウの有効範囲を超えた場合、オプションの default値が戻されます。defaultを指定しない場合、デフォルト値は NULLです。

value_exprには、LAGまたは他の分析関数を使用できません。他の組込み関数式は exprで使用できますが、分析関数はネストできません。

例例例例次の例では、emp表の各販売員について、その従業員の直前に雇用された従業員の給与を示します。

SELECT ename, hiredate, sal, LAG(sal, 1, 0) OVER (ORDER BY hiredate) as prev_sal FROM emp WHERE job = 'SALESMAN';

ENAME HIREDATE SAL PREV_SAL---------- --------- ---------- ----------ALLEN 20-FEB-81 1600 0WARD 22-FEB-81 1250 1600TURNER 08-SEP-81 1500 1250MARTIN 28-SEP-81 1250 1500

LAST_DAY

構文構文構文構文

用途用途用途用途LAST_DAYは、dを含む月の最後の日付を戻します。この関数を使用すると、その月の残りの日数を求めることができます。

参照参照参照参照 : exprの書式の詳細は、5-2ページの「式」を参照してください。

LAST_DAY ( d )

4-46 Oracle8i SQLリファレンス Vol.1

Page 181: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

LAST_VALUE

例例例例SELECT SYSDATE, LAST_DAY(SYSDATE) "Last", LAST_DAY(SYSDATE) - SYSDATE "Days Left" FROM DUAL; SYSDATE Last Days Left--------- --------- ----------23-OCT-97 31-OCT-97 8

次の例では、各従業員の雇用開始日に 5ヶ月を加えて、評価結果を戻します。

SELECT ename, hiredate, TO_CHAR(ADD_MONTHS(LAST_DAY(hiredate), 5)) "Eval Date"FROM emp;

ENAME HIREDATE Eval Date---------- --------- ---------SMITH 17-DEC-80 31-MAY-81ALLEN 20-FEB-81 31-JUL-81WARD 22-FEB-81 31-JUL-81JONES 02-APR-81 30-SEP-81MARTIN 28-SEP-81 28-FEB-82BLAKE 01-MAY-81 31-OCT-81CLARK 09-JUN-81 30-NOV-81SCOTT 19-APR-87 30-SEP-87KING 17-NOV-81 30-APR-82TURNER 08-SEP-81 28-FEB-82ADAMS 23-MAY-87 31-OCT-87JAMES 03-DEC-81 31-MAY-82FORD 03-DEC-81 31-MAY-82MILLER 23-JAN-82 30-JUN-82

LAST_VALUE

構文構文構文構文

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

LAST_VALUE ( expr ) OVER ( analytic_clause )

関数 4-47

Page 182: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

LAST_VALUE

用途用途用途用途LAST_VALUEは分析関数です。これは、順序付けられた値の集合にある最後の値を戻します。

exprには、LAST_VALUEまたは他の分析関数を使用できません。他の組込み関数式はexprで使用できますが、分析関数はネストできません。

例例例例次の例では、給与が 1番高い従業員の雇用開始日を戻します。

SELECT ename, sal, hiredate, LAST_VALUE(hiredate) OVER (ORDER BY sal ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS lvFROM (SELECT * FROM emp WHERE deptno=20 ORDER BY hiredate);

ENAME SAL HIREDATE LV---------- ---------- --------- ---------SMITH 800 17-DEC-80 19-APR-87ADAMS 1100 23-MAY-87 19-APR-87JONES 2975 02-APR-81 19-APR-87FORD 3000 03-DEC-81 19-APR-87SCOTT 3000 19-APR-87 19-APR-87

この例では、LAST_VALUE関数の非決定的でない性質を示しています。Scottと Fordの給与は同じであるため、Fordの次の行に Scottがあります。Fordが最初に表示されているのは、副問合せの行が hiredateで順序付けられているためです。ただし、行が雇用開始日で降順に順序付けられている場合は、次の例に示すとおり、関数は異なる値を戻します。

SELECT ename, sal, hiredate, LAST_VALUE(hiredate) OVER (ORDER BY sal ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS lvFROM (SELECT * FROM emp WHERE deptno=20 ORDER BY hiredate DESC);

ENAME SAL HIREDATE LV---------- ---------- --------- ---------SMITH 800 17-DEC-80 03-DEC-81ADAMS 1100 23-MAY-87 03-DEC-81JONES 2975 02-APR-81 03-DEC-81SCOTT 3000 19-APR-87 03-DEC-81FORD 3000 03-DEC-81 03-DEC-81

参照参照参照参照 : exprの書式の詳細は、5-2ページの「式」を参照してください。

4-48 Oracle8i SQLリファレンス Vol.1

Page 183: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

LEAD

次の 2つの例では、一意キーで順序付けることによって、LAST_VALUE関数を決定的にする方法を示しています。給与および雇用開始日で関数内を順序付けると、副問合せの順序付けにかかわらず、同じ結果が戻されます。

SELECT ename, sal, hiredate, LAST_VALUE(hiredate) OVER (ORDER BY sal, hiredate ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS lvFROM (SELECT * FROM emp WHERE deptno=20 ORDER BY hiredate);

ENAME SAL HIREDATE LV---------- ---------- --------- ---------SMITH 800 17-DEC-80 19-APR-87ADAMS 1100 23-MAY-87 19-APR-87JONES 2975 02-APR-81 19-APR-87FORD 3000 03-DEC-81 19-APR-87SCOTT 3000 19-APR-87 19-APR-87

SELECT ename, sal, hiredate, LAST_VALUE(hiredate) OVER (ORDER BY sal, hiredate ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS lvFROM (SELECT * FROM emp WHERE deptno=20 ORDER BY hiredate DESC);

ENAME SAL HIREDATE LV---------- ---------- --------- ---------SMITH 800 17-DEC-80 19-APR-87ADAMS 1100 23-MAY-87 19-APR-87JONES 2975 02-APR-81 19-APR-87FORD 3000 03-DEC-81 19-APR-87SCOTT 3000 19-APR-87 19-APR-87

LEAD

構文構文構文構文

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

LEAD ( value_expr, offset , default

) OVER ( analytic_clause )

関数 4-49

Page 184: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

LEAD

用途用途用途用途LEADは分析関数です。これは、内部結合せずに、表の 1つ以上の行へ同時アクセスを行います。問合せから戻される一連の行およびカーソル位置を指定すると、LEADは、その位置より後にある指定された物理オフセットの行へアクセスします。

offsetを指定しない場合、デフォルト値は 1です。オフセットが表の有効範囲を超えた場合、オプションの default値が戻されます。defaultを指定しない場合、デフォルト値はNULLです。

value_exprには、LEADまたは他の分析関数を使用できません。他の組込み関数式はvalue_exprで使用できますが、分析関数はネストできません。

例例例例次の例では、emp表の各従業員について、その従業員の直後に雇用された従業員の雇用開始日を戻します。

SELECT ename, hiredate, LEAD(hiredate, 1) OVER (ORDER BY hiredate) AS "NextHired" FROM emp;

ENAME HIREDATE NextHired---------- --------- ---------SMITH 17-DEC-80 20-FEB-81ALLEN 20-FEB-81 22-FEB-81WARD 22-FEB-81 02-APR-81JONES 02-APR-81 01-MAY-81BLAKE 01-MAY-81 09-JUN-81CLARK 09-JUN-81 08-SEP-81TURNER 08-SEP-81 28-SEP-81MARTIN 28-SEP-81 17-NOV-81KING 17-NOV-81 03-DEC-81JAMES 03-DEC-81 03-DEC-81FORD 03-DEC-81 23-JAN-82MILLER 23-JAN-82 19-APR-87SCOTT 19-APR-87 23-MAY-87ADAMS 23-MAY-87

参照参照参照参照 : exprの書式の詳細は、5-2ページの「式」を参照してください。

4-50 Oracle8i SQLリファレンス Vol.1

Page 185: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

LENGTH

LEAST

構文構文構文構文

用途用途用途用途LEASTは、リストされた expr内の最小値を戻します。比較の前に、2番目以降のすべてのexprは最初の exprのデータ型に暗黙的に変換されます。Oracleは、非空白埋め比較方法で exprを比較します。この関数によって戻される値が文字データの場合、そのデータ型は常に VARCHAR2になります。

例例例例SELECT LEAST('HARRY','HARRIOT','HAROLD') "LEAST" FROM DUAL; LEAST ------HAROLD

LENGTH

構文構文構文構文

用途用途用途用途LENGTHは、charの長さを文字単位で戻します。charのデータ型が CHARの場合、その長さにはすべての後続空白が含まれます。charがNULLの場合、この関数は NULLを戻します。

例例例例SELECT LENGTH('CANDIDE') "Length in characters"FROM DUAL; Length in characters-------------------- 7

LEAST ( expr

,

)

LENGTH ( char )

関数 4-51

Page 186: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

LENGTHB

LENGTHB

構文構文構文構文

用途用途用途用途LENGTHBは、charの長さをバイト単位で戻します。charが NULLの場合、この関数はNULLを戻します。データベース・キャラクタ・セットがシングルバイトの場合、LENGTHBは LENGTHと同じです。

例例例例この例では、データベース・キャラクタ・セットがダブルバイトの場合を想定しています。

SELECT LENGTHB ('CANDIDE') "Length in bytes" FROM DUAL; Length in bytes--------------- 14

LN

構文構文構文構文

用途用途用途用途LNは、nの自然対数を戻します(nは正の数)。

例例例例SELECT LN(95) "Natural log of 95" FROM DUAL;

Natural log of 95----------------- 4.55387689

LENGTHB ( char )

LN ( n )

4-52 Oracle8i SQLリファレンス Vol.1

Page 187: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

LOWER

LOG

構文構文構文構文

用途用途用途用途LOGは、mを底とする nの対数を戻します。底 mは 0および 1以外の任意の正の数、nは任意の正の数です。

例例例例SELECT LOG(10,100) "Log base 10 of 100" FROM DUAL;

Log base 10 of 100------------------ 2

LOWER

構文構文構文構文

用途用途用途用途LOWERは、すべての文字を小文字にして charを戻します。戻り値は、引数 charと同じデータ型(CHARまたは VARCHAR2)になります。

例例例例SELECT LOWER('MR. SCOTT MCMILLAN') "Lowercase" FROM DUAL;

Lowercase--------------------mr. scott mcmillan

LOG ( m , n )

LOWER ( char )

関数 4-53

Page 188: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

LPAD

LPAD

構文構文構文構文

用途用途用途用途LPADは、char1の左に char2に指定した文字を連続的に埋め込んで n桁にして戻します。char2のデフォルト値は空白 1個です。char1が nより長い場合、この関数は nに収まるchar1の一部を戻します。

引数 nは、端末画面に表示される場合の戻り値の全体の長さです。多くのキャラクタ・セットでは、これは戻り値の文字数でもあります。ただし、マルチバイトのキャラクタ・セットでは、表示される文字列の長さが文字列の文字数と異なる場合もあります。

例例例例SELECT LPAD('Page 1',15,'*.') "LPAD example" FROM DUAL;

LPAD example---------------*.*.*.*.*Page 1

LTRIM

構文構文構文構文

用途用途用途用途LTRIMは、charの左側にあって setに指定された文字を削除します。setのデフォルト値は空白 1個です。charが文字リテラルの場合、引用符で囲む必要があります。Oracleはcharの先頭文字からスキャンし始め、setに指定された文字をすべて削除します。setに指定された文字以外の文字が見つかった時点で結果を戻します。

LPAD ( char1 , n, char2

)

LTRIM ( char, set

)

4-54 Oracle8i SQLリファレンス Vol.1

Page 189: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

MAKE_REF

例例例例SELECT LTRIM('xyxXxyLAST WORD','xy') "LTRIM example" FROM DUAL;

LTRIM example------------XxyLAST WORD

MAKE_REF

構文構文構文構文

用途用途用途用途MAKE_REFは、オブジェクト識別子が主キーに基づいている、オブジェクト・ビューの行またはオブジェクト表の行に対する REFを作成します。

例例例例CREATE TABLE employee (eno NUMBER, ename VARCHAR2(20), salary NUMBER, PRIMARY KEY (eno, ename));CREATE TYPE emp_type AS OBJECT (eno NUMBER, ename CHAR(20), salary NUMBER);CREATE VIEW emp_view OF emp_type WITH OBJECT IDENTIFIER (eno, ename) AS SELECT * FROM emp;SELECT MAKE_REF(emp_view, 1, 'jack') FROM DUAL;

MAKE_REF(EMP_VIEW,1,'JACK')------------------------------------------------------000067030A0063420D06E06F3C00C1E03400400B40DCB10000001C260100010002002900000000000F0600810100140100002A0007000A8401FE0000001F02C102146A61636B202020202020202020202020202020200000000000000000000000000000000000000000

参照参照参照参照 :

� オブジェクト・ビューの詳細は、『Oracle8iアプリケーション開発者ガイド 基礎編』を参照してください。

� 4-35ページの「DEREF」を参照してください。

MAKE_REF (table

view, key

,

)

関数 4-55

Page 190: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

MAX

MAX

構文構文構文構文

用途用途用途用途MAXは exprの最大値を戻します。これは、集計関数または分析関数として使用できます。

DISTINCTを指定する場合は、analytic_clauseの query_partition_clauseのみ指定できます。ORDER_BY_clauseおよび windowing_clauseは指定できません。

集計の例集計の例集計の例集計の例SELECT MAX(sal) "Maximum" FROM emp; Maximum---------- 5000

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

参照参照参照参照 :

� 4-6ページの「集計関数」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

MAX (

DISTINCT

ALLexpr )

OVER ( analytic_clause )

4-56 Oracle8i SQLリファレンス Vol.1

Page 191: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

MAX

分析の例分析の例分析の例分析の例次の例では、各従業員について、その従業員と所属が同じ従業員のうち、1番高い給与を計算します。

SELECT mgr, ename, sal, MAX(sal) OVER (PARTITION BY mgr) AS mgr_max FROM emp;

MGR ENAME SAL MGR_MAX---------- ---------- ---------- ---------- 7566 SCOTT 3000 3000 7566 FORD 3000 3000 7698 ALLEN 1600 1600 7698 WARD 1250 1600 7698 JAMES 950 1600 7698 TURNER 1500 1600 7698 MARTIN 1250 1600 7782 MILLER 1300 1300 7788 ADAMS 1100 1100 7839 JONES 2975 2975 7839 CLARK 2450 2975 7839 BLAKE 2850 2975 7902 SMITH 800 800 KING 5000 5000

この問合せを述語のある親問合せで囲むと、各部門で給与の 1番高い従業員がわかります。

SELECT mgr, ename, sal FROM (SELECT mgr, ename, sal, MAX(sal) OVER (PARTITION BY mgr) AS rmax_sal FROM emp) WHERE sal = rmax_sal;

MGR ENAME SAL---------- ---------- ---------- 7566 SCOTT 3000 7566 FORD 3000 7698 ALLEN 1600 7782 MILLER 1300 7788 ADAMS 1100 7839 JONES 2975 7902 SMITH 800 KING 5000

関数 4-57

Page 192: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

MIN

MIN

構文構文構文構文

用途用途用途用途MINは、exprの最小値を戻します。これは、集計関数または分析関数として使用できます。

DISTINCTを指定する場合は、analytic_clauseの query_partition_clauseのみ指定できます。ORDER_BY_clauseおよび windowing_clauseは指定できません。

集計の例集計の例集計の例集計の例SELECT MIN(hiredate) "Earliest" FROM emp; Earliest---------17-DEC-80

分析の例分析の例分析の例分析の例次の例では、各従業員について、その従業員が雇用された日以前に雇用された従業員を検索します。その従業員と所属が同じ従業員のサブセットを決定し、そのサブセット内で 1番低い給与を戻します。

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

参照参照参照参照 :

� 4-6ページの「集計関数」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

MIN (

DISTINCT

ALLexpr )

OVER ( analytic_clause )

4-58 Oracle8i SQLリファレンス Vol.1

Page 193: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

MOD

SELECT mgr, ename, hiredate, sal, MIN(sal) OVER(PARTITION BY mgr ORDER BY hiredate RANGE UNBOUNDED PRECEDING) as p_cmin FROM emp;

MGR ENAME HIREDATE SAL P_CMIN---------- ---------- --------- ---------- ---------- 7566 FORD 03-DEC-81 3000 3000 7566 SCOTT 19-APR-87 3000 3000 7698 ALLEN 20-FEB-81 1600 1600 7698 WARD 22-FEB-81 1250 1250 7698 TURNER 08-SEP-81 1500 1250 7698 MARTIN 28-SEP-81 1250 1250 7698 JAMES 03-DEC-81 950 950 7782 MILLER 23-JAN-82 1300 1300 7788 ADAMS 23-MAY-87 1100 1100 7839 JONES 02-APR-81 2975 2975 7839 BLAKE 01-MAY-81 2850 2850 7839 CLARK 09-JUN-81 2450 2450 7902 SMITH 17-DEC-80 800 800 KING 17-NOV-81 5000 5000

MOD

構文構文構文構文

用途用途用途用途MODは、mを nで割ったときの余りを戻します。nが 0の場合は、mを戻します。

例例例例SELECT MOD(11,4) "Modulus" FROM DUAL;

Modulus---------- 3

この関数は、mが負の場合には古典数学のモジュール関数とは異なる動作をします。古典数学のモジュール関数は、次の公式を用いた MOD関数で表すことができます。

m - n * FLOOR(m/n)

MOD ( m , n )

関数 4-59

Page 194: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

MONTHS_BETWEEN

次の文は、MOD関数と古典数学のモジュール関数の相違を示します。

SELECT m, n, MOD(m, n),m - n * FLOOR(m/n) "Classical Modulus" FROM test_mod_table;

M N MOD(M,N) Classical Modulus---------- ---------- ---------- ----------------- 11 4 3 3 11 -4 3 -1 -11 4 -3 1 -11 -4 -3 -3

MONTHS_BETWEEN

構文構文構文構文

用途用途用途用途MONTHS_BETWEENは、日付 d1と d2の間の月数を戻します。d1が d2以降の日付の場合、結果は正の値になります。d1が d2以前の日付の場合、結果は負の値になります。d1および d2が、月の同じ日または月の最終日の場合、結果は常に整数になります。それ以外の場合、Oracleは結果の小数部を 1か月 31日として計算します。d1および d2の時間要素の相違も考慮されます。

例例例例SELECT MONTHS_BETWEEN (TO_DATE('02-02-1995','MM-DD-YYYY'), TO_DATE('01-01-1995','MM-DD-YYYY') ) "Months" FROM DUAL; Months----------1.03225806

参照参照参照参照 : 4-40ページの「FLOOR」を参照してください。

MONTHS_BETWEEN ( d1 , d2 )

4-60 Oracle8i SQLリファレンス Vol.1

Page 195: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NEW_TIME

NEW_TIME

構文構文構文構文

用途用途用途用途NEW_TIMEは、時間帯 z1の日時が dの時点の時間帯 z2の日時を戻します。この関数を使用する前に、24時間で表示されるように、NLS_DATE_FORMATパラメータを設定する必要があります。

引数 z1および z2には次のテキスト列のいずれかを指定できます。

� AST、ADT: 大西洋地区の標準時および夏時間

� BST、BDT: ベーリング地区の標準時および夏時間

� CST、CDT: 中央地区の標準時および夏時間

� EST、EDT: 東地区の標準時および夏時間

� GMT: グリニッジ標準時間

� HST、HDT: アラスカ -ハワイ地区の標準時および夏時間

� MST、MDT: 山岳地区の標準時および夏時間

� NST: ニューファンドランド地区の標準時

� PST、PDT: 太平洋地区の標準時および夏時間

� YST、YDT: ユーコン地区の標準時および夏時間

例例例例次の例では、指定された太平洋地区の標準時間と同等の大西洋地区の標準時間を戻します。

ALTER SESSION SET NLS_DATE_FORMAT ='DD-MON-YYYY HH24:MI:SS';

SELECT NEW_TIME(TO_DATE('11-10-99 01:23:45', 'MM-DD-YY HH24:MI:SS'),'AST', 'PST') "New Date and Time" FROM DUAL;

New Date and Time--------------------09-NOV-1999 21:23:45

NEW_TIME ( d , z1 , z2 )

関数 4-61

Page 196: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NEXT_DAY

NEXT_DAY

構文構文構文構文

用途用途用途用途NEXT_DAYは、charで指定した曜日で、日付 d以降の最初の日付を戻します。引数 charは、セッションの日付言語での曜日である必要があります(フルネームでも省略形でも可)。必要最小限の文字数は、省略形の文字数です。有効な省略形の後に続けて文字が入力されていても、それらの文字は無視されます。戻り値は、引数 dと同じ時間、分、秒のコンポーネントを持っています。

例例例例次の例では、1998年 3月 15日以降の最初の火曜日の日付を戻します。

SELECT NEXT_DAY('15-MAR-98','TUESDAY') "NEXT DAY" FROM DUAL; NEXT DAY---------16-MAR-98

NLS_CHARSET_DECL_LEN

構文構文構文構文

用途用途用途用途NLS_CHARSET_DECL_LENは、NCHAR列の宣言の幅を(文字数で)戻します。bytecnt引数は、列の幅です。csid引数は、列のキャラクタ・セット IDです。

NEXT_DAY ( d , char )

NLS_CHARSET_DECL_LEN ( bytecnt , csid )

4-62 Oracle8i SQLリファレンス Vol.1

Page 197: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NLS_CHARSET_ID

例例例例SELECT NLS_CHARSET_DECL_LEN (200, nls_charset_id('ja16eucfixed')) FROM DUAL;

NLS_CHARSET_DECL_LEN(200,NLS_CHARSET_ID('JA16EUCFIXED')) -------------------------------------------------------- 100

NLS_CHARSET_ID

構文構文構文構文

用途用途用途用途NLS_CHARSET_IDは、NLSキャラクタ・セット名 textに対応する NLSキャラクタ・セットの ID番号を戻します。引数 textは、実行時の VARCHAR2値です。text値 'CHAR_CS'は、サーバーのデータベース・キャラクタ・セットの ID番号を戻します。text値'NCHAR_CS'は、サーバーの各国語キャラクタ・セットの ID番号を戻します。

無効なキャラクタ・セット名を指定すると、NULLが戻されます。

例例例例SELECT NLS_CHARSET_ID('ja16euc') FROM DUAL; NLS_CHARSET_ID('JA16EUC')------------------------- 830

参照参照参照参照 : キャラクタ・セット名のリストについては、『Oracle8i NLSガイド』を参照してください。

NLS_CHARSET_ID ( text )

関数 4-63

Page 198: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NLS_CHARSET_NAME

NLS_CHARSET_NAME

構文構文構文構文

用途用途用途用途NLS_CHARSET_NAMEは、ID番号 nに対応する NLSキャラクタ・セット名を戻します。キャラクタ・セット名は、データベース・キャラクタ・セットの VARCHAR2値として戻されます。

nが有効なキャラクタ・セット IDとして認識されない場合は、この関数は NULLを戻します。

例例例例SELECT NLS_CHARSET_NAME(2) FROM DUAL;

NLS_CH ------ WE8DEC

NLS_INITCAP

構文構文構文構文

用途用途用途用途NLS_INITCAPは、各単語の最初の文字を大文字、残りの文字を小文字にして charを戻します。単語は空白または英数字以外の文字で区切ります。'nlsparam'の値は次の書式で指定します。

'NLS_SORT = sort'

参照参照参照参照 : キャラクタ・セット IDのリストについては、『Oracle8i NLSガイド』を参照してください。

NLS_CHARSET_NAME ( n )

NLS_INITCAP ( char, ’ nlsparam ’

)

4-64 Oracle8i SQLリファレンス Vol.1

Page 199: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NLS_LOWER

sortは、言語ソート基準または BINARYのいずれかです。言語ソート基準は、大文字と小文字の変換のために特別な言語要件を処理します。これらの要件によって、charと異なる長さの値が戻される場合があります。'nlsparam'を省略すると、この関数はセッションに対してデフォルトのソート基準を使用します。

例例例例次に、関数によって言語ソート基準がどのように異なる値を戻すかを示します。

SELECT NLS_INITCAP('ijsland') "InitCap" FROM DUAL;

InitCap-------Ijsland

SELECT NLS_INITCAP ('ijsland', 'NLS_SORT = XDutch') "InitCap" FROM DUAL;

InitCap-------IJsland

NLS_LOWER

構文構文構文構文

用途用途用途用途NLS_LOWERは、すべての文字を小文字にして charを戻します。'NLS_param'の書式および用途は、NLS_INITCAP関数と同じです。

参照参照参照参照 : ソート基準の詳細は、『Oracle8i NLSガイド』を参照してください。

NLS_LOWER ( char, ’ nlsparam ’

)

関数 4-65

Page 200: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NLSSORT

例例例例SELECT NLS_LOWER ('CITTA''', 'NLS_SORT = XGerman') "Lowercase" FROM DUAL;

Lower-----cittá

NLSSORT

構文構文構文構文

用途用途用途用途NLSSORTは、charのソートに使用される文字列のバイトを戻します。'nlsparam'の値は次の書式で指定します。

'NLS_SORT = sort'

sortは、言語ソート基準または BINARYのいずれかです。'nlsparam'を省略すると、この関数は、セッションに対してデフォルトのソート基準を使用します。BINARYを指定すると、この関数は charを戻します。

例例例例この関数を使用すると、文字列の 2進値を基にした比較ではなく、言語ソート基準を基にした比較を指定できます。

SELECT ename FROM emp WHERE NLSSORT (ename, 'NLS_SORT = German') > NLSSORT (’S’, ’NLS_SORT = German’) ORDER BY ename; ENAME----------SCOTTSMITHTURNERWARD

参照参照参照参照 : ソート基準の詳細は、『Oracle8i NLSガイド』を参照してください。

NLSSORT ( char, ’ nlsparam ’

)

4-66 Oracle8i SQLリファレンス Vol.1

Page 201: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NTILE

NLS_UPPER

構文構文構文構文

用途用途用途用途NLS_UPPERは、すべての文字を大文字にして charを戻します。'NLS_param'の書式および用途は、NLS_INITCAP関数と同じです。

例例例例SELECT NLS_UPPER ('große', 'NLS_SORT = XGerman') "Uppercase" FROM DUAL;

Upper-----GROSS

NTILE

構文構文構文構文

用途用途用途用途NTILEは分析関数です。これは、順序付けられたデータセットを exprに指定した数のバケットに分割し、適切なバケット番号を各行に割り当てます。バケットには 1~ exprの番号が付けられます。ここで、exprには、パーティションごとに、正の定数を指定する必要があります。

参照参照参照参照 : 4-64ページの「NLS_INITCAP」を参照してください。

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

NLS_UPPER ( char, ’ NLS_param = param_value ’

)

NTILE ( expr ) OVER (query_partition_clause

ORDER_BY_clause )

関数 4-67

Page 202: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NTILE

バケット内の行数は、最大で 1異なります。残りの値(バケットで割った行数の余り)は、バケット 1から順に、1行ずつ分割されます。

exprが行数より大きい場合、行数と等しい数のバケットに行が入れられ、余りのバケットは空になります。

exprには、NTILEまたは他の分析関数を使用できません。他の組込み関数式は exprで使用できますが、分析関数はネストできません。

例例例例次の例では、SAL列の値を 4つのバケットに分割します。SAL列には値が 14あり、2つの余分な値(14を 4で割った余り)は、バケット 1および 2に割り当てられます。そのため、これらの 2つは、バケット 3または 4より値が 1つ多くなります。

SELECT ename, sal, NTILE(4) OVER (ORDER BY sal DESC) AS quartile FROM emp;

ENAME SAL QUARTILE---------- ---------- ----------KING 5000 1SCOTT 3000 1FORD 3000 1JONES 2975 1BLAKE 2850 2CLARK 2450 2ALLEN 1600 2TURNER 1500 2MILLER 1300 3WARD 1250 3MARTIN 1250 3ADAMS 1100 4JAMES 950 4SMITH 800 4

参照参照参照参照 : exprの書式の詳細は、5-2ページの「式」を参照してください。

4-68 Oracle8i SQLリファレンス Vol.1

Page 203: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NUMTODSINTERVAL

NUMTODSINTERVAL

構文構文構文構文

用途用途用途用途NUMTODSINTERVALは、nを INTERVAL DAY TO SECONDリテラルに変換します。nは、数値、または結果が数値になる式になります。char_exprの値は nの単位を指定し、結果が次の文字列値のいずれかになる必要があります。

� 'DAY'

� 'HOUR'

� 'MINUTE'

� 'SECOND'

char_exprは、大文字と小文字を区別しません。カッコ内の先行値および後続値は無視されます。デフォルトでは、戻り値の精度は 9です。

例例例例次の例では、各従業員について、その従業員の雇用日から数えて 100日以内に雇用された従業員数を所属別に計算します。

SELECT mgr, ename, hiredate, COUNT(*) OVER (PARTITION BY mgr ORDER BY hiredate RANGE NUMTODSINTERVAL(100, 'day') PRECEDING) AS t_count FROM emp;

MGR ENAME HIREDATE T_COUNT---------- ---------- --------- ---------- 7566 FORD 03-DEC-81 1 7566 SCOTT 19-APR-87 1 7698 ALLEN 20-FEB-81 1 7698 WARD 22-FEB-81 2

注意注意注意注意 : この関数は、分析関数のみに使用できます。この関数には引数として数値のみを指定し、インターバル・リテラルを戻します。詳細は、4-8ページの「分析関数」および 2-34ページの「Interval(インターバル)」を参照してください。

NUMTODSINTERVAL ( n , ’ char_expr ’ )

関数 4-69

Page 204: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NUMTOYMINTERVAL

7698 TURNER 08-SEP-81 1 7698 MARTIN 28-SEP-81 2 7698 JAMES 03-DEC-81 3 7782 MILLER 23-JAN-82 1 7788 ADAMS 23-MAY-87 1 7839 JONES 02-APR-81 1 7839 BLAKE 01-MAY-81 2 7839 CLARK 09-JUN-81 3 7902 SMITH 17-DEC-80 1 KING 17-NOV-81 1

NUMTOYMINTERVAL

構文構文構文構文

用途用途用途用途NUMTOYMINTERVALは、数値 nを INTERVAL YEAR TO MONTHリテラルに変換します。nは、数値、または結果が数値になる式になります。char_exprの値は nの単位を指定し、結果が次の文字列値のいずれかになる必要があります。

� 'YEAR'

� 'MONTH'

char_exprは、大文字と小文字を区別しません。カッコ内の先行値および後続値は無視されます。デフォルトでは、戻り値の精度は 9です。

例例例例次の例では、各従業員について、その従業員の雇用日から 1年の間に雇用された従業員の給与の合計を計算します。

SELECT ename, hiredate, sal, SUM(sal) OVER (ORDER BY hiredate RANGE NUMTOYMINTERVAL(1,'year') PRECEDING) AS t_sal FROM emp;

注意注意注意注意 : この関数は、分析関数のみに使用できます。この関数には引数として数値のみを指定し、インターバル・リテラルを戻します。詳細は、4-8ページの「分析関数」および 2-34ページの「Interval(インターバル)」を参照してください。

NUMTOYMINTERVAL ( n , ’ char_expr ’ )

4-70 Oracle8i SQLリファレンス Vol.1

Page 205: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NVL

ENAME HIREDATE SAL T_SAL---------- --------- ---------- ----------SMITH 17-DEC-80 800 800ALLEN 20-FEB-81 1600 2400WARD 22-FEB-81 1250 3650JONES 02-APR-81 2975 6625BLAKE 01-MAY-81 2850 9475CLARK 09-JUN-81 2450 11925TURNER 08-SEP-81 1500 13425MARTIN 28-SEP-81 1250 14675KING 17-NOV-81 5000 19675JAMES 03-DEC-81 950 23625FORD 03-DEC-81 3000 23625MILLER 23-JAN-82 1300 24125SCOTT 19-APR-87 3000 3000ADAMS 23-MAY-87 1100 4100

NVL

構文構文構文構文

用途用途用途用途expr1が NULLの場合、NVLは expr2を戻します。expr1が NULLでない場合、NVLはexpr1を戻します。引数 expr1および expr2は、任意のデータ型を持つことができます。2つのデータ型が異なる場合、Oracleは expr2を expr1のデータ型に変換した後で比較を行います。戻り値のデータ型は、常に expr1のデータ型と同じになります。ただし、expr1が文字データの場合、戻り値のデータ型は VARCHAR2になります。

例例例例SELECT ename, NVL(TO_CHAR(COMM), 'NOT APPLICABLE') "COMMISSION" FROM emp WHERE deptno = 30; ENAME COMMISSION---------- -------------------------------------ALLEN 300WARD 500MARTIN 1400BLAKE NOT APPLICABLETURNER 0JAMES NOT APPLICABLE

NVL ( expr1 , expr2 )

関数 4-71

Page 206: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NVL2

NVL2

構文構文構文構文

用途用途用途用途expr1が NULLでない場合、NVL2は expr2を戻します。expr1が NULLの場合、NVL2は expr3を戻します。引数 expr1は、任意のデータ型を持つことができます。引数 expr2および expr3は、LONG以外の任意のデータ型を持つことができます。

expr2と expr3のデータ型が異なり、expr3が NULL定数でない場合、Oracleは比較前に expr3を expr2のデータ型に変換します。この場合、データ型の変換は必要ありません。

戻り値のデータ型は、常に expr2のデータ型と同じになります。ただし、expr2が文字データの場合、戻り値のデータ型は VARCHAR2になります。

例例例例次の例では、empの comm列が NULLかどうかによって、部門 30に属する各従業員の収入が給与と歩合か、または給与のみかを示します。

SELECT ename, NVL2(TO_CHAR(COMM), 'SAL & COMM', 'SAL') incomeFROM emp WHERE deptno = 30;

ENAME INCOME ---------- ----------ALLEN SAL & COMMWARD SAL & COMMMARTIN SAL & COMMBLAKE SAL TURNER SAL & COMMJAMES SAL

NVL2 ( expr1 , expr2 , expr3 )

4-72 Oracle8i SQLリファレンス Vol.1

Page 207: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

PERCENT_RANK

PERCENT_RANK

構文構文構文構文

用途用途用途用途PERCENT_RANKは分析関数であり、CUME_DIST(累積分布)関数と似ています。行 Rに対して、PERCENT_RANKは、Rのランクから 1引いた数を評価される行数(問合せ結果セット全体またはパーティション)より 1少ない数で割ります。PERCENT_RANKが戻す値の範囲は、0~ 1(0および 1を含む)です。すべての集合の最初の行の PERCENT_RANKは 0(ゼロ)になります。

例例例例次の例では、各従業員について、その従業員の部門内での給与のパーセント・ランクを計算します。

SELECT deptno, ename, sal, PERCENT_RANK() OVER (PARTITION BY deptno ORDER BY sal DESC) AS pr FROM emp;

DEPTNO ENAME SAL PR---------- ---------- ---------- ---------- 10 KING 5000 0 10 CLARK 2450 .5 10 MILLER 1300 1 20 SCOTT 3000 0 20 FORD 3000 0 20 JONES 2975 .5 20 ADAMS 1100 .75 20 SMITH 800 1 30 BLAKE 2850 0 30 ALLEN 1600 .2 30 TURNER 1500 .4 30 WARD 1250 .6 30 MARTIN 1250 .6 30 JAMES 950 1

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

PERCENT_RANK ( ) OVER (query_partition_clause

ORDER_BY_clause )

関数 4-73

Page 208: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

POWER

POWER

構文構文構文構文

用途用途用途用途POWERは、mを n乗した値を戻します。底 mおよび指数 nは任意の数です。ただし、mが負の場合、nは整数である必要があります。

例例例例SELECT POWER(3,2) "Raised" FROM DUAL;

Raised---------- 9

RANK

構文構文構文構文

用途用途用途用途RANKは分析関数です。この関数は、ある問合せが戻す他の行について、その問合せが戻す各行のランクを計算します。この計算は、ORDER_BY_clauseの value_exprsの値に基づいて行われます。ランク付け基準と同じ値を持つ行は、同じランクになります。Oracleは連結行の数を連結ランクに追加して、次のランクを計算します。そのため、ランクは連続した数値でない場合があります。

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

POWER ( m , n )

RANK ( ) OVER (query_partition_clause

ORDER_BY_clause )

4-74 Oracle8i SQLリファレンス Vol.1

Page 209: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

RATIO_TO_REPORT

例例例例次の例では、各部門内の従業員を、その給与および歩合に基づいてランク付けします。給与が同じ場合は同じランクになるため、連続しないランクになります。この例と、4-34ページの「DENSE_RANK」の例を比較してください。

SELECT deptno, ename, sal, comm, RANK() OVER (PARTITION BY deptno ORDER BY sal DESC, comm) as rk FROM emp;

DEPTNO ENAME SAL COMM RK---------- ---------- ---------- ---------- ---------- 10 KING 5000 1 10 CLARK 2450 2 10 MILLER 1300 3 20 SCOTT 3000 1 20 FORD 3000 1 20 JONES 2975 3 20 ADAMS 1100 4 20 SMITH 800 5 30 BLAKE 2850 1 30 ALLEN 1600 300 2 30 TURNER 1500 0 3 30 WARD 1250 500 4 30 MARTIN 1250 1400 5 30 JAMES 950 6

RATIO_TO_REPORT

構文構文構文構文

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

RATIO_TO_REPORT ( expr ) OVER (query_partition_clause

)

関数 4-75

Page 210: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

RAWTOHEX

用途用途用途用途RATIO_TO_REPORTは分析関数です。この関数は、ある値の集合の合計に対する、その値の比率を計算します。exprが NULLの場合は、値も NULLになります。

値の集合は、query_partition_clauseによって決まります。この句を省略すると、比率は、問合せによって戻されるすべての行で計算されます。

exprには、RATIO_TO_REPORTまたは他の分析関数を使用できません。他の組込み関数式は exprで使用できますが、分析関数はネストできません。

例例例例次の例では、すべての販売員の給与の合計に対する各販売員の給与の比率を計算します。

SELECT ename, sal, RATIO_TO_REPORT(sal) OVER () AS rr FROM emp WHERE job = 'SALESMAN';

ENAME SAL RR---------- ---------- ----------ALLEN 1600 .285714286WARD 1250 .223214286MARTIN 1250 .223214286TURNER 1500 .267857143

RAWTOHEX

構文構文構文構文

用途用途用途用途RAWTOHEXは、rawを 16進で表した文字値に変換します。

参照参照参照参照 : exprの書式の詳細は、5-2ページの「式」を参照してください。

RAWTOHEX ( raw )

4-76 Oracle8i SQLリファレンス Vol.1

Page 211: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

REF

例例例例SELECT RAWTOHEX(raw_column) "Graphics" FROM graphics;

Graphics--------7D

REF

構文構文構文構文

用途用途用途用途SQL文では、REFの引数として、オブジェクト表またはオブジェクト・ビューの行に対応付けられている相関変数(表別名)が指定されます。変数または行にバインドされたオブジェクト・インスタンスについての REF値が戻ります。

例例例例CREATE TYPE emp_type AS OBJECT (eno NUMBER, ename VARCHAR2(20), salary NUMBER);CREATE TABLE emp_table OF emp_type (primary key (eno, ename));INSERT INTO emp_table VALUES (10, 'jack', 50000);SELECT REF(e) FROM emp_table e;

REF(E)-----------------------------------------------------0000280209420D2FEABD9400C3E03400400B40DCB1420D2FEABD9300C3E03400400B40DCB1004049EE0000

参照参照参照参照 : 詳細は、2-15ページの「RAWデータ型と LONG RAWデータ型」および 4-43ページの「HEXTORAW」を参照してください。

参照参照参照参照 : 詳細は、『Oracle8i概要』を参照してください。

REF ( correlation_variable )

関数 4-77

Page 212: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

REFTOHEX

REFTOHEX

構文構文構文構文

用途用途用途用途REFTOHEXは、引数 exprを 16進で表した文字値に変換します。exprは、REFを戻す必要があります。

例例例例CREATE TYPE emp_type AS OBJECT (eno NUMBER, ename VARCHAR2(20), salary NUMBER);CREATE TABLE emp_table OF emp_type (primary key (eno, ename));CREATE TABLE dept (dno NUMBER, mgr REF emp_type SCOPE IS emp);INSERT INTO emp_table VALUES (10, 'jack', 50000);INSERT INTO dept SELECT 10, REF(e) FROM emp_table e;SELECT REFTOHEX(mgr) FROM dept;

REFTOHEX(MGR)------------------------------------------------------0000220208420D2FEABD9400C3E03400400B40DCB1420D2FEABD9300C3E03400400B40DCB1

REGR_(線形リグレッション)関数(線形リグレッション)関数(線形リグレッション)関数(線形リグレッション)関数線形リグレッション関数は次のとおりです。

� REGR_SLOPE

� REGR_INTERCEPT

� REGR_COUNT

� REGR_R2

� REGR_AVGX

� REGR_AVGY

� REGR_SXX

� REGR_SYY

� REGR_SXY

REFTOHEX ( expr )

4-78 Oracle8i SQLリファレンス Vol.1

Page 213: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

REGR_(線形リグレッション)関数

構文構文構文構文

用途用途用途用途線形リグレッション関数は、微分最小 2乗法で求めたリグレッション直線を数値の組の集合に対応付けます。これは、集計関数または分析関数として使用できます。

Oracleは、expr1または expr2が NULLであるすべての組を排除した後、この関数を(expr1 , expr2)の集合に適用します。Oracleは、データでの引渡し中、同時にすべてのリグレッション関数を計算します。

expr1は、従属変数の値(y値)として解析されます。expr2は、独立変数の値(x値)として解析されます。これらの式は、両方とも数値である必要があります。

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

参照参照参照参照 :

� 4-6ページの「集計関数」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

REGR_SLOPE

REGR_INTERCEPT

REGR_COUNT

REGR_R2

REGR_AVGX

REGR_AVGY

REGR_SXX

REGR_SYY

REGR_SXY

( expr1 , expr2 )OVER ( analytic_clause )

関数 4-79

Page 214: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

REGR_(線形リグレッション)関数

� REGR_SLOPEは、直線の傾きを戻します。戻り値は数値で、NULLになる場合もあります。NULL (expr1、expr2)の組を排除した後、この関数は次の計算を行います。

COVAR_POP(expr1, expr2) / VAR_POP(expr2)

� REGR_INTERCEPTは、リグレッション関数の y切片を戻します。戻り値は数値で、NULLになる場合もあります。NULL (expr1、expr2)の組を排除した後、この関数は次の計算を行います。

AVG(expr1) - REGR_SLOPE(expr1, expr2) * AVG(expr2)

� REGR_COUNTは整数を戻します。この整数は、リグレッション関数に適応させるために使用される NULLでない数値の組です。

� REGR_R2は、リグレッションに対する確定係数の(「Rの 2乗」または「goodness of fit」)を戻します。戻り値は数値で、NULLになる場合もあります。VAR_POP (expr1)および VAR_POP (expr2)は、NULLの組が排除された後に評価されます。戻り値は次のとおりです。

NULL if VAR_POP(expr2) = 0

1 if VAR_POP(expr1) = 0 and VAR_POP(expr2) != 0

POWER(CORR(expr1,expr),2) if VAR_POP(expr1) > 0 and VAR_POP(expr2 != 0

これ以外のすべてのリグレッション関数の戻り値は数値で、NULLになる場合もあります。

� REGR_AVGXは、リグレッション直線の独立変数(expr2)の平均を求めます。NULL (expr1、expr2)の組を排除した後、この関数は次の計算を行います。

AVG(expr2)

� REGR_AVGYは、リグレッション直線の従属変数(expr1)の平均を求めます。NULL (expr1、expr2)の組を排除した後、この関数は次の計算を行います。

AVG(expr1)

REGR_SXY、REGR_SXX、REGR_SYYは補助関数です。これらは、様々な診断統計の計算に使用されます。

� NULL (expr1、expr2)の組を排除した後、REGR_SXXは次の計算を行います。

REGR_COUNT(expr1, expr2) * VAR_POP(expr2)

4-80 Oracle8i SQLリファレンス Vol.1

Page 215: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

REGR_(線形リグレッション)関数

� NULL (expr1、expr2)の組を排除した後、REGR_SYYは次の計算を行います。

REGR_COUNT(expr1, expr2) * VAR_POP(expr1)

� NULL (expr1、expr2)の組を排除した後、REGR_SXYは次の計算を行います。

REGR_COUNT(expr1, expr2) * COVAR_POP(expr1, expr2)

次の例は、4-29ページの「COVAR_POP」にある sales表に基づいています。

REGR_SLOPEおよびおよびおよびおよび REGR_INTERCEPTの例の例の例の例次の例では、各年度の売上高および売上利益について、リグレッション直線の傾きおよび切片を計算します。

SELECT s_year, REGR_SLOPE(s_amount, s_profit), REGR_INTERCEPT(s_amount, s_profit) FROM sales GROUP BY s_year;

S_YEAR REGR_SLOPE REGR_INTER---------- ---------- ---------- 1998 128.401558 -2277.5684 1999 55.618655 226.855296

次の例では、1998年の 1日ごとの売上高および売上利益について、リグレッション直線の累積の傾きおよび累積の切片を計算します。

SELECT s_year, s_month, s_day, REGR_SLOPE(s_amount, s_profit) OVER (ORDER BY s_month, s_day) AS CUM_SLOPE, REGR_INTERCEPT(s_amount, s_profit) OVER (ORDER BY s_month, s_day) AS CUM_ICPT FROM sales WHERE s_year=1998 ORDER BY s_month, s_day;

S_YEAR S_MONTH S_DAY CUM_SLOPE CUM_ICPT ---------- ---------- ---------- ---------- ---------- 1998 6 5 1998 6 9 132.093066 401.884833 1998 6 9 132.093066 401.884833 1998 6 10 131.829612 450.65349

関数 4-81

Page 216: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

REGR_(線形リグレッション)関数

1998 8 21 132.963737 -153.5413 1998 8 25 130.681718 -451.47349 1998 8 25 130.681718 -451.47349 1998 8 26 128.76502 -236.50096 1998 11 9 131.499934 -1806.7535 1998 11 9 131.499934 -1806.7535 1998 11 10 130.190972 -2323.3056 1998 11 10 130.190972 -2323.3056 1998 11 11 128.401558 -2277.5684

REGR_COUNTの例の例の例の例次の例では、SALES表にある、利益に結び付いた販売トランザクションの数を戻します。(売上高のある行には、s_profit列にNULLはありません。そのため、この関数は、sales表にある行の合計を戻します。)

SELECT REGR_COUNT(s_amount, s_profit) FROM sales;

REGR_COUNT---------- 23

次の例では、1998年度の各月でのトランザクションの累積数を 1日ごとに計算します。

SELECT s_month, s_day, REGR_COUNT(s_amount,s_profit) OVER (PARTITION BY s_month ORDER BY s_day) FROM SALES WHERE S_YEAR=1998 ORDER BY S_MONTH; S_MONTH S_DAY REGR_COUNT ---------- ---------- ---------- 6 5 1 6 9 3 6 9 3 6 10 4 8 21 1 8 25 3 8 25 3 8 26 4 11 9 2 11 9 2 11 10 4 11 10 4 11 11 5

4-82 Oracle8i SQLリファレンス Vol.1

Page 217: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

REGR_(線形リグレッション)関数

REGR_R2の例の例の例の例次の例では、売上高および売上利益に対する、リグレッション直線の確定係数を計算します。

SELECT REGR_R2(s_amount, s_profit) FROM sales;

REGR_R2(S_----------.942435028

次の例では、1998年の各月の 1か月の売上高および利益について、リグレッション直線の累積確定係数を計算します。

SELECT s_month, REGR_R2(SUM(s_amount), SUM(s_profit)) OVER (ORDER BY s_month) FROM SALESWHERE s_year=1998GROUP BY s_monthORDER BY s_month;

S_MONTH REGR_R2(SU---------- ---------- 6 8 1 11 .740553632

REGR_AVGYおよびおよびおよびおよび REGR_AVGXの例の例の例の例次の例では、各年度の売上高および売上利益について、リグレッション平均を計算します。

SELECT s_year, REGR_AVGY(s_amount, s_profit), REGR_AVGX(s_amount, s_profit)FROM sales GROUP BY s_year;

S_YEAR REGR_AVGY( REGR_AVGX(---------- ---------- ---------- 1998 41227.5462 338.820769 1999 7330.748 127.725

関数 4-83

Page 218: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

REGR_(線形リグレッション)関数

次の例では、1998年の売上高および売上利益の累積平均を計算します。

SELECT s_year, s_month, s_day, REGR_AVGY(s_amount, s_profit) OVER (ORDER BY s_month, s_day) AS CUM_AMOUNT, REGR_AVGX(s_amount, s_profit) OVER (ORDER BY s_month, s_day) AS CUM_PROFIT FROM sales WHERE s_year=1998 ORDER BY s_month, s_day;

S_YEAR S_MONTH S_DAY CUM_AMOUNT CUM_PROFIT---------- ---------- ---------- ---------- ---------- 1998 6 5 16068 118.2 1998 6 9 44375.6667 332.9 1998 6 9 44375.6667 332.9 1998 6 10 52678.25 396.175 1998 8 21 44721.72 337.5 1998 8 25 45333.8 350.357143 1998 8 25 45333.8 350.357143 1998 8 26 47430.7 370.1875 1998 11 9 41892.91 332.317 1998 11 9 41892.91 332.317 1998 11 10 40777.175 331.055833 1998 11 10 40777.175 331.055833 1998 11 11 41227.5462 338.820769

REGR_SXY、、、、REGR_SXXおよびおよびおよびおよび REGR_SYYの例の例の例の例次の例では、各年度の売上高および売上利益のリグレッション解析について、REGR_SXY、REGR_SXXおよび REGR_SYYの値を計算します。

SELECT s_year, REGR_SXY(s_amount, s_profit), REGR_SYY(s_amount, s_profit), REGR_SXX(s_amount, s_profit)FROM sales GROUP BY s_year;

S_YEAR REGR_SXY(S REGR_SYY(S REGR_SXX(S---------- ---------- ---------- ---------- 1998 48723551.8 6423698688 379462.311 1999 3605361.62 200525751 64822.8841

4-84 Oracle8i SQLリファレンス Vol.1

Page 219: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

REPLACE

次の例では、1998年の各月および日の値の売上および売上利益に対する、REGR_SXY、REGR_SXXおよび REGR_SYYの累積統計を計算します。

SELECT s_year, s_month, s_day, REGR_SXY(s_amount, s_profit) OVER (ORDER BY s_month, s_day) AS CUM_SXY, REGR_SYY(s_amount, s_profit) OVER (ORDER BY s_month, s_day) AS CUM_SXY, REGR_SXX(s_amount, s_profit) OVER (ORDER BY s_month, s_day) AS CUM_SXX FROM sales WHERE s_year=1998 ORDER BY s_month, s_day;

S_YEAR S_MONTH S_DAY CUM_SXY CUM_SXY CUM_SXX ---------- ---------- ---------- ---------- ---------- ---------- 1998 6 5 0 0 0 1998 6 9 14822857.8 1958007601 112215.26 1998 6 9 14822857.8 1958007601 112215.26 1998 6 10 21127009.3 2785202281 160259.968 1998 8 21 30463997.3 4051329674 229115.08 1998 8 25 34567985.3 4541739739 264520.437 1998 8 25 34567985.3 4541739739 264520.437 1998 8 26 36896592.7 4787971157 286542.049 1998 11 9 45567995.3 6045196901 346524.854 1998 11 9 45567995.3 6045196901 346524.854 1998 11 10 48178003.8 6392056557 370056.411 1998 11 10 48178003.8 6392056557 370056.411 1998 11 11 48723551.8 6423698688 379462.311

REPLACE

構文構文構文構文

REPLACE ( char , search_string, replacement_string

)

関数 4-85

Page 220: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ROUND(数値関数)

用途用途用途用途REPLACEは、replacement_stringですべての search_stringを変換して charを戻します。replacement_stringを指定しない場合またはNULLの場合、すべてのsearch_stringが削除されます。search_stringが NULLの場合、charが戻されます。この関数は、TRANSLATE関数を拡張したものです。TRANSLATE関数は、単一の文字を1対 1で置き換えます。REPLACE関数では、文字列の置換または削除を実行できます。

例例例例SELECT REPLACE('JACK and JUE','J','BL') "Changes" FROM DUAL;

Changes--------------BLACK and BLUE

ROUND(数値関数)(数値関数)(数値関数)(数値関数)

構文構文構文構文

用途用途用途用途ROUNDは、nを小数点以下 m桁に丸めた値を戻します。mが省略されると、nは小数点以下が丸められます。mが負の場合は小数点の左桁が丸められます。mは整数である必要があります。

例例例例SELECT ROUND(15.193,1) "Round" FROM DUAL;

Round---------- 15.2

SELECT ROUND(15.193,-1) "Round" FROM DUAL;

Round---------- 20

ROUND ( n, m

)

4-86 Oracle8i SQLリファレンス Vol.1

Page 221: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ROW_NUMBER

ROUND(日付関数)(日付関数)(日付関数)(日付関数)

構文構文構文構文

用途用途用途用途ROUNDは、dを書式モデル fmtで指定した単位に丸めた結果を戻します。fmtを省略すると、dは最も近い日に丸められます。

例例例例SELECT ROUND (TO_DATE ('27-OCT-92'),'YEAR') "New Year" FROM DUAL; New Year---------01-JAN-93

ROW_NUMBER

構文構文構文構文

参照参照参照参照 : fmtで使用できる書式モデルについては、4-127ページの「ROUNDおよび TRUNC日付関数」を参照してください。

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

ROUND ( d, fmt

)

ROW_NUMBER ( ) OVER (query_partition_clause

ORDER_BY_clause )

関数 4-87

Page 222: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ROW_NUMBER

用途用途用途用途ROW_NUMBERは分析関数です。この関数は、ORDER_BY_clauseに指定された行の、1から始まる順序シーケンスで、この関数が適用される各行(パーティションの各行、または問合せが戻す各行)に一意の数値を割り当てます。

exprには、ROW_NUMBERまたは他の分析関数を使用できません。他の組込み関数式はexprで使用できますが、分析関数はネストできません。

例例例例次の例では、emp表の各部門について、従業員の雇用開始日に数値を各行に割り当てます。

SELECT deptno, ename, hiredate, ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY hiredate) AS emp_id FROM emp;

DEPTNO ENAME HIREDATE EMP_ID---------- ---------- --------- ---------- 10 CLARK 09-JUN-81 1 10 KING 17-NOV-81 2 10 MILLER 23-JAN-82 3 20 SMITH 17-DEC-80 1 20 JONES 02-APR-81 2 20 FORD 03-DEC-81 3 20 SCOTT 19-APR-87 4 20 ADAMS 23-MAY-87 5 30 ALLEN 20-FEB-81 1 30 WARD 22-FEB-81 2 30 BLAKE 01-MAY-81 3 30 TURNER 08-SEP-81 4 30 MARTIN 28-SEP-81 5 30 JAMES 03-DEC-81 6

ROW_NUMBERは非決定的な関数です。ただし、hiredateは一意キーであるため、この場合の関数の結果は決定的になります。

参照参照参照参照 : exprの書式の詳細は、5-2ページの「式」を参照してください。

参照参照参照参照 : 非決定的な動作の例は、4-38ページの「FIRST_VALUE」および4-47ページの「LAST_VALUE」を参照してください。

4-88 Oracle8i SQLリファレンス Vol.1

Page 223: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

RPAD

ROWIDTOCHAR

構文構文構文構文

用途用途用途用途ROWIDTOCHARは、ROWIDの値を VARCHAR2データ型に変換します。この変換の結果は常に 18文字です。

例例例例SELECT ROWID FROM offices WHERE ROWIDTOCHAR(ROWID) LIKE '%Br1AAB%';

ROWID------------------AAAAZ6AABAAABr1AAB

RPAD

構文構文構文構文

用途用途用途用途RPADは、char1の右に char2で指定した文字を必要に応じて連続的に埋め込み、長さ nにして戻します。char2のデフォルト値は 1個の空白です。char1が nより長い場合、この関数は nに収まる char1の一部を戻します。

引数 nは、端末画面に表示される場合の戻り値の全体の長さです。多くのキャラクタ・セットでは、これは戻り値の文字数でもあります。ただし、マルチバイトのキャラクタ・セットでは、表示される文字列の長さが文字列の文字数と異なる場合もあります。

ROWIDTOCHAR ( rowid )

RPAD ( char1 , n, char2

)

関数 4-89

Page 224: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

RTRIM

例例例例SELECT RPAD('MORRISON',12,'ab') "RPAD example" FROM DUAL;

RPAD example-----------------MORRISONabab

RTRIM

構文構文構文構文

用途用途用途用途RTRIMは、charの右側にあって setに指定されたすべての文字を削除し、charを戻します。setのデフォルト値は 1個の空白です。charが文字リテラルの場合、引用符で囲む必要があります。RTRIMは LTRIMと同様の働きをします。

例例例例SELECT RTRIM('BROWNINGyxXxy','xy') "RTRIM e.g." FROM DUAL; RTRIM e.g-------------BROWNINGyxX

SIGN

構文構文構文構文

参照参照参照参照 : 4-54ページの「LTRIM」を参照してください。

RTRIM ( char, set

)

SIGN ( n )

4-90 Oracle8i SQLリファレンス Vol.1

Page 225: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SINH

用途用途用途用途nが 0(ゼロ)より小さい場合、SIGNは -1を戻します。nが 0(ゼロ)の場合は 0(ゼロ)を戻します。nが 0(ゼロ)より大きい場合、SIGNは 1を戻します。

例例例例SELECT SIGN(-15) "Sign" FROM DUAL;

Sign---------- -1

SIN

構文構文構文構文

用途用途用途用途SINは、n(ラジアンで表された角度)のサインを戻します。

例例例例SELECT SIN(30 * 3.14159265359/180) "Sine of 30 degrees" FROM DUAL;

Sine of 30 degrees------------------ .5

SINH

構文構文構文構文

用途用途用途用途SINHは、nの双曲線サインを戻します。

SIN ( n )

SINH ( n )

関数 4-91

Page 226: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SOUNDEX

例例例例SELECT SINH(1) "Hyperbolic sine of 1" FROM DUAL;

Hyperbolic sine of 1-------------------- 1.17520119

SOUNDEX

構文構文構文構文

用途用途用途用途SOUNDEXは、charと同じ音声表現を持つ文字列を戻します。この関数によって、綴りが異っても発音が似ている英単語を比較できます。

音声表現については、『The Art of Computer Programming, Volume 3: Sorting and Searching』(Donald E. Knuth著)で次のように定義されています。

� 文字列の最初の文字を残し、a、e、h、i、o、u、w、yの文字が出てきた場合にはすべて削除します。

� 残った 2文字目以降の文字に対し、次のように数値を割り当てます。

b, f, p, v = 1c, g, j, k, q, s, x, z = 2d, t = 3l = 4m, n = 5r = 6

� 元の名前(1つ目の定義を行う前)で、同じ数値を持つ 2つ以上の文字が並んでいるか、または hと wの間の文字以外と並んでいる場合は、最初の文字以外のすべての文字を削除します。

� 最初の 4バイトを 0(ゼロ)で埋めて戻します。

SOUNDEX ( char )

4-92 Oracle8i SQLリファレンス Vol.1

Page 227: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

STDDEV

例例例例SELECT ename FROM emp WHERE SOUNDEX(ename) = SOUNDEX('SMYTHE');

ENAME----------SMITH

SQRT

構文構文構文構文

用途用途用途用途SQRTは、nの平方根を戻します。値 nは負の値にはできません。SQRTは実数を戻します。

例例例例SELECT SQRT(26) "Square root" FROM DUAL;

Square root-----------5.09901951

STDDEV

構文構文構文構文

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

SQRT ( n )

STDDEV (

DISTINCT

ALLexpr )

OVER ( analytic_clause )

関数 4-93

Page 228: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

STDDEV

用途用途用途用途STDDEVは、数値の集合である exprの標本標準偏差を戻します。これは、集計関数または分析関数として使用できます。この関数は、STDDEV_SAMPが NULLを戻すことに対して、入力データが 1行のみの場合に STDDEVが 0(ゼロ)を戻すという点で、STDDEV_SAMPと異なります。

Oracleは、VARIANCE集計関数に対して定義された分散の平方根として標準偏差を計算します。

DISTINCTを指定する場合は、analytic_clauseの query_partition_clauseのみ指定できます。ORDER_BY_clauseおよび windowing_clauseは指定できません。

集計の例集計の例集計の例集計の例SELECT STDDEV(sal) "Deviation" FROM emp; Deviation----------1182.50322

分析の例分析の例分析の例分析の例次の例では、雇用日で順序付けられた部門 30の給与の値の累積標準偏差を戻します。

SELECT ENAME, SAL, STDDEV(SAL) OVER (ORDER BY HIREDATE) FROM EMP WHERE DEPTNO=30; ENAME SAL STDDEV(SAL ---------- ---------- ---------- ALLEN 1600 0 WARD 1250 247.487373 BLAKE 2850 841.130192 TURNER 1500 715.308791 MARTIN 1250 666.520817 JAMES 950 668.331255

参照参照参照参照 :

� 4-6ページの「集計関数」、4-125ページの「VARIANCE」および 4-96ページの「STDDEV_SAMP」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

4-94 Oracle8i SQLリファレンス Vol.1

Page 229: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

STDDEV_POP

STDDEV_POP

構文構文構文構文

用途用途用途用途STDDEV_POPは母集団標準偏差を計算し、母集団分散の平方根を戻します。これは、集計関数または分析関数として使用できます。

exprは数値式であり、この関数は NUMBER型の値を戻します。この関数は、VAR_POP関数の平方根と同じです。VAR_POPが NULLを戻す場合、この関数も NULLを戻します。

集計の例集計の例集計の例集計の例次の例では、SALES表にある売上利益の母集団標準偏差および標本標準偏差を戻します。

SELECT STDDEV_POP(s_profit), STDDEV_SAMP(s_profit) FROM sales;

STDDEV_POP STDDEV_SAM---------- ----------173.975774 177.885831

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

参照参照参照参照 :

� 詳細は、4-6ページの「集計関数」および 4-122ページの「VAR_POP」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

STDDEV_POP ( expr )OVER ( analytic_clause )

関数 4-95

Page 230: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

STDDEV_SAMP

分析の例分析の例分析の例分析の例次の例では、emp表の部門ごとの給与の母集団標準偏差を戻します。

SELECT deptno, ename, sal, STDDEV_POP(sal) OVER (PARTITION BY deptno) AS pop_std FROM emp;

DEPTNO ENAME SAL POP_STD---------- ---------- ---------- ---------- 10 CLARK 2450 1546.14215 10 KING 5000 1546.14215 10 MILLER 1300 1546.14215 20 SMITH 800 1004.73877 20 ADAMS 1100 1004.73877 20 FORD 3000 1004.73877 20 SCOTT 3000 1004.73877 20 JONES 2975 1004.73877 30 ALLEN 1600 610.100174 30 BLAKE 2850 610.100174 30 MARTIN 1250 610.100174 30 JAMES 950 610.100174 30 TURNER 1500 610.100174 30 WARD 1250 610.100174

STDDEV_SAMP

構文構文構文構文

用途用途用途用途STDDEV_SAMPは標本累積標準偏差を計算し、標本分散の平方根を戻します。これは、集計関数または分析関数として使用できます。

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

STDDEV_SAMP ( expr )OVER ( analytic_clause )

4-96 Oracle8i SQLリファレンス Vol.1

Page 231: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

STDDEV_SAMP

exprは数値式であり、この関数は NUMBER型の値を戻します。この関数は、VAR_SAMP関数の平方根と同じです。VAR_SAMPが NULLを戻す場合、この関数も NULLを戻します。

集計の例集計の例集計の例集計の例次の例では、SALES表にある売上利益の母集団標準偏差および標本標準偏差を戻します。

SELECT STDDEV_POP(s_profit), STDDEV_SAMP(s_profit) FROM sales;

STDDEV_POP STDDEV_SAM---------- ----------173.975774 177.885831

分析の例分析の例分析の例分析の例次の例では、EMP表の部門ごとの給与の標本標準偏差を戻します。

SELECT deptno, ename, hiredate, sal, STDDEV_SAMP(sal) OVER (PARTITION BY deptno ORDER BY hiredate ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cum_sdev FROM emp;

DEPTNO ENAME HIREDATE SAL CUM_SDEV---------- ---------- --------- ---------- ---------- 10 CLARK 09-JUN-81 2450 10 KING 17-NOV-81 5000 1803.12229 10 MILLER 23-JAN-82 1300 1893.62967 20 SMITH 17-DEC-80 800 20 JONES 02-APR-81 2975 1537.95725 20 FORD 03-DEC-81 3000 1263.01557 20 SCOTT 19-APR-87 3000 1095.8967 20 ADAMS 23-MAY-87 1100 1123.3321 30 ALLEN 20-FEB-81 1600 30 WARD 22-FEB-81 1250 247.487373 30 BLAKE 01-MAY-81 2850 841.130192 30 TURNER 08-SEP-81 1500 715.308791 30 MARTIN 28-SEP-81 1250 666.520817 30 JAMES 03-DEC-81 950 668.331255

参照参照参照参照 :

� 詳細は、4-6ページの「集計関数」および 4-123ページの「VAR_SAMP」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

関数 4-97

Page 232: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SUBSTR

SUBSTR

構文構文構文構文

用途用途用途用途SUBSTRは、charの m番目の文字から n文字分の文字列を抜き出して戻します。

� mが 0の場合、1として扱われます。

� mが正の数の場合、Oracleは charの始めから数えて最初の文字を検索します。

� mが負の数の場合、Oracleは charの終わりから数えます。

� nを指定しないと、Oracleは charの終わりまでのすべての文字を戻します。nが 1より小さい場合、NULLを戻します。

引数として SUBSTRに渡された浮動小数点数は、自動的に整数に変換されます。

SELECT SUBSTR('ABCDEFG',3,4) "Substring" FROM DUAL; Substring---------CDEF

例例例例 2SELECT SUBSTR('ABCDEFG',-5,4) "Substring" FROM DUAL;

Substring---------CDEF

SUBSTR ( char , m, n

)

4-98 Oracle8i SQLリファレンス Vol.1

Page 233: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SUM

SUBSTRB

構文構文構文構文

用途用途用途用途SUBSTRBは、引数 mおよび nが文字ではなくバイトで表されること以外は SUBSTRと同じです。データベース・キャラクタ・セットがシングルバイトの場合、SUBSTRBは SUBSTRと同じです。

引数として SUBSTRBに渡された浮動小数点数は、自動的に整数に変換されます。

例例例例データベース・キャラクタ・セットがダブルバイトの場合を想定します。

SELECT SUBSTRB('ABCDEFG',5,4.2) "Substring with bytes" FROM DUAL;

Substring with bytes--------------------CD

SUM

構文構文構文構文

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

SUBSTRB ( char , m, n

)

SUM (

DISTINCT

ALLexpr )

OVER ( analytic_clause )

関数 4-99

Page 234: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SUM

用途用途用途用途SUMは、exprの値の合計を戻します。これは、集計関数または分析関数として使用できます。

DISTINCTを指定する場合は、analytic_clauseの query_partition_clauseのみ指定できます。ORDER_BY_clauseおよび windowing_clauseは指定できません。

集計の例集計の例集計の例集計の例次の例では、emp表にあるすべての給与の合計を計算します。

SELECT SUM(sal) "Total" FROM emp; Total---------- 29025

分析の例分析の例分析の例分析の例次の例では、各マネージャについて、そのマネージャの下で働く従業員の現在の給与以下の給与の累積合計を計算します。

SELECT mgr, ename, sal, SUM(sal) OVER (PARTITION BY mgr ORDER BY sal RANGE UNBOUNDED PRECEDING) l_csum FROM emp;

MGR ENAME SAL L_CSUM---------- ---------- ---------- ---------- 7566 SCOTT 3000 6000 7566 FORD 3000 6000 7698 JAMES 950 950 7698 WARD 1250 3450 7698 MARTIN 1250 3450 7698 TURNER 1500 4950 7698 ALLEN 1600 6550 7782 MILLER 1300 1300

参照参照参照参照 :

� 4-6ページの「集計関数」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

4-100 Oracle8i SQLリファレンス Vol.1

Page 235: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SYS_CONTEXT

7788 ADAMS 1100 1100 7839 CLARK 2450 2450 7839 BLAKE 2850 5300 7839 JONES 2975 8275 7902 SMITH 800 800 KING 5000 5000

SYS_CONTEXT

構文構文構文構文

用途用途用途用途SYS_CONTEXTは、コンテキスト namespaceに対応付けられた attributeの値を戻します。この関数は、SQL文および PL/SQL文で使用できます。コンテキスト namespaceはすでに作成されている必要があり、対応付けられた attributeおよびその値はDBMS_SESSION.set_contextプロシージャを使用して設定されている必要があります。namespaceは有効な SQL識別子である必要があります。attribute名には、大 /小文字区別なしで、30バイトまでのすべての文字列を含めることができます。

戻り値のデータ型は VARCHAR2です。戻り値のデフォルトの最大サイズは、256バイトです。オプションの lengthパラメータを指定して、このデフォルトをオーバーライドできます。有効な値の範囲は、1~ 4000バイトです(無効な値を指定すると、Oracleはその値を無視してデフォルト値を使用します)。

Oracle8iでは、カレント・セッションを記述する USERENVという組込みネームスペースを提供しています。ネームスペース USERENVの事前定義属性およびその戻り文字列の長さについては、4-103ページの表 4-1を参照してください。

SYS_CONTEXT ( ’ namespace ’ , ’ attribute ’, length

)

関数 4-101

Page 236: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SYS_CONTEXT

例例例例次の例では、データベースにログインしたユーザー名を戻します。

SELECT SYS_CONTEXT ('USERENV', 'SESSION_USER') FROM DUAL;

SYS_CONTEXT ('USERENV', 'SESSION_USER')------------------------------------------------------SCOTT

次の例では、hr_appsが作成されたときに、コンテキスト hr_appsに対応付けられたPL/SQLパッケージの属性 group_noに対する値として設定されたグループ番号を戻します。

SELECT SYS_CONTEXT ('hr_apps', 'group_no') "User Group" FROM DUAL; User Group----------Sales

参照参照参照参照 :

� アプリケーション開発でのアプリケーション・コンテキスト機能の使用方法については、『Oracle8iアプリケーション開発者ガイド 基礎編』を参照してください。

� ユーザー定義のコンテキスト・ネームスペースの作成方法については、9-13ページの「CREATE CONTEXT」を参照してください。

� DBMS_SESSION.set_contextプロシージャの詳細は、『Oracle8i PL/SQLパッケージ・プロシージャ リファレンス』を参照してください。

4-102 Oracle8i SQLリファレンス Vol.1

Page 237: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SYS_CONTEXT

表表表表 4-1 ネームスペースネームスペースネームスペースネームスペース USERENVの事前定義属性の事前定義属性の事前定義属性の事前定義属性

属性属性属性属性 戻り値戻り値戻り値戻り値 戻り値の戻り値の戻り値の戻り値の長さ長さ長さ長さ(バイト)(バイト)(バイト)(バイト)

AUTHENTICATION_DATA ログイン・ユーザーの認証に使用されるデータを戻します。X.503認証セッションでは、このフィールドは HEX2形式での認証のコンテキストを戻します。

256

注意注意注意注意 :構文の lengthパラメータを使用して、AUTHENTICATION_DATA属性の戻り値を変更できます。最大4000までの値を指定できます。この属性は、Oracleがこのような変更を実装する USERENVの唯一の属性です。

AUTHENTICATION_TYPE 次に示すとおり、ユーザーの認証方法を戻します。

� DATABASE:ユーザー名 /パスワード認証

� OS:オペレーティング・システムの外部ユーザー認証

� NETWORK:ネットワーク・プロトコルまたは ANO認証

� PROXY:OCIプロキシ接続認証

30

BG_JOB_ID カレント・セッションが Oracleのバックグラウンド・プロセスで確立された場合、そのセッションのジョブ IDを戻します。セッションがバックグラウンド・プロセスで確立されていない場合は、NULLを戻します。

30

CLIENT_INFO DBMS_APPLICATION_INFOパッケージを使用するアプリケーションが格納できる 64バイトまでのユーザー・セッション情報を戻します。

64

CURRENT_SCHEMA カレント・スキーマで使用されているデフォルトのスキーマ名を戻します。この値は、セッション中に ALTER SESSION SET CURRENT_SCHEMA文を使用して変更できます。

30

CURRENT_SCHEMAID カレント・セッションで使用されているデフォルトのスキーマIDを戻します。

30

CURRENT_USER カレント・セッションで権限のあるユーザーのユーザー名を戻します。

30

CURRENT_USERID カレント・セッションで権限のあるユーザーのユーザー IDを戻します。

30

DB_DOMAIN DB_DOMAIN初期化パラメータで指定されたデータベースのドメインを戻します。

256

DB_NAME DB_NAME初期化パラメータで指定されたデータベース名を戻します。

30

関数 4-103

Page 238: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SYS_CONTEXT

ENTRYID 使用可能な監査エントリ識別子を戻します。このオプションを分散 SQL文で使用することはできません。USERENVでこのキーワードを使用するには、AUDIT_TRAIL初期化パラメータに trueを設定する必要があります。

30

EXTERNAL_NAME データベース・ユーザーの外部名を戻します。v.503認証を使用する SSL認証セッションでは、このフィールドは、ユーザー認証に格納されている識別名(DN)を戻します。

256

FG_JOB_ID カレント・セッションが Oracleのフォアグラウンド・プロセスで確立された場合、そのセッションのジョブ IDを戻します。セッションがフォアグラウンド・プロセスで確立されていない場合は、NULLを戻します。

30

HOST 接続中のクライアントのホスト・マシン名を戻します。 54

INSTANCE カレント・インスタンスのインスタンス識別番号を戻します。 30

IP_ADDRESS 接続中のクライアントのマシンの IPアドレスを戻します。 30

ISDBA 現在使用可能な DBAロールを持っている場合は TRUEを、持っていない場合は FALSEを戻します。

30

LANG 言語名の ISO略称を戻します。これは、既存の 'LANGUAGE'パラメータを短縮したものです。

62

LANGUAGE カレント・セッションで使用している言語(language)および地域(territory)を、データベース・キャラクタ・セット(character set)も含めて次の書式で戻します。

language_territory.characterset

52

NETWORK_PROTOCOL 接続文字列の 'PROTOCOL=protocol'の部分で指定された、通信に使用されるネットワーク・プロトコルを戻します。

256

NLS_CALENDAR カレント・セッションのカレント・カレンダを戻します。 62

NLS_CURRENCY カレント・セッションの通貨を戻します。 62

NLS_DATE_FORMAT セッションの日付書式を戻します。 62

NLS_DATE_LANGUAGE 日付の表示に使用される言語を戻します。 62

NLS_SORT BINARYまたは言語ソート基準を戻します。 62

NLS_TERRITORY カレント・セッションの地域を戻します。 62

OS_USER データベース・セッションを初期化するクライアント・プロセスのオペレーティング・システム・ユーザー名を戻します。

30

表表表表 4-1 ネームスペースネームスペースネームスペースネームスペース USERENVの事前定義属性(続き)の事前定義属性(続き)の事前定義属性(続き)の事前定義属性(続き)

属性属性属性属性 戻り値戻り値戻り値戻り値 戻り値の戻り値の戻り値の戻り値の長さ長さ長さ長さ(バイト)(バイト)(バイト)(バイト)

4-104 Oracle8i SQLリファレンス Vol.1

Page 239: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SYS_GUID

SYS_GUID

構文構文構文構文

用途用途用途用途SYS_GUIDは、16バイトで構成されたグローバルな一意の識別子(RAW値)を生成して戻します。多くのプラットフォームでは、生成された識別子は、ホスト識別子とプロセス、または関数を呼び出すプロセスやスレッドのスレッド識別子、およびそのプロセスやスレッドに対する非反復値(バイトの順序)から構成されています。

PROXY_USER SESSION_USERのかわりにカレント・セッションをオープンしたデータベース・ユーザー名を戻します。

30

PROXY_USERID SESSION_USERのかわりにカレント・セッションをオープンしたデータベース・ユーザーの IDを戻します。

30

SESSION_USER カレント・ユーザーが認証されているデータベース・ユーザー名を戻します。この値は、セッションの存続期間中は同じです。

30

SESSION_USERID カレント・ユーザーが認証されているデータベース・ユーザーの IDを戻します。

30

SESSIONID 監査セッション識別子を戻します。このオプションを分散 SQL文で使用することはできません。

30

TERMINAL カレント・セッションのクライアントに対するオペレーティング・システムの識別子を戻します。分散 SQL文では、このオプションはローカル・セッションの識別子を戻します。分散環境では、リモートの SELECTに対してのみこのオプションを使用でき、リモートの INSERT、UPDATEまたは DELETEには使用できません(このパラメータの戻り値の長さは、オペレーティング・システムによって異なります)。

10

表表表表 4-1 ネームスペースネームスペースネームスペースネームスペース USERENVの事前定義属性(続き)の事前定義属性(続き)の事前定義属性(続き)の事前定義属性(続き)

属性属性属性属性 戻り値戻り値戻り値戻り値 戻り値の戻り値の戻り値の戻り値の長さ長さ長さ長さ(バイト)(バイト)(バイト)(バイト)

SYS_GUID ( )

関数 4-105

Page 240: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SYSDATE

例例例例次の例は、グローバルな一意識別子の 16バイトの RAW値を 32文字の 16進表記で戻します。

CREATE TABLE mytable (col1 VARCHAR2(10), col2 RAW(32));INSERT INTO mytable VALUES ('BOB', SYS_GUID());SELECT * FROM mytable;

COL1 COL2---------- --------------------------------------------------BOB 5901B85D996C570CE03400400B40DCB1

SELECT SYS_GUID() FROM DUAL;

SYS_GUID()--------------------------------5901B85D996D570CE03400400B40DCB1

SYSDATE

構文構文構文構文

用途用途用途用途SYSDATEは現在の日時を戻します。引数は必要ありません。分散 SQL文では、この関数はローカル・データベース上の日時を戻します。CHECK制約の条件でこの関数は使用できません。

例例例例SELECT TO_CHAR (SYSDATE, 'MM-DD-YYYY HH24:MI:SS')"NOW" FROM DUAL;

NOW-------------------10-29-1999 20:27:11

SYSDATE

4-106 Oracle8i SQLリファレンス Vol.1

Page 241: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

TANH

TAN

構文構文構文構文

用途用途用途用途TANは、n(ラジアンで表された角度)のタンジェントを戻します。

例例例例SELECT TAN(135 * 3.14159265359/180)"Tangent of 135 degrees" FROM DUAL;

Tangent of 135 degrees---------------------- - 1

TANH

構文構文構文構文

用途用途用途用途TANHは、nの双曲線タンジェントを戻します。

例例例例SELECT TANH(.5) "Hyperbolic tangent of .5" FROM DUAL;

Hyperbolic tangent of .5------------------------ .462117157

TAN ( n )

TANH ( n )

関数 4-107

Page 242: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

TO_CHAR(日付変換)

TO_CHAR(日付変換)(日付変換)(日付変換)(日付変換)

構文構文構文構文

用途用途用途用途TO_CHARは、DATEデータ型の dを、日付書式 fmtで指定した書式の VARCHAR2データ型の値に変換します。fmtを指定しないと、dはデフォルトの日付書式の VARCHAR2値に変換されます。

'nlsparam'には、月と日の名前および略称が戻される言語を指定します。この引数は、次の書式で指定します。

'NLS_DATE_LANGUAGE = language'

nlsparamを指定しないと、この関数はセッションのデフォルト日付言語を使用します。

例例例例SELECT TO_CHAR(HIREDATE, 'Month DD, YYYY') "New date format" FROM emp WHERE ename = 'BLAKE'; New date format------------------May 01, 1981

参照参照参照参照 : 日付書式については、2-39ページの「書式モデル」を参照してください。

TO_CHAR ( d, fmt

, ’ nlsparam ’

)

4-108 Oracle8i SQLリファレンス Vol.1

Page 243: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

TO_CHAR(数値変換)

TO_CHAR(数値変換)(数値変換)(数値変換)(数値変換)

構文構文構文構文

用途用途用途用途TO_CHARは、NUMBERデータ型の nを、オプションの数値書式 fmtで指定した書式のVARCHAR2データ型の値に変換します。fmtを指定しないと、nの有効桁数を保持するために十分な長さの VARCHAR2値に変換されます。

'nlsparam'には、数値書式要素によって戻される次の文字を指定します。

� 小数点文字

� グループ・セパレータ

� 各国通貨記号

� 国際通貨記号

この引数は、次の書式で指定します。

'NLS_NUMERIC_CHARACTERS = ''dg'' NLS_CURRENCY = ''text'' NLS_ISO_CURRENCY = territory '

文字 dおよび gは、それぞれ小数点文字およびグループ・セパレータを表します。これらは、異なるシングルバイト文字である必要があります。引用符付き文字列の中では、パラメータ値を囲む一重引用符を 2つ使用する必要があることに注意してください。通貨記号には 10文字使用できます。

'nlsparam'またはパラメータのいずれか 1つを省略すると、この関数はセッションのデフォルト・パラメータ値を使用します。

参照参照参照参照 : 日付書式については、2-39ページの「書式モデル」を参照してください。

TO_CHAR ( n, fmt

, ’ nlsparam ’

)

関数 4-109

Page 244: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

TO_DATE

例例例例この例では、出力で通貨記号の左に空白埋めが行われます。

SELECT TO_CHAR(-10000,'L99G999D99MI') "Amount" FROM DUAL;

Amount-------------- $10,000.00-

SELECT TO_CHAR(-10000,'L99G999D99MI', 'NLS_NUMERIC_CHARACTERS = '',.'' NLS_CURRENCY = ''AusDollars'' ') "Amount" FROM DUAL;

Amount-------------------AusDollars10.000,00-

TO_DATE

構文構文構文構文

用途用途用途用途TO_DATEは、CHARデータ型または VARCHAR2データ型の charを、DATEデータ型の値に変換します。fmtは、charの書式を指定する日付書式です。fmtを指定しない場合、charはデフォルトの日付書式である必要があります。fmtが「J」(ユリウス暦)の場合、charは整数である必要があります。

'nlsparam'は、日付変換の TO_CHAR関数の場合と同じ用途で使用されます。

注意注意注意注意 : オプションの数値書式 fmtでは、Lは各国通貨記号を、MIは後に付くマイナス記号(-)を表します。数値書式要素のすべてのリストは、2-42ページの表 2-7を参照してください。

TO_DATE ( char, fmt

, ’ nlsparam ’

)

4-110 Oracle8i SQLリファレンス Vol.1

Page 245: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

TO_LOB

引数 charに DATE値を持つ TO_DATE関数は使用しないでください。戻される DATE値は、fmtまたはデフォルトの日付書式によって、元の charとは異なる世紀の値を持つことがあります。

例例例例INSERT INTO bonus (bonus_date) SELECT TO_DATE( 'January 15, 1989, 11:00 A.M.', 'Month dd, YYYY, HH:MI A.M.', 'NLS_DATE_LANGUAGE = American') FROM DUAL;

TO_LOB

構文構文構文構文

用途用途用途用途TO_LOBは、long_column列の LONGまたは LONG RAW値を LOB値に変換します。この関数は LONGまたは LONG RAW列に対してのみ、および INSERT文における副問合せのSELECT構文のリストにおいてのみ適用できます。

この関数を使用する前に、LOB列を作成して変換された LONG値を受け取る必要があります。LONGに変換するには、CLOB列を作成します。LONG RAWに変換するには、BLOB列を作成します。

例例例例次の表を指定したとします。

CREATE TABLE long_table (n NUMBER, long_col LONG);CREATE TABLE lob_table (n NUMBER, lob_col CLOB);

この関数を使用して、次のように LONGを LOB値に変換します。

INSERT INTO lob_table SELECT n, TO_LOB(long_col) FROM long_table;

参照参照参照参照 : 2-46ページの「日付書式モデル」を参照してください。

参照参照参照参照 : INSERT文の副問合せについては、11-52ページの「INSERT」を参照してください。

TO_LOB ( long_column )

関数 4-111

Page 246: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

TO_MULTI_BYTE

TO_MULTI_BYTE

構文構文構文構文

用途用途用途用途TO_MULTI_BYTEは、すべてのシングルバイト文字を、対応するマルチバイト文字に変換して charを戻します。char内に同等のマルチバイト文字がないシングルバイト文字は、シングルバイト文字として出力されます。この関数は、ご使用のデータベース・キャラクタ・セットに、シングルバイト文字およびマルチバイト文字の両方が含まれている場合にのみ有効です。

TO_NUMBER

構文構文構文構文

用途用途用途用途TO_NUMBERは、オプションの書式モデル fmtによって指定された書式の数を含む CHARデータ型または VARCHAR2データ型の値 charを、NUMBERデータ型の値に変換します。

例例例例UPDATE emp SET sal = sal + TO_NUMBER('100.00', '9G999D99') WHERE ename = 'BLAKE';

この関数の 'nlsparam'文字列は、数値変換の TO_CHAR関数の場合と同じ用途に使用されます。

参照参照参照参照 : 4-109ページの「TO_CHAR(数値変換)」を参照してください。

TO_MULTI_BYTE ( char )

TO_NUMBER ( char, fmt

, ’ nlsparam ’

)

4-112 Oracle8i SQLリファレンス Vol.1

Page 247: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

TRANSLATE

SELECT TO_NUMBER('-AusDollars100','L9G999D99', ' NLS_NUMERIC_CHARACTERS = '',.'' NLS_CURRENCY = ''AusDollars'' ') "Amount" FROM DUAL;

Amount---------- -100

TO_SINGLE_BYTE

構文構文構文構文

用途用途用途用途TO_SINGLE_BYTEは、すべてのマルチバイト文字を、対応するシングルバイト文字に変換して charを戻します。char内に同等のシングルバイト文字がないマルチバイト文字は、マルチバイト文字として出力されます。この関数は、ご使用のデータベース・キャラクタ・セットに、シングルバイト文字およびマルチバイト文字の両方が含まれている場合にのみ有効です。

TRANSLATE

構文構文構文構文

用途用途用途用途TRANSLATEは、from内のすべての文字を to内の対応する文字に置換して charを戻します。from内に存在しない char内の文字は置換されません。引数 fromには、toより多い文字を指定できます。この場合、fromの終わりにある余分な文字には、to内に対応する文字がありません。これらの余分な文字が char内にある場合、それらの文字は戻り値から削除されます。戻り値から from内の文字をすべて削除するために、toに空の文字列を使用することはできません。Oracleは空の文字列をNULLと解析し、NULLの引数がある場合、この関数は NULLを戻します。

TO_SINGLE_BYTE ( char )

TRANSLATE ( ’ char ’ , ’ from ’ , ’ to ’ )

関数 4-113

Page 248: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

TRANSLATE ... USING

例例例例次の例では、ライセンス番号を変換します。「ABC...Z」のすべての文字は「X」に変換され、「012...9」のすべての数字は「9」に変換されます。

SELECT TRANSLATE('2KRW229','0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', '9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') "License" FROM DUAL; License--------9XXX999

次の例では、文字を削除して数値のみになったライセンス番号を戻します。

SELECT TRANSLATE('2KRW229','0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', '0123456789')"Translate example" FROM DUAL; Translate example-----------------2229

TRANSLATE ... USING

構文構文構文構文

用途用途用途用途TRANSLATE ... USINGは、textをデータベース・キャラクタ・セットと各国語キャラクタ・セット間の変換に指定されたキャラクタ・セットに変換します。

引数 textは変換する式です。

TRANSLATE ( text USINGCHAR_CS

NCHAR_CS)

4-114 Oracle8i SQLリファレンス Vol.1

Page 249: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

TRANSLATE ... USING

USING CHAR_CS引数を指定すると、textがデータベース・キャラクタ・セットに変換されます。出力データ型は VARCHAR2です。

USING NCHAR_CS引数を指定すると、textが各国語キャラクタ・セットに変換されます。出力データ型は NVARCHAR2です。

この関数は、Oracleの CONVERT関数と似ていますが、入力または出力のデータ型に NCHARまたは NVARCHAR2を使用する場合は、CONVERTではなくこの関数を使用する必要があります。

例例例例次に、表 t1およびその値を使用する例を示します。

CREATE TABLE t1 (char_col CHAR(20), nchar_col nchar(20));INSERT INTO t1 VALUES ('Hi', N'Bye');SELECT * FROM t1;

CHAR_COL NCHAR_COL-------- ---------Hi Bye

UPDATE t1 SET nchar_col = TRANSLATE(char_col USING NCHAR_CS);UPDATE t1 SET char_col = TRANSLATE(nchar_col USING CHAR_CS);SELECT * FROM t1;

CHAR_COL NCHAR_COL-------- ---------Hi Hi

UPDATE t1 SET nchar_col = TRANSLATE('deo' USING NCHAR_CS);UPDATE t1 SET char_col = TRANSLATE(N'deo' USING CHAR_CS);SELECT * FROM t1;

CHAR_COL NCHAR_COL-------- ---------deo deo

関数 4-115

Page 250: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

TRIM

TRIM

構文構文構文構文

用途用途用途用途TRIMによって、文字列の先行または後続文字(あるいはその両方)を切り捨てることができます。trim_characterまたは trim_sourceが文字リテラルの場合、引用符で囲む必要があります。

� LEADINGを指定すると、Oracleは trim_characterと等しい先行文字を削除します。

� TRAILINGを指定すると、Oracleは trim_characterと等しい後続文字を削除します。

� BOTHを指定するか、またはいずれも指定しない場合、Oracleは trim_characterと等しい先行および後続文字を削除します。

� trim_characterを指定しないと、デフォルト値は空白になります。

� trim_sourceのみを指定すると、Oracleは先行および後続空白を削除します。

� この関数は、値を VARCHAR2データ型で戻します。値の最大長は、trim_sourceの長さです。

� trim_sourceまたは trim_characterのいずれかがNULL値の場合、TRIM関数はNULL値を戻します。

この例では、先行および後続 0(ゼロ)を数値から切り捨てます。

例例例例SELECT TRIM (0 FROM 0009872348900) "TRIM Example" FROM DUAL;

TRIM example------------ 98723489

TRIM (

LEADING

TRAILING

BOTH

trim_character

trim_character

FROM

trim_source )

4-116 Oracle8i SQLリファレンス Vol.1

Page 251: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

TRUNC(日付関数)

TRUNC(数値関数(数値関数(数値関数(数値関数 )

構文構文構文構文

用途用途用途用途TRUNCは、nを小数第 m位までに切り捨てた値を戻します。mを指定しない場合、nの小数点以下を切り捨てます。mが負の場合は、小数点の左 m桁を切り捨てて、0(ゼロ)にします。

例例例例SELECT TRUNC(15.79,1) "Truncate" FROM DUAL;

Truncate---------- 15.7

SELECT TRUNC(15.79,-1) "Truncate" FROM DUAL;

Truncate---------- 10

TRUNC(日付関数)(日付関数)(日付関数)(日付関数)

構文構文構文構文

用途用途用途用途TRUNCは、時刻部分を書式モデル fmtで指定された単位まで近似した dを戻します。fmtを指定しない場合、dは最も近い日に切り捨てます。

参照参照参照参照 : fmtで使用できる書式モデルについては、4-127ページの「ROUNDおよび TRUNC日付関数」を参照してください。

TRUNC ( n, m

)

TRUNC ( d, fmt

)

関数 4-117

Page 252: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

UID

例例例例SELECT TRUNC(TO_DATE('27-OCT-92','DD-MON-YY'), 'YEAR') "New Year" FROM DUAL; New Year---------01-JAN-92

UID

構文構文構文構文

用途用途用途用途UIDは、セッション・ユーザー(ログインしているユーザー)を一意に識別する整数を戻します。

例例例例SELECT UID FROM DUAL;

UID---------- 19

UPPER

構文構文構文構文

用途用途用途用途UPPERは、すべての文字を大文字にして charを戻します。戻り値は、引数 charと同じデータ型を持ちます。

UID

UPPER ( char )

4-118 Oracle8i SQLリファレンス Vol.1

Page 253: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

USER

例例例例SELECT UPPER('Large') "Uppercase" FROM DUAL;

Upper-----LARGE

USER

構文構文構文構文

用途用途用途用途USERは、セッション・ユーザー(ログインしているユーザー)の名前を VARCHAR2データ型で戻します。Oracleは、空白埋め比較方法でこの関数の値を比較します。

分散 SQL文では、UID関数および USER関数は、ローカル・データベース上のユーザーを識別します。CHECK制約の条件でこれらの関数は使用できません。

例例例例SELECT USER, UID FROM DUAL; USER UID------------------------------ ----------SCOTT 19

USER

関数 4-119

Page 254: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

USERENV

USERENV

構文構文構文構文

用途用途用途用途USERENVは、カレント・セッションに関する VARCHAR2データ型の情報を戻します。この情報は、アプリケーション固有の監査証跡表を書き込む場合、またはセッションで現在使用されている言語固有の文字を判断する場合に有効です。CHECK制約の条件で、USERENVは使用できません。表 4-2に、option引数の値を示します。

表表表表 4-2 USERENVオプションオプションオプションオプション

オプションオプションオプションオプション 戻り値戻り値戻り値戻り値

'CLIENT_INFO' DBMS_APPLICATION_INFOパッケージを使用するアプリケーションが格納できる 64バイトまでのユーザー・セッション情報を戻します。

注意注意注意注意 :商業用のアプリケーションによっては、このコンテキスト値を使用する可能性があります。このコンテキスト領域の使用に対する制限については、これらのアプリケーションのドキュメントを確認してください。

オラクル社では、アプリケーション・コンテキストの機能、またはSYS_CONTEXT関数を USERENVオプション付きで使用することをお薦めします。これらは、より安全性が高く、柔軟性があります。

参照参照参照参照 :

� アプリケーション・コンテキストの詳細は、『Oracle8i概要』を参照してください。

� 9-13ページの「CREATE CONTEXT」および 4-101ページの「SYS_CONTEXT」を参照してください。

'ENTRYID' 使用可能な監査エントリ識別子を戻します。このオプションを分散 SQL文で使用することはできません。USERENVでこのキーワードを使用するには、AUDIT_TRAIL初期化パラメータに trueを設定する必要があります。

'INSTANCE' カレント・インスタンスのインスタンス識別番号を戻します。

USERENV ( option )

4-120 Oracle8i SQLリファレンス Vol.1

Page 255: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

VALUE

例例例例SELECT USERENV('LANGUAGE') "Language" FROM DUAL;

Language-----------------------------------AMERICAN_AMERICA.WE8DEC

VALUE

構文構文構文構文

用途用途用途用途SQL文では、VALUEの引数として、オブジェクト表の行に対応付けられている相関変数(表別名)がとられ、オブジェクト表に格納されたオブジェクト・インスタンスを戻します。オブジェクト・インスタンスの型は、オブジェクト表と同じ型です。

'ISDBA' 現在使用可能な DBAロールを持っている場合は 'TRUE'を、持っていない場合は 'FALSE'を戻します。

'LANG' 言語名の ISO略称を戻します。これは、既存の 'LANGUAGE'パラメータを短縮したものです。

'LANGUAGE' セッションで現在使用している言語(language)および地域(territory)を、データベース・キャラクタ・セット(character set)も含めた次の書式で戻します。

language_territory.characterset

'SESSIONID' 監査セッション識別子を戻します。このオプションを分散 SQL文で使用することはできません。

'TERMINAL' カレント・セッションの端末に対するオペレーティング・システム識別子を戻します。分散 SQL文では、このオプションはローカル・セッションの識別子を戻します。分散環境では、リモートの SELECTに対してのみこのオプションを使用でき、リモートの INSERT、UPDATEまたはDELETEには使用できません。

表表表表 4-2 USERENVオプション(続き)オプション(続き)オプション(続き)オプション(続き)

オプションオプションオプションオプション 戻り値戻り値戻り値戻り値

VALUE ( correlation_variable )

関数 4-121

Page 256: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

VAR_POP

例例例例CREATE TYPE emp_type AS OBJECT (eno NUMBER, ename VARCHAR2(20), salary NUMBER);CREATE TABLE emp_table OF emp_type (primary key (eno, ename));INSERT INTO emp_table VALUES (10, 'jack', 50000);SELECT VALUE(e) FROM emp_table e;

VALUE(E)(ENO, ENAME, SALARY)----------------------------------------------------EMP_TYPE(10, 'jack', 50000)

VAR_POP

構文構文構文構文

用途用途用途用途VAR_POPは、数値の集合にある NULLを削除した後、この集合の母集団分散を戻します。これは、集計関数または分析関数として使用できます。

exprは数値式であり、この関数は NUMBER型の値を戻します。関数が空の集合に適用されると、NULLを戻します。この関数は、次の計算を行います。

(SUM(expr2) - SUM(expr)2 / COUNT(expr)) / COUNT(expr)

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

参照参照参照参照 :

� 4-6ページの「集計関数」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

VAR_POP ( expr )OVER ( analytic_clause )

4-122 Oracle8i SQLリファレンス Vol.1

Page 257: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

VAR_SAMP

集計の例集計の例集計の例集計の例次の例では、EMP表にある給与の母集団分散を計算します。

SELECT VAR_POP(sal) FROM emp;

VAR_POP(SAL)------------ 1298434.31

分析の例分析の例分析の例分析の例次の例では、1998年における月ごとの売上について、累積の母集団および標本分散を計算します。

SELECT s_month, VAR_POP(SUM(s_amount)) OVER (ORDER BY s_month), VAR_SAMP(SUM(s_amount)) OVER (ORDER BY s_month) FROM sales WHERE s_year =1998 GROUP BY s_month;

S_MONTH VAR_POP(SU VAR_SAMP(S---------- ---------- ---------- 6 0 8 440588496 881176992 11 538819892 808229838

VAR_SAMP

構文構文構文構文

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

VAR_SAMP ( expr )OVER ( analytic_clause )

関数 4-123

Page 258: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

VAR_SAMP

用途用途用途用途VAR_SAMPは、数値の集合にある NULLを削除した後、この集合の標本分散を戻します。これは、集計関数または分析関数として使用できます。

exprは数値式であり、この関数は NUMBER型の値を戻します。関数が空の集合に適用されると、NULLを戻します。この関数は、次の計算を行います。

(SUM(expr2) - SUM(expr)2 / COUNT(expr)) / (COUNT(expr) - 1)

この関数は、1つの要素の集合を入力すると VARIANCEは 0を戻し、VAR_SAMPは NULLを戻すということを除いては、VARIANCEに似ています。

集計の例集計の例集計の例集計の例次の例では、emp表にある給与の標本分散を計算します。

SELECT VAR_SAMP(sal) FROM emp;

VAR_SAMP(SAL)------------- 1398313.87

分析の例分析の例分析の例分析の例次の例では、1998年における月ごとの売上について、累積の母集団および標本分散を計算します。

SELECT s_month, VAR_POP(SUM(s_amount)) OVER (ORDER BY s_month), VAR_SAMP(SUM(s_amount)) OVER (ORDER BY s_month) FROM sales WHERE s_year =1998 GROUP BY s_month;

S_MONTH VAR_POP(SU VAR_SAMP(S---------- ---------- ---------- 6 0 8 440588496 881176992 11 538819892 808229838

参照参照参照参照 :

� 4-6ページの「集計関数」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

4-124 Oracle8i SQLリファレンス Vol.1

Page 259: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

VARIANCE

VARIANCE

構文構文構文構文

用途用途用途用途VARIANCEは exprの分散を戻します。これは、集計関数または分析関数として使用できます。

exprの分散の計算結果は、次のようになります。

� exprの行数が 1の場合は 0(ゼロ)

� exprの行数が 1を超える場合は VAR_SAMP

DISTINCTを指定する場合は、analytic_clauseの query_partition_clauseのみ指定できます。ORDER_BY_clauseおよび windowing_clauseは指定できません。

集計の例集計の例集計の例集計の例次の例では、emp表にあるすべての給与の合計を計算します。

SELECT VARIANCE(sal) "Variance" FROM emp; Variance----------1389313.87

参照参照参照参照 : 構文、意味および制限の詳細は、4-8ページの「分析関数」を参照してください。

参照参照参照参照 :

� 4-6ページの「集計関数」を参照してください。

� exprの書式の詳細は、5-2ページの「式」を参照してください。

VARIANCE (

DISTINCT

ALLexpr )

OVER ( analytic_clause )

関数 4-125

Page 260: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

VSIZE

分析の例分析の例分析の例分析の例次の例では、雇用日で順序付けられた部門 30の給与の値の累積分散を戻します。

SELECT ename, sal, VARIANCE(sal) OVER (ORDER BY hiredate) FROM emp WHERE deptno=30;

ENAME SAL VARIANCE(S ---------- ---------- ---------- ALLEN 1600 0 WARD 1250 61250 BLAKE 2850 707500 TURNER 1500 511666.667 MARTIN 1250 444250 JAMES 950 446666.667

VSIZE

構文構文構文構文

用途用途用途用途VSIZEは、exprの内部表現でのバイト数を戻します。exprが NULLの場合は NULLを戻します。

例例例例SELECT ename, VSIZE (ename) "BYTES" FROM emp WHERE deptno = 10; ENAME BYTES---------- ----------CLARK 5KING 4MILLER 6

VSIZE ( expr )

4-126 Oracle8i SQLリファレンス Vol.1

Page 261: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ROUNDおよび TRUNC日付関数

ROUNDおよびおよびおよびおよび TRUNC日付関数日付関数日付関数日付関数表 4-3に、ROUNDおよび TRUNC日付関数で使用できる書式モデル、および日付の丸めと切捨ての単位を示します。デフォルトのモデル DDでは、午前 0時(真夜中)を基準に丸めおよび切捨てを行い、日付を戻します。

表表表表 4-3 ROUNDおよびおよびおよびおよび TRUNC日付関数の日付書式モデル日付関数の日付書式モデル日付関数の日付書式モデル日付関数の日付書式モデル

書式モデル書式モデル書式モデル書式モデル 丸め単位または切捨て単位丸め単位または切捨て単位丸め単位または切捨て単位丸め単位または切捨て単位

CCSCC

4桁の年号の上 2桁より 1大きい数

SYYYYYYYYYEARSYEARYYYYYY

年(7月 1日に切上げ)

IYYYIYIYI

ISO年

Q 四半期(その四半期の 2番目の月の 16日に切上げ)

MONTHMONMMRM

月(16日に切上げ)

WW 年の最初の日と同じ曜日

IW ISO年の最初の日と同じ曜日

W 月の最初の日と同じ曜日

DDDDDJ

DAYDYD

週の開始日

HHHH12HH24

MI 分

関数 4-127

Page 262: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ユーザー定義ファンクション

書式モデル DAY、DYおよび Dによって使用される週の開始日は、NLS_TERRITORY初期化パラメータによって暗黙的に指定されています。

ユーザー定義ファンクションユーザー定義ファンクションユーザー定義ファンクションユーザー定義ファンクションPL/SQLまたは Javaでユーザー定義ファンクションを作成し、SQLまたは SQL関数にはない機能を持たせることができます。ユーザー・ファンクションは、SQL関数を指定できるすべての SQL文に指定できます。式を指定できる場所であれば、どこでも使用できます。

たとえば、SQL文の次の場所でユーザー・ファンクションを使用できます。

� SELECT文の SELECT構文のリスト

� WHERE句の条件

� CONNECT BY句、START WITH句、ORDER BY句および GROUP BY句

� INSERT文の VALUES句

� UPDATE文の SET句

前提条件前提条件前提条件前提条件ユーザー・ファンクションを SQL文で使用するには、トップレベル・ファンクションとして作成するか、またはパッケージ仕様部で宣言する必要があります。

SQLの式の中でユーザー・ファンクションを使用するには、ユーザーがユーザー・ファンクションの EXECUTE権限を持っている必要があります。ユーザー・ファンクションで定義したビューを問い合せるには、そのビューに対する SELECT権限が必要です。ビューから選択するには、個別の EXECUTE権限は必要ありません。

参照参照参照参照 : このパラメータの詳細は、『Oracle8iリファレンス・マニュアル』および『Oracle8i NLSガイド』を参照してください。

参照参照参照参照 :

� ファンクションの作成(ユーザー定義ファンクションの制限を含む)の詳細は、9-42ページの「CREATE FUNCTION」を参照してください。

� ユーザー・ファンクションの作成および使用方法の詳細は、『Oracle8iアプリケーション開発者ガイド 基礎編』を参照してください。

4-128 Oracle8i SQLリファレンス Vol.1

Page 263: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ユーザー定義ファンクション

名前の優先順位名前の優先順位名前の優先順位名前の優先順位SQL文内では、データベースの列名は、パラメータなしの関数名より優先順位が高くなります。たとえば、ユーザー scottが自分のスキーマ内で次の 2つのオブジェクトを作成するとします。

CREATE TABLE emp(new_sal NUMBER, ...);CREATE FUNCTION new_sal RETURN NUMBER IS BEGIN ... END;

その後、次の 2つの文のように、NEW_SALを参照すると emp.new_sal列を参照することになります。

SELECT new_sal FROM emp;SELECT emp.new_sal FROM emp;

new_sal関数にアクセスするには、次のように入力します。

SELECT scott.new_sal FROM emp;

SQLの式内で使用できるユーザー・ファンクションのコール例を次に示します。

circle_area (radius)payroll.tax_rate (empno)scott.payroll.tax_rate (dependent, empno)@ny

例例例例 スキーマ scottから tax_rateユーザー・ファンクションをコールし、tax_table内の sal列と SAL列に対してこの関数を実行し、その結果を income_tax変数に入れるには、次のように指定します。

SELECT scott.tax_rate (ss_no, sal) INTO income_tax FROM tax_table WHERE ss_no = tax_id;

参照参照参照参照 :

� トップレベル・ファンクションの詳細は、9-42ページの「CREATE FUNCTION」を参照してください。

� パッケージ・ファンクションの詳細は、9-118ページの「CREATE PACKAGE」を参照してください。

関数 4-129

Page 264: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ユーザー定義ファンクション

ネーミング規則ネーミング規則ネーミング規則ネーミング規則オプションのスキーマ名またはパッケージ名を 1つのみ指定すると、最初の識別子はスキーマ名またはパッケージ名のいずれかになります。たとえば、PAYROLL.TAX_RATEという参照内の PAYROLLがスキーマ名かパッケージ名かを判断するには、Oracleは次の手順を実行します。

1. カレント・スキーマ内の PAYROLLパッケージをチェックします。

2. PAYROLLパッケージが検出されない場合は、トップレベルの TAX_RATE関数を含むスキーマ名 PAYROLLを検索します。このような関数が検出されない場合は、エラーを戻します。

3. カレント・スキーマ内で PAYROLLパッケージが検出されると、PAYROLLパッケージの中で TAX_RATE関数を検索します。このような関数が検出されない場合は、エラーを戻します。

また、ユーザーが定義したシノニムを使用して、ストアド・トップレベル・ファンクションを参照することもできます。

4-130 Oracle8i SQLリファレンス Vol.1

Page 265: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

式、条件および問

5

式、条件および問合せ式、条件および問合せ式、条件および問合せ式、条件および問合せ

この章では、前半の章で説明されている値、演算子および関数を結合する方法と値を評価する方法について説明します。

この章では、次の内容を説明します。

� 式

� 条件

� 問合せおよび副問合せ

合せ 5-1

Page 266: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

式式式式式は、1つ以上の値、演算子および値を評価する SQL関数の組合せです。一般に、式のデータ型は、その構成要素のデータ型になります。

次の単純式は、値が 4になり、データ型は NUMBER(コンポーネントと同じデータ型)になります。

2*2

次の例は、関数と演算子を使用した複雑な式です。この式は、現在の日付に 7日を加算し、その合計から時間コンポーネントを削除し、結果を CHARデータ型に変換します。

TO_CHAR(TRUNC(SYSDATE+7))

次の場所で式を使用できます。

� SELECT文の SELECT構文のリスト

� WHERE句および HAVING句の条件

� CONNECT BY句、START WITH句および ORDER BY句

� INSERT文の VALUES句

� UPDATE文の SET句

たとえば、次の UPDATE文の SET句で引用符で囲まれた文字列 'smith'のかわりに式を使用することもできます。

SET ename = 'smith';

この SET句では、引用符で囲まれた文字列 'smith'のかわりに、LOWER(ename)を使用しています。

SET ename = LOWER(ename);

次の構文に示すとおり、式にはいくつかの書式があります。

5-2 Oracle8i SQLリファレンス Vol.1

Page 267: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

expr::=

Oracleは、すべての SQL文のすべての部分で、式のすべての書式を受け入れるわけではありません。このマニュアルの他の箇所で、条件、SQL関数または SQL文に exprが示されている場合は、必ず適切な式の表記法を使用してください。次の項では、いくつかの例をあげて、様々な式の書式を説明します。

参照参照参照参照 : 文に指定する式の制限については、第 7章~第 11章の個々の SQL文の説明を参照してください。

simple_expression

compound_expression

variable_expression

built_in_function_expression

user_defined_function_expression

type_constructor_expression

CAST_expression

CURSOR_expression

object_access_expression

DECODE_expression

CASE_expression

expression_list

式、条件および問合せ 5-3

Page 268: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

単純式単純式単純式単純式単純式は、列、疑似列、定数、順序番号または NULLを指定します。

simple_expression::=

スキーマは各ユーザー用の他に、"PUBLIC"(二重引用符が必要)にもなり得ます。その場合、スキーマは表、ビューまたはマテリアライズド・ビューのパブリック・シノニムを修飾する必要があります。"PUBLIC"でのパブリック・シノニムの修飾は、データ操作言語(DML)文でのみサポートされています。データ定義言語(DDL)文ではサポートされていません。

疑似列は、LEVEL、ROWIDまたは ROWNUMのいずれかです。疑似列は、表でのみ使用でき、ビューまたはマテリアライズド・ビューでは使用できません。NCHARおよび NVARCHAR2は、有効な疑似列データ型ではありません。

有効な単純式の例を次に示します。

emp.ename 'this is a text string'10 N'this is an NCHAR string'

参照参照参照参照 : 疑似列の詳細は、2-57ページの「疑似列」を参照してください。

schema .table

view

snapshot

.

column

pseudocolumn

text

number

sequence .CURRVAL

NEXTVAL

NULL

5-4 Oracle8i SQLリファレンス Vol.1

Page 269: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

複合式複合式複合式複合式複合式は、その他の式の組合せを指定します。

compound_expression::=

関数の組合せによっては、適切でないものや拒否されるものもあるため注意してください。たとえば、LENGTH関数は集計関数内では使用できません。

有効な複合式の例を次に示します。

('CLARK' || 'SMITH') LENGTH('MOOSE') * 57 SQRT(144) + 72 my_fun(TO_CHAR(sysdate,'DD-MMM-YY')

変数式変数式変数式変数式変数式は、オプションの標識変数を持つホスト変数を指定します。この書式の式は、埋込みSQL文または Oracleコール・インタフェース(Oracle Call Interface: OCI)・プログラムで処理される SQL文に限り指定できます。

variable_expression::=

( expr )

+

PRIOR

expr

expr

*

/

+

| |

expr

: host_variable

INDICATOR: indicator_variable

式、条件および問合せ 5-5

Page 270: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

有効な変数式の例を次に示します。

:employee_name INDICATOR :employee_name_indicator_var:department_location

組込み関数式組込み関数式組込み関数式組込み関数式組込み関数式は、単一行 SQL関数へのコールを指定します。

built_in_function_expression::=

有効な組込み関数式の例を次に示します。

LENGTH('BLAKE') ROUND(1234.567*43) SYSDATE

関数式関数式関数式関数式関数式は、次のものへのコールを指定します。

� SQL組込み関数(第 4章「関数」を参照)

� オラクル社が提供するパッケージにある関数(『Oracle8i PL/SQLパッケージ・プロシージャ リファレンス』を参照)

� ユーザー定義パッケージにある関数、またはスタンドアロン・ユーザー定義ファンクション(4-128ページの「ユーザー定義ファンクション」を参照)

� ユーザー定義演算子(9-112ページの「CREATE OPERATOR」および『Oracle8i データ・カートリッジ開発者ガイド』を参照)

オプションの式または副問合せのリストは、関数、パッケージまたは演算子の属性と一致する必要があります。スカラー副問合せのみがサポートされています。

参照参照参照参照 : 組込み関数の詳細は、4-2ページの「SQL関数」および 4-6ページの「集計関数」を参照してください。

function(

DISTINCT

ALLexpr

,

)

5-6 Oracle8i SQLリファレンス Vol.1

Page 271: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

compound_expression::=

有効なユーザー定義ファンクション式の例を次に示します。

circle_area(radius)payroll.tax_rate(empno)scott.payrol.tax_rate(dependents, empno)@nyDBMS_LOB.getlength(column_name)

型コンストラクタ式型コンストラクタ式型コンストラクタ式型コンストラクタ式型コンストラクタ式は、型コンストラクタへのコールを指定します。型コンストラクタの引数は、任意の式または副問合せです。スカラー副問合せのみがサポートされています。

type_constructor_expression::=

type_nameがオブジェクト型の場合、引数のリストは、最初の引数の型がオブジェクト型の最初の属性と一致する値をとり、2番目の引数の型がオブジェクト型の 2番目の属性と一致するというように、順序付けられた引数のリストになっている必要があります。コンストラクタの引数の合計数は、オブジェクト型の属性の合計数と一致する必要があります。

type_nameが VARRAYまたはネストした表型の場合、引数のリストには 0個以上の引数を含めることができます。0(ゼロ)の引数は、空コレクションの構造であることを示します。それ以外の場合は、各引数が、型がコレクション型の要素型である要素値に対応します。

type_nameがオブジェクト型オブジェクト型オブジェクト型オブジェクト型、VARRAY、ネストした表型ネストした表型ネストした表型ネストした表型のいずれかであっても、引数の最大数は 1000です。

schema .package .

function

user_defined_operator

@ dblink .(

expr

subquery

,

)

schema .type_name (

expr

subquery

,

)

式、条件および問合せ 5-7

Page 272: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

式の例式の例式の例式の例 次に、型コンストラクタへのコールに使用される式の例を示します。

CREATE TYPE address_t AS OBJECT (no NUMBER, street CHAR(31), city CHAR(21), state CHAR(3), zip NUMBER); CREATE TYPE address_book_t AS TABLE OF address_t;DECLARE /* Object Type variable initialized via Object Type Constructor */ myaddr address_t = address_t(500, 'Oracle Parkway', 'Redwood Shores', 'CA', 94065); /* nested table variable initialized to an empty table via a constructor*/ alladdr address_book_t = address_book_t(); BEGIN /* below is an example of a nested table constructor with two elements specified, where each element is specified as an object type constructor. */ insert into employee values (666999, address_book_t(address_t(500, 'Oracle Parkway', 'Redwood Shores', 'CA', 94065), address_t(400, 'Mission Street', 'Fremont', 'CA', 94555))); END;

副問合せ例副問合せ例副問合せ例副問合せ例 次に、型コンストラクタへのコールに使用される副問合せの例を示します。

CREATE TYPE employee AS OBJECT ( empno NUMBER, ename VARCHAR2(20)); CREATE TABLE emptbl of EMPLOYEE; INSERT INTO emptbl VALUES(7377, 'JOHN'); CREATE TYPE project AS OBJECT ( pname VARCHAR2(25), empref REF employee); CREATE TABLE depttbl (dno number, proj project); INSERT INTO depttbl values(10, project('SQL Extensions', (SELECT REF(p) FROM emptbl p WHERE ename='JOHN')));

5-8 Oracle8i SQLリファレンス Vol.1

Page 273: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

CAST式式式式CAST式は、ある組込みデータ型またはコレクション型値を、別の組込みデータ型またはコレクション型値に変換します。

CAST_expression::=

CASTによって、ある組込みデータ型またはコレクション型値を、別の組込みデータ型またはコレクション型値に変換できます。名前のないオペランド(日付や副問合せの結果セットなど)または名前付きのコレクション(VARRAYまたはネストした表など)を型互換の名前付きコレクションにキャストできます。type_nameは、組込みデータ型またはコレクション型の名前である必要があり、オペランドは、組込みデータ型であるか、またはその値がコレクション値である必要があります。

オペランドでは、exprは組込みデータ型またはコレクション型のいずれかで、subqueryがコレクション型または組込み型の単一値を戻す必要があります。MULTISETは、副問合せの結果セットをとり、コレクション値を戻すように Oracleに知らせます。表 5-1に、どの組込みデータ型が、どの組込みデータ型にキャストできるかを示します(CASTは、LONG型、LONG RAW、LOBデータ型のいずれもサポートしていません)。

名前付きコレクション型を別の名前付きコレクション型にキャストするには、両方のコレクションの要素が同じ型である必要があります。

表表表表 5-1 組込みデータ型のキャスト組込みデータ型のキャスト組込みデータ型のキャスト組込みデータ型のキャスト

キャスト前キャスト前キャスト前キャスト前

キャスト後キャスト後キャスト後キャスト後

CHAR、、、、VARCHAR2

NUMBER DATE RAW ROWID、、、、UROWID

NCHAR、、、、NVARCHAR2

CHAR、、、、VARCHAR2

X X X X X

NUMBER X X

DATE X X

RAW X X

ROWID、、、、UROWID

X Xa

NCHAR、、、、NVARCHAR2

X X X X X

a UROWIDが索引構成表の ROWIDの値を含んでいる場合、UROWIDを ROWIDにキャストすることはできません。

CAST (

expr

( subquery )

MULTISET ( subquery )

AS type_name )

式、条件および問合せ 5-9

Page 274: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

副問合せの結果セットが複数行に評価される可能性がある場合は、MULTISETキーワードを指定する必要があります。副問合せの結果である行は、それらの行がキャストされたコレクション値の要素を形成します。MULTISETキーワードを指定しないと、副問合せは、CAST式ではサポートされないスカラー副問合せとして扱われます。Oracle8iでスカラー副問合せを CAST演算子の引数にすることはできません。

組込みデータ型の例組込みデータ型の例組込みデータ型の例組込みデータ型の例

SELECT CAST ('1997-10-22' AS DATE) FROM DUAL;SELECT * FROM t1 WHERE CAST (ROWID AS VARCHAR2) = '01234';

コレクションの例コレクションの例コレクションの例コレクションの例 次の CASTの例では、次のユーザー定義の型および表を使用します。

CREATE TYPE address_t AS OBJECT (no NUMBER, street CHAR(31), city CHAR(21), state CHAR(2)); CREATE TYPE address_book_t AS TABLE OF address_t; CREATE TYPE address_array_t AS VARRAY(3) OF address_t; CREATE TABLE emp_address (empno NUMBER, no NUMBER, street CHAR(31), city CHAR(21), state CHAR(2)); CREATE TABLE employees (empno NUMBER, name CHAR(31)); CREATE TABLE dept (dno NUMBER, addresses address_array_t);

この例では、副問合せをキャストします。

SELECT e.empno, e.name, CAST(MULTISET(SELECT ea.no, ea.street, ea.city, ea.state FROM emp_address ea WHERE ea.empno = e.empno) AS address_book_t) FROM employees e;

CASTでは、VARRAY型の列をネストした表に変換します。

SELECT CAST(d.addresses AS address_book_t) FROM dept d WHERE d.dno = 111;

次の例では、ORDER BY句で MULTISET式をキャストします。

CREATE TABLE projects (empid NUMBER, projname VARCHAR2(10));CREATE TABLE employees (empid NUMBER, ename VARCHAR2(10));CREATE TYPE projname_table_type AS TABLE OF VARCHAR2(10);

5-10 Oracle8i SQLリファレンス Vol.1

Page 275: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

前述のスキーマでの MULTISET式の例を次に示します。

SELECT e.ename, CAST(MULTISET(SELECT p.projname FROM projects p WHERE p.empid=e.empid ORDER BY p.projname) AS projname_table_type) FROM employees e;

CURSOR式式式式CURSOR式は、ネストしたカーソルを戻します。この書式の式は、PL/SQLの REFカーソルと同様です。

CURSOR_expression::=

ネストしたカーソルは、含まれている行が親カーソルからフェッチされると、暗黙的にオープンされます。ネストしたカーソルは、次の場合にのみクローズされます。

� ユーザーによって明示的にクローズされたとき

� 親カーソルが再実行されたとき

� 親カーソルがクローズされたとき

� 親カーソルが取り消されたとき

� 親カーソルの 1つでのフェッチ時にエラーが発生したとき(クリーン・アップの一部としてクローズされる)

制限事項制限事項制限事項制限事項 : CURSOR式には次の制限があります。

� ネストしたカーソルは、他の問合せ式の中でネストされていない SELECT文の中でのみ表示できます。ただし、CURSOR式自体の副問合せの場合を除きます。

� ネストしたカーソルは、問合せ指定の最も外側の SELECT構文のリストのみで表示できます。

� ネストしたカーソルはビューに表示できません。

� ネストしたカーソルに対して、BIND操作および EXECUTE操作は実行できません。

CURSOR ( subquery )

式、条件および問合せ 5-11

Page 276: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

例例例例

SELECT d.deptno, CURSOR(SELECT e.empno, CURSOR(SELECT p.projnum, p.projname FROM projects p WHERE p.empno = e.empno) FROM TABLE(d.employees) e) FROM dept d WHERE d.dno = 605;

オブジェクト・アクセス式オブジェクト・アクセス式オブジェクト・アクセス式オブジェクト・アクセス式オブジェクト・アクセス式は、属性の参照およびメソッドの起動を指定します。

object_access_expression::=

columnパラメータはオブジェクトまたは REF列です。

ある型のメンバー関数が SQL文のコンテキストでコールされると、SELF引数が NULLの場合に、OracleはNULLを戻し、関数は起動されません。

この項の例では、次のユーザー定義の型と表を使用します。

CREATE OR REPLACE TYPE employee_t AS OBJECT (empid NUMBER, name VARCHAR2(31), birthdate DATE, MEMBER FUNCTION age RETURN NUMBER, PRAGMA RESTRICT_REFERENCES (age, RNPS, WNPS, WNDS) );

CREATE OR REPLACE TYPE BODY employee_t AS MEMBER FUNCTION age RETURN NUMBER IS var NUMBER; BEGIN var := TRUNC(MONTHS_BETWEEN(SYSDATE, birthdate) /12); RETURN(var);

table_alias . column .

object_table_alias

attribute

.. method (

argument

,

)

method (argument

,

)

5-12 Oracle8i SQLリファレンス Vol.1

Page 277: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

END; END;

CREATE TABLE department (dno NUMBER, manager EMPLOYEE_T);

例例例例 次の例では、前述の例で定義したオブジェクト列とメソッドを更新し、そこから選択します。

UPDATE department d SET d.manager.empid = 100;SELECT d.manager.name, d.manager.age() FROM department d;

DECODE式式式式DECODE式は、特別な DECODE構文を使用します。

DECODE_expression::=

この式を評価するために、Oracleは各 search値と exprを 1つずつ比較します。exprがsearchと等しい場合、Oracleは対応する resultを戻します。一致しない場合はdefaultが戻されます。defaultが指定されていない場合はNULLが戻されます。exprと searchが文字データを含む場合、Oracleは非空白埋め比較方法で比較します。

search、result、defaultの値を式から導出できます。Oracleは、exprと比較する前に各 search値を評価します。exprと比較する前に、すべての search値を評価するわけではありません。その結果、exprと等しい searchが見つかると、Oracleはその後のsearchを評価しません。

比較する前に、Oracleは exprと各 search値を、最初の search値のデータ型に自動的に変換します。Oracleは、戻り値を最初の resultと同じデータ型に自動的に変換します。最初の resultのデータ型が CHARの場合、または最初の resultがNULLの場合、Oracleは戻り値を VARCHAR2データ型の値に変換します。

DECODE式では、Oracleは 2つの NULLを同等とみなします。exprが NULLの場合、Oracleは最初の search値の resultも NULLとして戻します。

DECODE式のコンポーネントの最大数は、expr、search、result、defaultを含めて255です。

DECODE ( expr , search , result

,, default

) ;

式、条件および問合せ 5-13

Page 278: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

例例例例 次の式は値 deptnoをデコードします。deptnoが 10の場合、式は 'ACCOUNTING'を戻します。同様に、DEPTNOが 20の場合、式は 'RESEARCH'を戻します。deptnoが 10、20、30、40のいずれでもない場合、式は 'NONE'を戻します。

DECODE (deptno,10, 'ACCOUNTING', 20, 'RESEARCH', 30, 'SALES', 40, 'OPERATION', 'NONE')

CASE式式式式CASE式を使用すると、プロシージャを起動せずに、SQL文で IF ... THEN ... ELSE論理を使用できます。構文は次のとおりです。

CASE_expression::=

Oracleは、conditionを満たしている最初の WHEN ... THENの組を検索します。

� このような組が検索された場合、CASE式は expr1を戻します。

� このような組が検索されなかった場合、次の値を戻します。

� ELSE句が指定されている場合は expr2

� ELSE句が指定されていない場合は NULL

expr1または expr2の 1つ以上の項目が、NULL以外の値である必要があります。

参照参照参照参照 :

� 比較規則については、2-25ページの「データ型の比較規則」を参照してください。

� データ型変換については、2-29ページの「データ変換」を参照してください。

� 暗黙的な変換のデメリットについては、2-31ページの「暗黙的なデータ変換と明示的なデータ変換」を参照してください。

CASE WHEN condition THEN expr1ELSE expr2

END

5-14 Oracle8i SQLリファレンス Vol.1

Page 279: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

条件

例例例例 次の文では、EMP表にあるすべての従業員の給与の平均が検索されます。従業員の給与が $2000より低い場合、CASE式はかわりに $2000を使用します。

SELECT AVG(CASE WHEN e.sal > 2000 THEN e.sal ELSE 2000 END) from emp e;

式のリスト式のリスト式のリスト式のリスト式のリストは、カンマで区切られた一連の式です。全体は、カッコで囲みます。

expression_list::=

式のリストには 1000個までの式を指定できます。有効な式のリストの例を次に示します。

(10, 20, 40) ('SCOTT', 'BLAKE', 'TAYLOR')(LENGTH('MOOSE') * 57, -SQRT(144) + 72, 69)

条件条件条件条件条件は、1つ以上の式と論理演算子の組合せで指定し、TRUE、FALSEまたは UNKNOWNのいずれかに評価されます。SQL文の中に conditionが示されている場合は、必ずこの構文を使用してください。

条件は、次の文の WHERE句で使用できます。

� DELETE

� SELECT

� UPDATE

また、SELECT文の次の句で使用することもできます。

� WHERE

� START WITH

注意注意注意注意 : CASE式の引数の最大数は 255です。WHEN ... THENの各組は、2つの引数として数えます。128種類の制限を超えないようにするために、CASE式をネストできます。つまり、expr1自体を CASE式にすることができます。

( expr

,

)

式、条件および問合せ 5-15

Page 280: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

条件

� CONNECT BY

� HAVING

条件は、論理データ型であるともいえます。ただし、Oracleで、正式にこのようなデータ型をサポートしているわけではありません。

次のような単純な条件は、常に TRUEに評価されます。

1 = 1

次のやや複雑な条件は、sal値を comm値に加算し(NULLは 0で置き換える)、その合計が定数 2500より大きいかどうかを判断します。

NVL(sal, 0) + NVL(comm, 0) > 2500

論理演算子を使用すると、複数の条件を単一の条件に結合できます。たとえば、次のようにAND演算子を使用して 2つの条件を結合できます。

(1 = 1) AND (5 < 7)

有効な条件の例を次に示します。

name = 'SMITH' emp.deptno = dept.deptno hiredate > ’01-JAN-88’ job IN ('PRESIDENT', 'CLERK', 'ANALYST') sal BETWEEN 500 AND 1000 comm IS NULL AND sal = 2000

条件には、次の構文で示すとおり、複数の書式があります。

condition::=

simple_comparison_condition

group_comparison_condition

membership_condition

range_condition

NULL_condition

EXISTS_condition

LIKE_condition

compound_condition

5-16 Oracle8i SQLリファレンス Vol.1

Page 281: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

条件

次の項では、様々な形式の条件を説明します。

単純比較条件単純比較条件単純比較条件単純比較条件単純比較条件は、式または副問合せの結果の比較方法を指定します。

simple_comparison_condition::=

参照参照参照参照 : 文に指定する条件の制限については、第 7章~第 11章にある各文の説明を参照してください。

参照参照参照参照 : 比較方法については、3-5ページの「比較演算子」を参照してください。

expr

=

!=

^=

<>

>

<

>=

<=

expr

( subquery )

expr_list

=

!=

^=

<>

( subquery )

式、条件および問合せ 5-17

Page 282: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

条件

グループ比較条件グループ比較条件グループ比較条件グループ比較条件グループ比較条件は、リストまたは副問合せ内の任意またはすべてのメンバーの比較方法を指定します。

group_comparison_condition::=

メンバーシップ条件メンバーシップ条件メンバーシップ条件メンバーシップ条件メンバーシップ条件は、リストまたは副問合せ内のメンバーシップをテストします。

membership_condition::=

参照参照参照参照 : 11-88ページの「SELECTおよび副問合せ」を参照してください。

expr

=

!=

^=

<>

>

<

>=

<=

ANY

SOME

ALL

expr_list

( subquery )

expr_list

=

!=

^=

<>

ANY

SOME

ALL

(expr_list

subquery

,

)

exprNOT

INexpr_list

( subquery )

expr_listNOT

IN (expr_list

subquery

,

)

5-18 Oracle8i SQLリファレンス Vol.1

Page 283: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

条件

範囲条件範囲条件範囲条件範囲条件範囲条件は、範囲に含まれているかどうかをテストします。

range_condition::=

NULL条件条件条件条件NULL条件は、NULLかどうかをテストします。

NULL_condition::=

EXISTS条件条件条件条件EXISTS条件は、副問合せに行が存在するかどうかをテストします。

EXISTS_condition::=

LIKE条件条件条件条件LIKE条件は、パターン一致を含むかどうかをテストします。

LIKE_condition::=

exprNOT

BETWEEN expr AND expr

expr ISNOT

NULL

EXISTS ( subquery )

char1NOT

LIKE char2ESCAPE ’ esc_char ’

式、条件および問合せ 5-19

Page 284: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

問合せおよび副問合せ

複合条件複合条件複合条件複合条件複合条件は、異なる条件の組合せを指定します。

compound_condition::=

問合せおよび副問合せ問合せおよび副問合せ問合せおよび副問合せ問合せおよび副問合せ問合せ問合せ問合せ問合せとは、1つ以上の表またはビューからデータを検索する操作のことです。このマニュアルでは、トップレベルの SELECT文を問合せ問合せ問合せ問合せといい、他の SQL文の中でネストした問合せを副問合せ副問合せ副問合せ副問合せといいます。

この項では、問合せおよび副問合せの種類およびその使用方法について説明します。

単純な問合せの作成単純な問合せの作成単純な問合せの作成単純な問合せの作成SELECTキーワードの後、FROM句の前にある式のリストを、SELECT構文のリストといいます。exprの各式は、一連の戻された行の 1つの列の名前となります。table.*は一連の列となり、表が作成されたときに定義された順序で表内の各列に 1つずつ配置されます。各式のデータ型および長さは、式の要素によって決まります。

複数の表に同じ名前の列がある場合、表の名前でその列名を修飾する必要があります。それ以外の場合は、完全に修飾した列名はオプションとなります。ただし、明示的に表および列の参照を修飾することをお薦めします。表および列名を完全に修飾することで、Oracleの作業が少なくなります。

列の別名 c_aliasを使用して、SELECT構文のリストの前の式にラベルを付けると、列が新しい見出し付きで表示されます。別名によって、問合せ中に SELECT構文のリストの項目を効果的に改名できます。別名は ORDER BY句の中で使用できますが、問合せ内のその他の句には使用できません。

参照参照参照参照 : すべての句のすべての構文、キーワードおよびパラメータの意味については、11-88ページの「SELECTおよび副問合せ」を参照してください。

( condition )

NOT condition

conditionAND

ORcondition

5-20 Oracle8i SQLリファレンス Vol.1

Page 285: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

問合せおよび副問合せ

Oracleオプティマイザに指示(ヒント)を与えるために、SELECT文中でコメントを使用できます。オプティマイザは、これらのヒントを使用して文の実行計画を選択します。

階層問合せ階層問合せ階層問合せ階層問合せ表に階層データが含まれる場合、階層問合せ句を使用して階層順に行を選択することができます。

� START WITH句では、階層のルート行を指定します。

� CONNECT BY句では、階層の親 /子の行の関連を指定します。conditionの部分には、PRIOR演算子を使用して親である行を参照させる必要があるものもあります。3-16ページの PRIOR演算子を参照してください。

� WHERE句では、階層の他の行に影響を与えずに、問合せによって戻された行を制限します。

Oracleは階層問合せ句からの情報を使用して、次のステップで階層を形成します。

1. Oracleは、階層のルート行を選択します。これらの行は、START WITH条件を満たすものです。

2. Oracleは、各ルート行の子である行を選択します。子である各行は、1つのルート行に関して CONNECT BY条件を満たす必要があります。

3. Oracleは、子である行の連続生成を選択します。まず、ステップ 2で戻された子である行を選択し、その行にある子を選択します(以降同様に続きます)。現在の親である行に関する CONNECT BY条件を評価することによって、常に子を選択します。

4. 問合せに WHERE句が含まれる場合、Oracleは、階層から WHERE句の条件を満たさないすべての行を排除します。条件を満たさない子である行すべてを排除するのではなく、各行に関してこの条件をそれぞれ評価します。

5. Oracleは、図 5-1に示す順序で行を戻します。この図では、親である行の下に子である行が表示されます。

参照参照参照参照 : ヒントの詳細は、2-65ページの「ヒント」および『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

START WITH conditionCONNECT BY condition

式、条件および問合せ 5-21

Page 286: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

問合せおよび副問合せ

図図図図 5-1 階層問合せ階層問合せ階層問合せ階層問合せ

親である行に対する子を検索するために、Oracleは、親である行の CONNECT BY条件のPRIOR式、および各行の他の式を表の中で評価します。条件が TRUEとなる行が、その親である行の子です。CONNECT BY条件に、問合せによって選択された行をさらにフィルタ処理するための他の条件を含めることができます。CONNECT BY条件に、副問合せを含めることはできません。

CONNECT BY条件が階層のループになった場合、Oracleはエラーを戻します。1つの行が別の行の親(または親の親または祖先)および子(または子の子または子孫)の場合、ループが発生します。

問合せ結果のソート問合せ結果のソート問合せ結果のソート問合せ結果のソートORDER BY句を使用すると、問合せによって選択された行を順序付けることができます。位置のソートは次のような場合に有効です。

� 長い SELECT構文のリストの式によって順序付けるためには、ORDER BY句で全体の式を複製するのではなく、その位置を指定することができます。

� 複合問合せ(集合演算子 UNION、INTERSECT、MINUSまたは UNION ALLを含む)では、ORDER BY句に明示的な式ではなく、位置を使用する必要があります。また ORDER BY句は、最後のコンポーネントの問合せにのみ使用できます。ORDER BY句は、複合問合せ全体によって戻されたすべての行を順序付けます。

参照参照参照参照 : 階層問合せでの LEVEL疑似列の処理方法については、2-60ページの「LEVEL」を参照してください。

1

7

8

ルート�

2 9

3 4 10 12

1165

5-22 Oracle8i SQLリファレンス Vol.1

Page 287: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

問合せおよび副問合せ

ORDER BY句による値のソートは、NLS_SORT初期化パラメータによって明示的に指定するか、NLS_LANGUAGE初期化パラメータによって暗黙的に指定します。これらのパラメータについては、『Oracle8i NLSガイド』を参照してください。ALTER SESSION文を使用して、1つの言語ソート順序から別の言語ソート順序に変更することができます。ORDER BY句のNLS_SORTパラメータと NLSSORT関数を使用して、1つの問合せに特定のソート基準を指定することもできます。

結合結合結合結合結合結合結合結合とは、2つ以上の表、ビューまたはマテリアライズド・ビュー(スナップショット)の行を結合する問合せです。複数の表が問合せの FROM句に指定される場合、Oracleは結合を実行します。問合せの SELECT構文のリストは、これらの表のいずれかの任意の列を選択することができます。これらの表のいずれか 2つに共通の列名を持つものがある場合、問合せの間、これらの列に対してすべての参照を明確にするために表の名前を付けて修飾する必要があります。

結合条件結合条件結合条件結合条件結合問合せの大部分は、表ごとに異なる 2つの列を比較する WHERE句条件を含んでいます。このような条件を結合条件結合条件結合条件結合条件と呼びます。結合を実行するために、Oracleは各表に 1つずつ含まれている列を結合し、結合条件が TRUEになるようにします。結合条件の列を SELECT構文のリストに表示する必要はありません。

3つ以上の表を結合するために、Oracleはまず列を比較する結合条件に基づいて 2つの表を結合し、結合された表と新規の表の列を含む結合条件に基づいて、さらにもう 1つの表を結合します。すべての表が結果に結合されるまで、このプロセスを継続します。オプティマイザは、Oracleが結合条件に基づいて表を結合する順序、表の索引、およびコストベースの最適化アプローチを行う場合の表の統計を決定します。

結合条件の他に、結合問合せの WHERE句にも、1つの表のみの列を示す他の条件を指定することができます。これらの条件は、結合問合せによって戻された列をさらに制限することができます。

式、条件および問合せ 5-23

Page 288: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

問合せおよび副問合せ

等価結合等価結合等価結合等価結合等価結合等価結合等価結合等価結合とは、等価演算子を含む結合条件での結合のことです。等価結合は、指定した列に同等の値を持つ列を結合します。オプティマイザが結合の実行を選択する内部アルゴリズムによって、1つの表の等価結合条件における列の合計サイズは、データ・ブロックのサイズ以下に制限される可能性があります。データ・ブロックのサイズは、初期化パラメータDB_BLOCK_SIZEによって指定されます。

内部結合内部結合内部結合内部結合内部結合内部結合内部結合内部結合とは、内部の表結合のことです。この表は FROM句に 2回指定され、結合条件の列名を修飾する表の別名が続きます。内部結合を実行するために、Oracleは結合条件を満たす表の行を結合して戻します。

直積演算直積演算直積演算直積演算結合問合せの 2つの表に結合条件がない場合、Oracleは直積演算直積演算直積演算直積演算を戻します。1つの表の各列を別の表の各行に結合します。直積演算は常に多数の行を生成するため、非常に有効です。たとえば、それぞれが 100行を持つ 2つの表の直積演算は 10,000行です。特に直積演算を必要としない限り、常に結合条件を含みます。問合せが 3つ以上の表を結合し、特定の組に対して結合条件を指定しない場合、オプティマイザは、中間の直積演算を生成しないように結合順序を選択する可能性があります。

外部結合外部結合外部結合外部結合外部結合は、単純結合の結果を拡張します。外部結合外部結合外部結合外部結合は、結合条件を満たすすべての行と、ある特定の表の結合条件を満たす行を除いたすべての行を戻します。そのような行は、単純結合では戻りません。表 Aおよび Bの外部結合を行い、Aからすべての行を戻す問合せを書き込むために、結合条件で外部結合演算子(+)を Bのすべての列に適用します。Bに一致する行のない Aのすべての行に関して、Oracleは、Bの列を含む任意の SELECT構文のリストの式に NULLを戻します。

外部結合の問合せには、次の規則および制限があります。

� (+)演算子は、WHERE句または FROM句の左相関のコンテキスト(TABLE句を指定する場合)にのみ指定でき、表またはビューの列にのみ適用されます。

� Aおよび Bが複数の結合条件によって結合される場合、これらの条件のすべてにおいて(+)演算子を使用する必要があります。使用しない場合、Oracleは単純結合の結果である行のみを戻しますが、外部結合の結果がないことを示す警告やエラーは出力しません。

参照参照参照参照 : 11-109ページの「等価結合の例」を参照してください。

参照参照参照参照 : 11-110ページの「内部結合の例」を参照してください。

5-24 Oracle8i SQLリファレンス Vol.1

Page 289: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

問合せおよび副問合せ

� (+)演算子は任意の式ではなく、列にのみ適用することができます。ただし、任意の式には(+)演算子でマークされた列を含めることができます。

� (+)演算子を含む条件は、OR論理演算子を使用する他の条件と結合できません。

� 条件は、IN比較演算子を使用して、(+)演算子でマークされた列を式と比較できません。

� 条件は、(+)演算子でマークされた列を副問合せと比較できません。

WHERE句に表 Bの列と定数を比較する条件が含まれる場合、Oracleがこの列に対してNULLを生成する表 Aの列を戻すように、(+)演算子をこの列に適用する必要があります。それ以外の場合、Oracleは単純結合の結果のみを戻します。

2組以上の表の外部結合を行う問合せにおいて、単一表は他の 1つの表のみに対して NULL生成された表になることができます。そのため、Aと Bの結合条件および Bと Cの結合条件における Bの列に、(+)演算子を適用することはできません。

副問合せの使用副問合せの使用副問合せの使用副問合せの使用副問合せ副問合せ副問合せ副問合せは、複数部分の問合せに応答します。たとえば、Taylorの部門で働いている人を判断するには、まず Taylorが働く部門を判断する副問合せを使用できます。その後、親SELECT文で元の問合せに応答することができます。SELECT文の FROM句の副問合せは、インライン・ビューインライン・ビューインライン・ビューインライン・ビューとも呼ばれます。また、SELECT文の WHERE句の副問合せは、ネストネストネストネストした副問合せした副問合せした副問合せした副問合せとも呼ばれます。

副問合せには、別の副問合せを含むことができます。トップレベル問合せの FROM句内の副問合せレベルの数には、制限がありません。WHERE句には最大 255レベルの副問合せをネストできます。

副問合せの表が、含まれる文の表と同じ名前を持つ場合、含まれる文の表の列に表名または別名で参照の接頭辞を付ける必要があります。文をさらに読みやすくするには、常に、表、ビューまたはマテリアライズド・ビューの名前または別名で副問合せの列を修飾します。

参照参照参照参照 : 外部結合の構文については、11-88ページの「SELECTおよび副問合せ」を参照してください。

式、条件および問合せ 5-25

Page 290: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

問合せおよび副問合せ

副問合せが親文で参照する表の列を参照する場合、Oracleは相関副問合せ相関副問合せ相関副問合せ相関副問合せを行います。相関副問合せは、親文によって処理された各列を 1回評価します。親文は、SELECT、UPDATEまたは DELETE文の可能性があります。

相関副問合せは、応答が親文によって処理された各列の値に依存する問合せに応答します。たとえば、相関副問合せを使用して、部門内で給与が平均給与以上の従業員を判断することができます。この場合、相関副問合せは独自で各部門の平均給与を計算します。

スカラー副問合せスカラー副問合せスカラー副問合せスカラー副問合せでは、1つの行から 1列値を正確に戻します。INSERT文の VALUE句内で値を指定する場合または引数の型コンストラクタ式やユーザー定義ファンクション式の引数を指定する場合は、式のかわりにスカラー副問合せを使用できます。

副問合せは、次の用途に使用します。

� INSERTまたは CREATE TABLE文のターゲット表に挿入する一連の列を定義します。

� CREATE VIEWまたは CREATE MATERIALIZED VIEW文のビューまたはマテリアライズド・ビュー(スナップショット)に含める一連の列を定義します。

� UPDATE文の既存の列に割り当てる 1つ以上の値を定義します。

� SELECT、UPDATEおよび DELETE文の WHERE句、HAVING句または START WITH句における条件に対する値を定義します。

� INSERT ... VALUESリストの指定した列に値を挿入します(スカラー問合せのみ)。

� 型コンストラクタ式またはユーザー定義ファンクション式の引数に値を指定します(スカラー副問合せのみ)。

� 含まれる問合せによって操作される表を定義します。

表名を指定する場合と同様に、問合せを含む FROM句に副問合せを指定することによってこれらのことを行います。INSERT、UDPATEおよび DELETE文においても、このようにして表のかわりに副問合せを使用することができます。

使用された副問合せは、外部参照ではなく、副問合せ内で定義された相関変数のみを使用することができます。外部参照(左相関副問合せ)は、SELECT文の FROM句でのみ使用できます。

参照参照参照参照 : 11-118ページの「相関副問合せの例」を参照してください。

参照参照参照参照 : 11-96ページの「table_collection_expression」を参照してください。

5-26 Oracle8i SQLリファレンス Vol.1

Page 291: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

問合せおよび副問合せ

ネストした副問合せのネスト解除ネストした副問合せのネスト解除ネストした副問合せのネスト解除ネストした副問合せのネスト解除副問合せは、親である文の WHERE句内にあるときはネストされています。ネストした副問合せで文を評価する場合、Oracleは、副問合せ部分を複数回評価する必要があり、効果的なアクセス・パスまたは結合を見逃してしまう可能性があります。

副問合せのネスト解除副問合せのネスト解除副問合せのネスト解除副問合せのネスト解除によって、副問合せの本体がネスト解除され、その副問合せを含む文の本体に結合されます。これによって、アクセス・パスおよび結合の評価時に、オプティマイザが副問合せと文を 1つのものと判断します。オプティマイザは、ほぼすべての副問合せをネスト解除できますが、いくつか例外があります。これらの例外には、CONNECT BYまたは START WITH句、ROWNUM疑似列、集合演算子の 1つ、ネストした集計関数、または副問合せの直接的な外部問合せブロックではない問合せへの相関参照が含まれます。

制約がない場合、オプティマイザは、次のネストした副問合せを自動的にネスト解除します(ただし、ネスト解除しない場合もあります)。

� 相関関係のない IN副問合せ

� INおよび EXISTS相関副問合せ(集計関数または GROUP BY句を含まない場合)

ネスト解除された拡張副問合せネスト解除された拡張副問合せネスト解除された拡張副問合せネスト解除された拡張副問合せを行うには、次のタイプの副問合せをネスト解除するようにオプティマイザに指示します。

� 副問合せに HASH_AJまたは MERGE_AJヒントを指定して、NOT IN副問合せをネスト解除します。

� 副問合せに UNNESTヒントを指定して、その他の副問合せをネスト解除します。

DUAL表からの選択表からの選択表からの選択表からの選択DUALは、データ・ディクショナリとともに Oracleによって自動的に作成された表です。DUALは、ユーザー SYSのスキーマにありますが、すべてのユーザーが DUALという名前でアクセスすることができます。DUALは、VARCHAR2 (1)として定義されている DUMMY列を持ち、「X」値を持つ行を含みます。DUAL表から選択することは、定数式を SELECT文で計算する場合に便利です。DUALには 1行以外存在しないため、定数は 1回のみ戻されます。一方で、任意の表から定数、疑似列または式を選択できますが、値は表の行の数のみ戻されます。

参照参照参照参照 : ヒントの詳細は、第 2章「Oracle SQLの基本要素」を参照してください。

参照参照参照参照 : DUALの定数値を選択する例については、4-2ページの「SQL関数」を参照してください。

式、条件および問合せ 5-27

Page 292: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

問合せおよび副問合せ

分散問合せ分散問合せ分散問合せ分散問合せOracleの分散データベース・システム・アーキテクチャによって、Net8および Oracle Serverを使用するリモート・データベースにアクセスできます。名前の最後に @dblinkを追加して、リモート表、ビューまたはマテリアライズド・ビューを識別できます。dblinkは、リモート表、ビューまたはマテリアライズド・ビューを含むデータベースへのデータベース・リンクの完全な名前または部分的な名前である必要があります。

分散問合せの制限分散問合せの制限分散問合せの制限分散問合せの制限分散問合せには、現在、FOR UPDATE句によってロックされたすべての表、および問合せによって選択された LONG列を持つすべての表が、同じデータベース上に位置している必要があります。たとえば、次の文はエラーになります。

SELECT emp_ny.* FROM emp_ny@ny, dept WHERE emp_ny.deptno = dept.deptno AND dept.dname = 'ACCOUNTING' FOR UPDATE OF emp_ny.sal;

次の文は、nyデータベース上の emp_review表から LONG値の long_columnを選択して、ローカル・データベースの emp表をロックするためエラーになります。

SELECT emp.empno, review.long_column, emp.sal FROM emp, emp_review@ny review WHERE emp.empno = emp_review.empno FOR UPDATE OF emp.sal;

また、Oracleは現在、リモート表にあるユーザー定義型またはオブジェクト REFを選択する分散問合せをサポートしていません。

参照参照参照参照 : データベース・リンクの参照方法の詳細は、2-88ページの「リモート・データベース内のオブジェクトの参照」を参照してください。

5-28 Oracle8i SQLリファレンス Vol.1

Page 293: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL文につ

6

SQL文について文について文について文について

この章では、様々な種類の Oracle SQL文について説明し、タスクに対する適切な SQL文の検索方法を示します。

この章では、次の内容を説明します。

� SQL文の概要

� データベース・タスクに使用する SQL文の検索

いて 6-1

Page 294: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL文の概要

SQL文の概要文の概要文の概要文の概要次の項にある表は、SQL文の機能の概要について、次のカテゴリに分類して説明しています。

� データ定義言語(DDL)文

� データ操作言語(DML)文

� トランザクション制御文

� セッション制御文

� システム制御文

データ定義言語(データ定義言語(データ定義言語(データ定義言語(DDL)文)文)文)文データ定義言語(DDL)文によって、次のタスクを実行できます。

� スキーマ・オブジェクトの作成、変更および削除

� 権限およびロールの付与および取消し

� 表、索引またはクラスタ上の情報の分析

� 監査オプションの構築

� データ・ディクショナリへのコメントの追加

CREATE、ALTERおよび DROPコマンドは、特定のオブジェクトに対して排他的アクセスを必要とします。たとえば、別のユーザーが特定の表でトランザクションをオープンしている場合、ALTER TABLE文は実行できません。

GRANT、REVOKE、ANALYZE、AUDITおよび COMMENTコマンドは、特定のオブジェクトに対する排他的アクセスを必要としません。たとえば、他のユーザーが表を更新しているときでも、その表を分析できます。

Oracleは、暗黙的にすべての DDL文の前後で現在のトランザクションをコミットします。

DDL文の多くは、Oracleにスキーマ・オブジェクトを再コンパイルまたは再認可させることができます。Oracleがスキーマ・オブジェクトを再コンパイルまたは再認可する方法、および DDL文によってそれを実行する環境については、『Oracle8i概要』を参照してください。

DDL文は、DBMS_SQLパッケージを使用した PL/SQLによってサポートされます。

表 6-1に、DDL文のリストを示します。

参照参照参照参照 : 『Oracle8i PL/SQLパッケージ・プロシージャ リファレンス』を参照してください。

6-2 Oracle8i SQLリファレンス Vol.1

Page 295: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL文の概要

表表表表 6-1 データ定義言語文データ定義言語文データ定義言語文データ定義言語文

ALTER CLUSTER

ALTER DATABASE

ALTER DIMENSION

ALTER FUNCTION

ALTER INDEX

ALTER MATERIALIZED VIEW / SNAPSHOT

ALTER MATERIALIZED VIEW / SHAPSHOT LOG

ALTER PACKAGE

ALTER PROCEDURE

ALTER PROFILE

ALTER RESOURCE COST

ALTER ROLE

ALTER ROLLBACK SEGMENT

ALTER SEQUENCE

ALTER SNAPSHOT

ALTER SHAPSHOT LOG

ALTER TABLE

ALTER TABLESPACE

ALTER TRIGGER

ALTER TYPE

ALTER USER

ALTER VIEW

ANALYZE

ASSOCIATE STATISTICS

AUDIT

COMMENT

CREATE CLUSTER

CREATE CONTEXT

CREATE CONTROLFILE

CREATE DATABASE

CREATE DATABASE LINK

CREATE DIMENSION

CREATE DIRECTORY

CREATE FUNCTION

CREATE INDEX

CREATE INDEXTYPE

CREATE LIBRARY

CREATE MATERIALIZED VIEW / SHAPSHOT

CREATE MATERIALIZED VIEW / SNAPSHOT LOG

CREATE OPERATOR

CREATE PACKAGE

CREATE PACKAGE BODY

CREATE PROCEDURE

CREATE PROFILE

CREATE ROLE

CREATE ROLLBACK SEGMENT

CREATE SCHEMA

CREATE SEQUENCE

CREATE SHAPSHOT

CREATE SNAPSHOT LOG

CREATE SYNONYM

CREATE TABLE

CREATE TABLESPACE

CREATE TEMPORARY TABLESPACE

CREATE TRIGGER

CREATE TYPE

CREATE USER

CREATE VIEW

DISASSOCIATE STATISTICS

DROP CLUSTER

DROP CONTEXT

DROP DATABASE LINK

DROP DIMENSION

DROP DIRECTORY

DROP FUNCTION

DROP INDEX

DROP INDEXTYPE

DROP LIBRARY

DROP MATERIALIZED VIEW / SNAPSHOT

DROP MATERIALIZED VIEW / SNAPSHOT LOG

DROP OPERATOR

DROP PACKAGE

DROP PROCEDURE

DROP PROFILE

DROP ROLE

DROP ROLLBACK SEGMENT

DROP SEQUENCE

DROP SNAPSHOT

DROP SNAPSHOT LOG

DROP SYNONYM

DROP TABLE

DROP TABLESPACE

DROP TRIGGER

DROP TYPE

DROP USER

DROP VIEW

GRANT

NOAUDIT

RENAME

REVOKE

TRUNCATE

SQL文について 6-3

Page 296: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL文の概要

データ操作言語(データ操作言語(データ操作言語(データ操作言語(DML)文)文)文)文データ操作言語(DML)文は、既存スキーマ・オブジェクトのデータを問い合せ、操作します。次の文は、現在のトランザクションを暗黙的にコミットしません。

CALLおよび EXPLAIN PLAN文は、動的に実行されるときにのみ PL/SQLでサポートされます。他のすべての DML文は、PL/SQLで完全にサポートされます。

トランザクション制御文トランザクション制御文トランザクション制御文トランザクション制御文トランザクション制御文は、DML文で行った変更を管理します。

COMMITおよび ROLLBACKコマンドの特定書式以外のトランザクション制御文は、PL/SQLでサポートされます。制限については、8-131ページの「COMMIT」および 11-83ページの「ROLLBACK」を参照してください。

表表表表 6-2 データ操作言語文データ操作言語文データ操作言語文データ操作言語文

文文文文

CALL

DELETE

EXPLAIN PLAN

INSERT

LOCK TABLE

SELECT

UPDATE

表表表表 6-3 トランザクション制御文トランザクション制御文トランザクション制御文トランザクション制御文

文文文文

COMMIT

ROLLBACK

SAVEPOINT

SET TRANSACTION

6-4 Oracle8i SQLリファレンス Vol.1

Page 297: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

セッション制御文セッション制御文セッション制御文セッション制御文セッション制御文は、ユーザー・セッションのプロパティを動的に管理します。次の文は、現在のトランザクションを暗黙的にコミットしません。

PL/SQLは、セッション制御文をサポートしません。

システム制御文システム制御文システム制御文システム制御文単一システム制御文は、Oracleインスタンスのプロパティを動的に管理します。次の文は、現在のトランザクションを暗黙的にコミットしません。

ALTER SYSTEMは、PL/SQLでサポートされません。

埋込み埋込み埋込み埋込み SQL文文文文埋込み SQL文は、DDL、DMLおよびトランザクション制御文をプロシージャ型言語プログラム内に入れます。埋込み SQLは、Oracleプリコンパイラでサポートされており、次のマニュアルに記載されています。

� 『Oracle8i Pro*COBOLプリコンパイラ・プログラマーズ・ガイド』

� 『Oracle8i Pro*C/C++プリコンパイラ・プログラマーズ・ガイド』

� 『Programmer’s Guide to SQL*Module for Ada』

データベース・タスクに使用するデータベース・タスクに使用するデータベース・タスクに使用するデータベース・タスクに使用する SQL文の検索文の検索文の検索文の検索あるデータベース・タスクを行うために使用する特定の SQL文は、結果が明白な場合もあれば、予測が困難な場合もあります。たとえば、CREATE TABLE文で表を作成します。ただし、ENABLE CONSTRAINT文は存在しないため、その文で制約を使用可能にすることはできません。そのかわりに、ALTER TABLE文を使用して列オプションを変更します。

表表表表 6-4 セッション制御文セッション制御文セッション制御文セッション制御文

文文文文

ALTER SESSION

SET ROLE

表表表表 6-5 システム制御文システム制御文システム制御文システム制御文

文文文文

ALTER SYSTEM

SQL文について 6-5

Page 298: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

この項では、様々なデータベース・タスクを行うために使用する適切な SQL文を、データベース・オブジェクトおよびタスクで示します。各 SQL文の構文および意味の詳細は、第 7章~第 11章を参照してください。

注意注意注意注意 : この項で示される SQL文の使用方法は、インストールされているオプションおよびご使用の Oracleのバージョン、エディションによって異なります。これらの文を使用する前に、第 7章~第 11章を参照してください。

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

アプリケーションアプリケーションアプリケーションアプリケーション ユーザーとしての接続を許可する ALTER USER proxy_clause

アプリケーション・アプリケーション・アプリケーション・アプリケーション・サーバーサーバーサーバーサーバー

ユーザーとしての接続を許可する ALTER USER proxy_clause

監査監査監査監査 データベース・イベントを監査する CREATE TRIGGER

コールコールコールコール CPU時間を制限する CPU_PER_CALLパラメータ

読み込まれたデータ・ブロックを制限する

LOGICAL_READS_PER_CALLパラメータ

チチチチェェェェックポイントックポイントックポイントックポイント 明示的に実行する ALTER SYSTEM CHECKPOINT

クローン・データベースクローン・データベースクローン・データベースクローン・データベース マウントする ALTER DATABASE MOUNT

クラスタクラスタクラスタクラスタ クラスタ・キー列を変更する 禁止

エクステントを割り当てる ALTER CLUSTER allocate_extent_clause

移行された行と連鎖行を識別する ANALYZE

並列度を変更する ALTER CLUSTER parallel_clause

改名する 禁止

記憶特性を変更する ALTER CLUSTER physical_attributes_clause

表領域を変更する 禁止

未使用領域を解放する ALTER CLUSTER deallocate_unused_clause

列列列列 表に追加または変更する ALTER TABLE add_column_options, modify_column_options

定義する CREATE TABLE

表から削除する ALTER TABLE drop_column_clause

導出した値を自動的に生成する CREATE TRIGGER

6-6 Oracle8i SQLリファレンス Vol.1

Page 299: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

構成を定義する CREATE TABLE

操作のコミット操作のコミット操作のコミット操作のコミット プロシージャまたはファンクションでの発行を禁止する

ALTER SESSION

コンパイルコンパイルコンパイルコンパイル 実行時のコンパイルを回避する ALTER FUNCTION ... COMPILE

制約制約制約制約 表に追加または変更する ALTER TABLE add_column_options, modify_column_options

業務を施行する CREATE TRIGGER

制約を使用可能、使用禁止または削除する

ALTER TABLE enable_disable_clause, drop_constraint_clause

指定する CREATE TABLE

制御ファイル制御ファイル制御ファイル制御ファイル バックアップを取る ALTER DATABASE controlfile_clauses

スタンバイを作成する ALTER DATABASE CREATE STANDBY CONTROLFILE

通貨記号通貨記号通貨記号通貨記号 セッション用にリセットする ALTER SESSION SET NLS_CURRENCY

データデータデータデータ 頻繁に使用されるデータをキャッシュする

ALTER TABLE cache_clause

一時的または永続的として指定する CREATE TABLE

データ・ディクショナリデータ・ディクショナリデータ・ディクショナリデータ・ディクショナリ Oracle7から Oracle8iに変換する ALTER DATABASE CONVERT

データ非依存データ非依存データ非依存データ非依存 提供する CREATE SYNONYM

データベースデータベースデータベースデータベース キャラクタ・セットを変更する ALTER DATABASE CHARACTER SET

スクリプトを作成する ALTER DATABASE controlfile_clauses

データベース・キャラクタ・セットを指定する

CREATE DATABASE

データ・ファイルを指定する CREATE DATABASE

データ・ファイルを変更する ALTER DATABASE

データ・ファイルの数を設定する CREATE DATABASE

旧リリースにダウングレードする ALTER DATABASE RESET COMPATIBILITY

グローバル・ネームを変更する ALTER DATABASE RENAME GLOBAL_NAME

グローバル・ネーム解決をセッションに対して使用可能にする

ALTER SESSION SET GLOBAL_NAMES

インスタンスの数を設定する CREATE DATABASE

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

SQL文について 6-7

Page 300: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

メディア・リカバリの設計を可能にする

ALTER DATABASE general_recovery_clause

メディア・リカバリを実行する ALTER DATABASE managed_recovery_clause

マウントする ALTER DATABASE MOUNT

別の Oracleデータベースへサブセットを移動する

ALTER TABLE exchange_partition_clause

各国語キャラクタ・セットを指定する

CREATE DATABASE

各国語キャラクタ・セットを変更する

ALTER DATABASE CHARACTER SET

オープンする ALTER DATABASE OPEN

リカバリをパラレル化する ALTER DATABASE parallel_clause

読取り専用モードにする ALTER DATABASE OPEN

読取り /書込みモードにする ALTER DATABASE OPEN

継続中のスタンバイ・リカバリ・モードにする

ALTER DATABASE general_recovery_clause

再作成の準備をする ALTER DATABASE controlfile_clauses

リカバリする ALTER DATABASE recover_clauses

REDOログ・ファイル・グループの数を設定する

CREATE DATABASE

REDOログ・ファイルを指定する CREATE DATABASE

REDOログ・ファイルを作成または変更する

ALTER DATABASE

REDOログ・ファイルの数を設定する

CREATE DATABASE

REDOログのモードを選択する CREATE DATABASE

Oracle8iにアップグレードする ALTER DATABASE

データベース・データベース・データベース・データベース・キャラクタ・セットキャラクタ・セットキャラクタ・セットキャラクタ・セット

データベースに対して指定する CREATE DATABASE

データベース・イベントデータベース・イベントデータベース・イベントデータベース・イベント ログインを透過的に行う CREATE TRIGGER

データベース・リンクデータベース・リンクデータベース・リンクデータベース・リンク クローズする ALTER SESSION

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

6-8 Oracle8i SQLリファレンス Vol.1

Page 301: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

データベース・データベース・データベース・データベース・セキュリティセキュリティセキュリティセキュリティ

認可を施行する CREATE TRIGGER

データ・ファイルデータ・ファイルデータ・ファイルデータ・ファイル 自動拡張を許可する ALTER DATABASE DATAFILE autoextend_clause

作成する ALTER DATABASE CREATE DATAFILE

オンラインにする ALTER DATABASE DATAFILE ONLINE

破損した表領域を再構成する ALTER DATABASE general_recovery_clause

消失または破損した表領域を再構成する

ALTER DATABASE CREATE DATAFILE

指定された表領域をリカバリする ALTER DATABASE general_recovery_clause

リカバリ用に古いデータ・ファイルを置換する

ALTER DATABASE CREATE DATAFILE

サイズ変更する ALTER DATABASE DATAFILE RESIZE

オフラインにする ALTER DATABASE DATAFILE ONLINE/OFFLINE

バックアップを開始または終了する ALTER TABLESPACE ... BACKUP

データベースに対して数を設定する CREATE DATABASE

オンラインにして、インスタンス情報を更新する

ALTER SYSTEM check_datafiles_clause

データベースに対して指定する CREATE DATABASE

日付日付日付日付 書式を設定する 2-47ページの表 2-9「日付書式要素」を参照

小数点文字小数点文字小数点文字小数点文字 セッション用にリセットする ALTER SESSION SET NLS_NUMERIC_CHARACTERS

ディメンションディメンションディメンションディメンション レベル、階層または属性を追加する ALTER DIMENSION ... ADD

関連を変更する ALTER DIMENSION

レベル、階層または属性を削除する ALTER DIMENSION ... DROP

明示的にコンパイルする ALTER DIMENSION ... COMPILE

ディスパッチャ・ディスパッチャ・ディスパッチャ・ディスパッチャ・プロセスプロセスプロセスプロセス

マルチスレッド・サーバーを管理する

ALTER SYSTEMの MTS_パラメータ

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

SQL文について 6-9

Page 302: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

ドメイン・インデックスドメイン・インデックスドメイン・インデックスドメイン・インデックス 変更する ALTER INDEX ... PARAMETERS

再作成する ALTER INDEX rebuild_clause

ダンプ・ファイルダンプ・ファイルダンプ・ファイルダンプ・ファイル サイズを制限する ALTER SESSION SET MAX_DUMP_FILE_SIZE

エラー・メッセージエラー・メッセージエラー・メッセージエラー・メッセージ 表示される言語を変更する ALTER SESSION SET NLS_LANGUAGE

関数関数関数関数 トランザクションのコミットを許可または回避する

ALTER SESSION

関数の宣言を変更する CREATE OR REPLACE FUNCTION

関数の定義を変更する CREATE OR REPLACE FUNCTION

明示的に再コンパイルする ALTER FUNCTION

ファンクション索引ファンクション索引ファンクション索引ファンクション索引 使用禁止にする ALTER INDEX ... [rebuild_clause] DISABLE

使用禁止を使用可能にする ALTER INDEX ... [rebuild_clause] ENABLE

グローバル名グローバル名グローバル名グローバル名 変換を施行する ALTER SYSTEMの GLOBAL_NAMESパラメータ

ハッシュ結合操作ハッシュ結合操作ハッシュ結合操作ハッシュ結合操作 データ・ブロックを割り当てる ALTER SESSION SET HASH_MULTIBLOCK_IO_COUNT

問合せにおいて使用可能または使用禁止にする

ALTER SESSION SET HASH_JOIN_ENABLED ...

メモリーを割り当てる ALTER SESSION SET HASH_AREA_SIZE

索引索引索引索引 再構築中に DML操作を許可する ALTER INDEX rebuild_clause

ファンクションに基づく「ファンクション索引」を参照

CREATE INDEX ... column_expression

索引タイプに基づく「ドメイン・インデックス」を参照

CREATE INDEX domain_index_clause

再構築中に統計情報を収集する ALTER INDEX rebuild_clause

デフォルト属性値を変更する ALTER INDEX partitioning_clauses

並列度を変更する ALTER INDEX parallel_clause

ダイレクト・ロード INSERT操作をログへ書き込む

ALTER INDEX physical_attributes_clause

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

6-10 Oracle8i SQLリファレンス Vol.1

Page 303: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

エクステントを新規に割り当てる ALTER INDEX allocate_extent_clause

キー圧縮を使用可能にする ALTER INDEX rebuild_clause

キー値の反復を排除する ALTER INDEX rebuild_clause

索引のブロック内容を結合する ALTER INDEX rebuild_clause

索引のパーティションの物理属性を変更する

ALTER INDEX physical_attributes_clause

索引のサブパーティションの物理属性を変更する

ALTER INDEX physical_attributes_clause

物理属性を変更する ALTER INDEX physical_attributes_clause

再作成する ALTER INDEX rebuild_clause

再構築の操作をログへ書き込む ALTER INDEX rebuild_clause

索引に対する SQL*Loaderの操作をログへ書き込む

ALTER INDEX physical_attributes_clause

バイトを逆順に格納する ALTER INDEX rebuild_clause

表領域を指定する ALTER INDEX rebuild_clause

Oracleに使用しないように通知する ALTER INDEX ... [rebuild_clause] UNUSABLE

未使用領域を解放する ALTER INDEX deallocate_unused_clause

改名する ALTER INDEX rebuild_clause

索引パーティション索引パーティション索引パーティション索引パーティション 作成時間属性を変更する ALTER INDEX rebuild_clause

ダイレクト・ロード INSERT操作のログを取る

ALTER INDEX physical_attributes_clause

索引サブパーティションに対するSQL*Loader操作のログを取る

ALTER INDEX physical_attributes_clause

別の表領域へ移動する ALTER INDEX rebuild_clause

物理属性を変更する ALTER INDEX physical_attributes_clause

物理、ロギングまたは記憶特性を変更する

ALTER INDEX partitioning_clauses

再作成する ALTER INDEX rebuild_clause

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

SQL文について 6-11

Page 304: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

データベースから削除する ALTER INDEX partitioning_clauses

表領域を指定する ALTER INDEX rebuild_clause

2つのパーティションに分割する ALTER INDEX partitioning_clauses

Oracleに使用しないように通知する ALTER INDEX ... UNUSABLE

索引サブパーティション索引サブパーティション索引サブパーティション索引サブパーティション 作成時間属性の変更を変更する ALTER INDEX rebuild_clause

ダイレクト・ロード INSERT操作のログを取る

ALTER INDEX physical_attributes_clause

索引サブパーティションに対するSQL*Loader操作のログを取る

ALTER INDEX physical_attributes_clause

別の表領域へ移動する ALTER INDEX rebuild_clause

物理属性を変更する ALTER INDEX physical_attributes_clause

物理、ロギングまたは記憶特性を変更する

ALTER INDEX partitioning_clauses

再作成する ALTER INDEX rebuild_clause

表領域を指定する ALTER INDEX rebuild_clause

Oracleに使用しないように通知する ALTER INDEX ... UNUSABLE

索引構成表索引構成表索引構成表索引構成表 特性を変更する ALTER TABLE

索引索引索引索引 クラスタ上 CREATE INDEX

ネストした表の記憶表上 CREATE INDEX

パーティション表上 CREATE INDEX

索引構成表上 CREATE INDEX

表の列上 CREATE INDEX

スカラー型オブジェクト属性上 CREATE INDEX

インスタンスインスタンスインスタンスインスタンス 動的に変更する ALTER SYSTEM

使用可能な索引エクステントを作成する

ALTER INDEX allocate_extent_clause

別のインスタンスに切り替える ALTER SESSION SET INSTANCE

インスタンス・リカバリインスタンス・リカバリインスタンス・リカバリインスタンス・リカバリ 中断後に継続する ALTER DATABASE general_recovery_clause

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

6-12 Oracle8i SQLリファレンス Vol.1

Page 305: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

インスタンスインスタンスインスタンスインスタンス データベースに対して数を設定する CREATE DATABASE

Javaクラスクラスクラスクラス 変換を強制的に行う ALTER JAVA

Javaリソースリソースリソースリソース コンパイルを強制的に行う ALTER JAVA

Javaソースソースソースソース コンパイルを強制的に行う ALTER JAVA

ライセンスライセンスライセンスライセンス 制限またはしきい値を変更する ALTER SYSTEMの LICENSE_パラメータ

LOB列列列列 表に追加または変更する ALTER TABLE add_column_options, modify_column_options, LOB_storage_clause

位置の透過性位置の透過性位置の透過性位置の透過性 提供する CREATE SYNONYM

マテリアライズド・マテリアライズド・マテリアライズド・マテリアライズド・ビュービュービュービュー

自動リフレッシュのモードまたはタイミングを変更する

ALTER MATERIALIZED VIEW refresh_clause

ROWIDベースから主キー・ベースに変更する

ALTER MATERIALIZED VIEW

ALTER MATERIALIZED VIEW LOG

並列度を指定または変更する ALTER MATERIALIZED VIEW parallel_clause

パーティションに分割する ALTER MATERIALIZED VIEW partitioning_clauses

LOB記憶特性を変更する ALTER MATERIALIZED VIEW modify_LOB_storage_clause

LOB記憶特性を指定する ALTER MATERIALIZED VIEW LOB_storage_clause

変更のログをとる ALTER MATERIALIZED VIEW ... LOGGING

問合せのリライトで使用可能にする ALTER MATERIALIZED VIEW ... QUERY REWRITE

ALTER SESSION SET QUERY_REWRITE_ENABLED

頻繁にアクセスされるデータをアクセス可能にする

ALTER MATERIALIZED VIEW ... CACHE

再検証する ALTER MATERIALIZED VIEW ... COMPILE

記憶特性を変更する ALTER MATERIALIZED VIEW physical_attributes_clause

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

SQL文について 6-13

Page 306: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

マテリアライズド・マテリアライズド・マテリアライズド・マテリアライズド・ビュー・ログビュー・ログビュー・ログビュー・ログ

自動リフレッシュのモードおよびタイミングを変更する

ALTER MATERIALIZED VIEW LOG

ROWIDベースから主キー・ベースに変更する

ALTER MATERIALIZED VIEW LOG

パーティションに分割する ALTER MATERIALIZED VIEW LOG partitioning_clauses

物理および格納特性を変更する ALTER MATERIALIZED VIEW LOG ... physical_attributes_clause

古い値および新規の値の両方を保存する

ALTER MATERIALIZED VIEW LOG ... NEW VALUES

変更した行の主キーを格納する ALTER MATERIALIZED VIEW LOG ... ADD

変更した行の ROWIDを格納する ALTER MATERIALIZED VIEW LOG ... ADD

メディア・リカバリメディア・リカバリメディア・リカバリメディア・リカバリ 起動時のメディア・リカバリを回避する

ALTER DATABASE DATAFILE END BACKUP

指定した REDOログ・ファイルから行う

ALTER DATABASE general_recovery_clause

準備する ALTER DATABASE ARCHIVELOG

各国語キャラクタ・各国語キャラクタ・各国語キャラクタ・各国語キャラクタ・セットセットセットセット

データベースに対して指定する CREATE DATABASE

各国語サポート各国語サポート各国語サポート各国語サポート セッションに対する設定を変更する ALTER SESSION SET NLS_パラメータ

ネストした表ネストした表ネストした表ネストした表 ビュー内で更新する INSTEAD OFトリガーを作成

ネストした表の列ネストした表の列ネストした表の列ネストした表の列 索引を作成する CREATE INDEX

数数数数 書式を設定する 2-42ページの表 2-7「数値書式の要素」を参照

オブジェクト参照については「オブジェクト参照については「オブジェクト参照については「オブジェクト参照については「REF」を参照」を参照」を参照」を参照

オンラインオンラインオンラインオンライン REDOログログログログ 再初期化する ALTER DATABASE CLEAR LOGFILE

アウトラインアウトラインアウトラインアウトライン 別のカテゴリに割り当てる ALTER OUTLINE ... CHANGE CATEGORY TO

再コンパイルする ALTER OUTLINE ... REBUILD

改名する ALTER OUTLINE ... RENAME

自動的に作成および格納する ALTER SESSION SET CREATE_STORED_OUTLINES

実行計画生成のために使用する ALTER SESSION SET USE_STORED_OUTLINES

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

6-14 Oracle8i SQLリファレンス Vol.1

Page 307: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

パッケージパッケージパッケージパッケージ 実行時のコンパイルを回避する ALTER PACKAGE

明示的にコンパイルする ALTER PACKAGE

パッケージ本体パッケージ本体パッケージ本体パッケージ本体 実行時のコンパイルを回避する ALTER PACKAGE

明示的に再コンパイルする ALTER PACKAGE

パラレル化パラレル化パラレル化パラレル化 表に対して指定する CREATE TABLE

表の DMLに対して指定する CREATE TABLE

パラメータ、初期化パラメータ、初期化パラメータ、初期化パラメータ、初期化 カレント・セッションに対する設定を変更する

ALTER SESSION set_clause

パラメータ、セッションパラメータ、セッションパラメータ、セッションパラメータ、セッション 設定を設定または変更する ALTER SESSION set_clause

パーティションパーティションパーティションパーティション 表に追加または変更する ALTER TABLE

デフォルト属性を変更する ALTER TABLE modify_default_attributes_clause

ロギング特性を変更する ALTER TABLE logging_clause

他のパーティションと結合する ALTER TABLE merge_partitions_clause

非パーティション表のデータに切り替える

ALTER TABLE exchange_partition_clause

実属性を変更する ALTER TABLE modify_partition_clause

パスワードパスワードパスワードパスワード 複雑性を保証する PASSWORD_VERIFY_FUNCTIONパラメータ

使用禁止にする PASSWORD_REUSE_TIMEパラメータ

ログインが失敗した後にアカウントがロックされる日数を指定する

PASSWORD_LOCK_TIMEパラメータ

再使用前の日数を制限する PASSWORD_REUSE_TIMEパラメータ

猶予期間の日数を指定する PASSWORD_GRACE_TIMEパラメータ

使用可能日数を制限する PASSWORD_LIFE_TIMEパラメータ

再使用回数を制限する PASSWORD_REUSE_MAXパラメータ

特殊文字を使用可能にする PASSWORD_VERIFY_FUNCTIONパラメータ

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

SQL文について 6-15

Page 308: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

パフォーマンスパフォーマンスパフォーマンスパフォーマンス 索引アクセス・パスに対して最適化する

ALTER SESSION SET OPTIMIZER_INDEX_COST_ADJ

ネステッド・ループ・ジョインに対して最適化する

ALTER SESSION SET OPTIMIZER_INDEX_CACHING

セッションに対するオプティマイザ・アプローチを指定する

ALTER SESSION SET OPTIMIZER_MODE

プロシージャプロシージャプロシージャプロシージャ トランザクションのコミットを許可または回避する

ALTER SESSION

実行時のコンパイルを回避する ALTER PROCEDURE

明示的に再コンパイルする ALTER PROCEDURE

プロファイルプロファイルプロファイルプロファイル リソース制限を追加する ALTER PROFILE

リソース制限を変更する ALTER PROFILE

リソース制限を削除する ALTER PROFILE

リカバリリカバリリカバリリカバリ 分散リカバリを可能または不可能にする

ALTER SYSTEM distributed_recovery_clause

リカバリ・データリカバリ・データリカバリ・データリカバリ・データ 廃棄する ALTER DATABASE RESETLOGS

REDOログログログログ 変更を削除する ALTER DATABASE OPEN RESETLOGS

順序をリセットする ALTER DATABASE OPEN RESETLOGS

モードを指定する CREATE DATABASE

REDOログ・ファイルログ・ファイルログ・ファイルログ・ファイル 追加する ALTER DATABASE ADD LOGFILE MEMBER

名前を自動的に生成する ALTER DATABASE general_recovery_clause

消去する ALTER DATABASE CLEAR LOGFILE

削除する ALTER DATABASE DROP LOGFILE

スレッドを使用可能または使用禁止にする

ALTER DATABASE ENABLE THREAD

改名する ALTER DATABASE RENAME FILE

データベースに対して数を設定する CREATE DATABASE

手動でまたは自動的にアーカイブする

ALTER SYSETM archive_log_clause

データベースに対して数を設定する CREATE DATABASE

パスを指定する ALTER SESSION SET LOG_ARCHIVE_DEST_n

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

6-16 Oracle8i SQLリファレンス Vol.1

Page 309: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

手動で切り替える ALTER SYSTEM switch_logfile_clause

REF 検証および更新する ANALYZE

ロールロールロールロール 必要な認可を変更する ALTER ROLE

ロールバック・セグロールバック・セグロールバック・セグロールバック・セグメントメントメントメント

オンラインにする ALTER ROLLBACK SEGMENT

サイズを削減する ALTER ROLLBACK SEGMENT

記憶特性を変更する ALTER ROLLBACK SEGMENT

オフラインにする ALTER ROLLBACK SEGMENT

ROWID 調査する ROWID疑似列の問合せ

内容の解析を拡張する DBMS_ROWIDパッケージ

『Oracle8i PL/SQLパッケージ・プロシージャ リファレンス』を参照

スキーマスキーマスキーマスキーマ セッション中に変更する ALTER SESSION SET CURRENT_SCHEMA

スキーマ・オブジェクトスキーマ・オブジェクトスキーマ・オブジェクトスキーマ・オブジェクト 位置を参照せずに参照する CREATE SYNONYM

所有者を参照せずに参照する CREATE SYNONYM

別の名前を指定する CREATE SYNONYM

構造を検証する ANALYZE

順序順序順序順序 キャッシュされた順序値の数を変更する

ALTER SEQUENCE cache_clause

値の連続した順番を保証する CREATE SEQUENCE ... ORDER

ALTER SEQUENCE ... ORDER

作成する CREATE SEQUENCE

増分値の現在の値を判断して設定する 2-57ページの「CURRVALと NEXTVAL」を参照

増分値を設定する CREATE SEQUENCE ... INCREMENT BY

ALTER SEQUENCE ... INCREMENT BY

最大または最小値を排除する ALTER SEQUENCE

最大または最小値を設定する CREATE SEQUENCE

ALTER SEQUENCE

高速アクセスのために値を事前に割り当てる

CREATE SEQUENCE

ALTER SEQUENCE

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

SQL文について 6-17

Page 310: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

事前に制限を定義した後、再起動する CREATE SEQUENCE ... CYCLE

ALTER SEQUENCE ... CYCLE

開始値を設定する CREATE SEQUENCE

サーバー・プロセスサーバー・プロセスサーバー・プロセスサーバー・プロセス マルチスレッド・サーバーを管理する ALTER SYSTEMの MTS_パラメータ

セッションセッションセッションセッション CPU時間を制限する CPU_PER_SESSIONパラメータ

読み込まれるデータ・ブロックを制限する

LOGICAL_READS_PER_SESSIONパラメータ

パラレル・トランザクションを使用可能または使用禁止にする

ALTER SESSION

非アクティブの期間を制限する IDLE_TIMEパラメータ

プライベート SGA領域を制限する PRIVATE_SGAパラメータ

リソース・コストの許可を変更する ALTER RESOURCE COST

権限を持つユーザーに制限する ALTER SYSTEM restricted_session_clause

終了する ALTER SYSTEM kill_session_clause

合計経過時間を制限する CONNECT_TIMEパラメータ

合計リソースを制限する COMPOSITE_LIMITパラメータ

SGA 共有プールからデータをフラッシュする

ALTER SYSTEM flush_shared_pool_clause

共有プール共有プール共有プール共有プール フラッシュする ALTER SYSTEM flush_shared_pool_clause

スナップショットについては「マテリアライズド・ビュー」スナップショットについては「マテリアライズド・ビュー」スナップショットについては「マテリアライズド・ビュー」スナップショットについては「マテリアライズド・ビュー」を参照を参照を参照を参照

ソート操作ソート操作ソート操作ソート操作 言語処理順序を変更する ALTER SESSION SET NLS_SORT

スタンバイ・データスタンバイ・データスタンバイ・データスタンバイ・データベースベースベースベース

アクティブにする ALTER DATABASE ACTIVATE STANDBY DATABASE

リカバリする ALTER DATABASE recover_clauses

統計情報統計情報統計情報統計情報 スキーマ・オブジェクト上で収集する ANALYZE

スキーマ・オブジェクト上で削除する ANALYZE

スカラー・オブジェクト属性上で収集する

ANALYZE

サブパーティションサブパーティションサブパーティションサブパーティション 表に追加または変更する ALTER TABLE

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

6-18 Oracle8i SQLリファレンス Vol.1

Page 311: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

デフォルト属性を変更する ALTER TABLE modify_default_attributes_clause, modify_partition_clause

ロギング特性を変更する ALTER TABLE logging_clause

実属性を変更する ALTER TABLE modify_subpartition_clause

システム・リソースシステム・リソースシステム・リソースシステム・リソース 使用可能または使用禁止にする ALTER SYSTEMの RESOURCE_LIMITSパラメータ

表表表表 領域を割り当てる ALTER TABLE allocate_extent_clause

特性を変更する ALTER TABLE physical_attributes_clause, modify_storage_clauses

列を表から削除する ALTER TABLE drop_column_clause

並列度を変更する ALTER TABLE parallel_clause

ロギング特性を変更する ALTER TABLE logging_clause

読取り専用、読取り /書込み両用を作成する

ALTER TABLE

移行された行と連鎖行を識別する ANALYZE

構成を定義する CREATE TABLE

パーティションが別の表の内容を指すようにする

ALTER TABLE exchange_partition_clause

パーティション化を指定する CREATE TABLE

改名する ALTER TABLE

未使用領域を解放する ALTER TABLE deallocate_unused_clause

ヒープまたは索引を構成する CREATE TABLE

クラスタに含める CREATE TABLE

非同期のレプリケートをメンテナンスする

CREATE TRIGGER

記憶特性を設定する CREATE TABLE

表領域表領域表領域表領域 書込みを可能または不可にする ALTER TABLESPACE READ WRITE/ONLY

データ・ファイルを追加または改名する

ALTER TABLESPACE datafile/tempfile_clauses

ロギング特性を変更する ALTER TABLESPACE

エクステントの最低の長さを変更する ALTER TABLESPACE

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

SQL文について 6-19

Page 312: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

データベース・タスクに使用する SQL文の検索

破損した表領域を再構成する ALTER DATABASE general_recovery_clause

消失または破損した表領域を再構成する

ALTER DATABASE CREATE DATAFILE

指定された表領域をリカバリする ALTER DATABASE general_recovery_clause

表に対して指定する CREATE TABLE

記憶特性を変更する ALTER TABLESPACE

オンラインまたはオフラインにする ALTER TABLESPACE

ユーザー割当て制限を変更する ALTER USER

ユーザーに割り当てる CREATE USER

ユーザーに対して領域制限を割り当てる

CREATE USER

テンポラリ・ファイルテンポラリ・ファイルテンポラリ・ファイルテンポラリ・ファイル テンポラリ・ファイルの自動拡張を可能にする

ALTER DATABASE TEMPFILE

サイズ変更する ALTER DATABASE TEMPFILE

トランザクショントランザクショントランザクショントランザクション 分散トランザクションのコミットを強制的に行う

ALTER SESSION

分散トランザクションのロールバックを強制的に行う

ALTER SESSION

トリガートリガートリガートリガー 使用可能または使用禁止にする ALTER TABLE

ユーザーユーザーユーザーユーザー 認証を変更する ALTER USER

データベース・リソース制限を変更する

ALTER USER profile_clause

デフォルトのロールを変更する ALTER USER

ログインの失敗を制限する FAILED_LOGIN_ATTEMPTSパラメータ

セッション数を制限する SESSIONS_PER_USERパラメータ

パスワードを変更する ALTER USER

リソース制限を設定する CREATE USER

Oracleへのアクセスを制限する ALTER SYSTEM restricted_session_clause

表領域の割当て制限を設定する CREATE USER

表領域を割り当てる CREATE USER

データベース・データベース・データベース・データベース・オブジェクトオブジェクトオブジェクトオブジェクト /タスクタスクタスクタスク

操作操作操作操作 SQL文文文文

6-20 Oracle8i SQLリファレンス Vol.1

Page 313: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL文 : ALTER CLUSTER~ ALTER SY

7

SQL文文文文 :

ALTER CLUSTER~~~~ ALTER SYSTEM

この章および第 8章~第 11章のすべての SQL文は、次の項で編成されています。

構文構文構文構文 構文図には、文を構成するキーワードおよびパラメータを示します。

注意注意注意注意 :すべてのキーワードおよびパラメータがあらゆる環境において有効なわけではありません。構文の制限事項については、文および句の「キーワードとパラメータ」を参照してください。

用途用途用途用途 文の基本的な使用方法を説明します。

前提条件前提条件前提条件前提条件 文の実行に必要な権限と、文を使用する前に実行する手順を示します。特に指定がない限り、ご使用のインスタンスでデータベースがオープンされている必要があります。

キーワードとキーワードとキーワードとキーワードとパラメータパラメータパラメータパラメータ

キーワードおよびパラメータの用途を説明します(この章で使用するキーワードおよびパラメータの表記規則の詳細は、「はじめに」を参照してください)。制限事項および使用時の注意事項についてもこの項で説明します。

例例例例 文の様々な句およびパラメータの使用方法を示します。

STEM 7-1

Page 314: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

この章では、次の SQL文を説明します。

� ALTER CLUSTER

� ALTER DATABASE

� ALTER DIMENSION

� ALTER FUNCTION

� ALTER INDEX

� ALTER JAVA

� ALTER MATERIALIZED VIEW

� ALTER MATERIALIZED VIEW LOG

� ALTER OUTLINE

� ALTER PACKAGE

� ALTER PROCEDURE

� ALTER PROFILE

� ALTER RESOURCE COST

� ALTER ROLE

� ALTER ROLLBACK SEGMENT

� ALTER SEQUENCE

� ALTER SESSION

� ALTER SYSTEM

7-2 Oracle8i SQLリファレンス Vol.1

Page 315: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER CLUSTER

ALTER CLUSTER

用途用途用途用途ALTER CLUSTER文を使用すると、クラスタの記憶特性および並列特性を再定義できます。

前提条件前提条件前提条件前提条件クラスタが自スキーマ内にあるか、または ALTER ANY CLUSTERシステム権限を持っている必要があります。

構文構文構文構文

注意注意注意注意 : クラスタ・キーの列番号および列名を変更するためにこの文を使用することはできません。また、クラスタを格納する表領域を変更することはできません。

参照参照参照参照 :

� クラスタの作成については、9-3ページの「CREATE CLUSTER」を参照してください。

� クラスタからの表の削除については、10-124ページの「DROP CLUSTER」および 11-7ページの「DROP TABLE」を参照してください。

ALTER CLUSTERschema .

cluster

physical_attributes_clause

SIZE integer

K

M

allocate_extent_clause

deallocate_unused_clause

parallel_clause;

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-3

Page 316: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER CLUSTER

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ

schemaクラスタが含まれているスキーマを指定します。schemaを指定しない場合、Oracleは、そのクラスタが自スキーマに存在するとみなします。

cluster変更するクラスタの名前を指定します。

physical_attributes_clauseクラスタの PCTUSEDパラメータ、PCTFREEパラメータ、INITRANSパラメータおよびMAXTRANSパラメータの値を変更します。

SIZE integerSIZE句を使用すると、クラスタに割り当てられたデータ・ブロック中に格納されるクラスタ・キーの数を指定できます。

制限事項制限事項制限事項制限事項 : ハッシュ・クラスタではなく、索引クラスタの SIZEパラメータのみを変更できます。

allocate_extent_clauseALLOCATE EXTENT句を指定すると、クラスタの新しいエクステントを明示的に割り当てます。

制限事項制限事項制限事項制限事項 : ハッシュ・クラスタではなく、索引クラスタのみに新しいエクステントを割り当てることができます。

参照参照参照参照 : これらのパラメータについては、9-3ページの「CREATE CLUSTER」を参照してください。

storage_clause

クラスタの記憶特性を変更するには、STORAGE句を使用します。

制限事項制限事項制限事項制限事項 :クラスタの記憶領域パラメータ INITIALおよびMINEXTENTSの値は変更できません。

参照参照参照参照 : SIZEパラメータについては、9-3ページの「CREATE CLUSTER」を参照してください。

7-4 Oracle8i SQLリファレンス Vol.1

Page 317: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER CLUSTER

deallocate_unused_clauseDEALLOCATE UNUSED句を指定すると、使用クラスタの終わりの未使用領域の割当てを明示的に解除し、解放された領域が他のセグメントで使用可能になります。ただし、解放できるのは、最高水位標を超える未使用領域のみです。

parallel_clauseparallel_clauseを指定すると、クラスタの DMLおよび問合せのデフォルト並列度を変更できます。

SIZE integer SIZEパラメータを使用すると、エクステントのサイズはバイト単位で指定できます。KまたはMを使用すると、エクステントのサイズを KBまたはMB単位で指定できます。

この句で明示的にエクステントを割り当てる場合、Oracleは、クラスタの記憶領域パラメータを評価しません。割り当てられる新しいエクステントの新しいサイズも決定しません(表を作成する際に行います)。したがって、Oracleがデフォルト値を使用しないようにするには、SIZEを指定してください。

DATAFILE 'filename'

DATAFILEパラメータを使用すると、クラスタの表領域内で、新しいエクステントを含むデータ・ファイルを 1つ指定できます。このパラメータを省略した場合、データ・ファイルは Oracleによって選択されます。

INSTANCE integer

INSTANCEパラメータを使用すると、指定したインスタンスで新しいエクステントが使用可能になります。インスタンスは初期化パラメータINSTANCE_NUMBERの値で識別されます。INSTANCEを指定しないと、すべてのインスタンスで新しいエクステントが使用可能になります。

注意注意注意注意 : パラレル・モードの Parallel Serverオプションで Oracleを使用している場合に限り、このパラメータを使用できます。

KEEP integer KEEPパラメータを使用すると、割当てを解除した後にクラスタに残す、最高水位標を超えるバイト数を指定できます。残りのエクステント数がMINEXTENTSより少ない場合、MINEXTENTSは現行のエクステント数に設定されます。初期エクステントが INITIALより小さくなると、INITIALは初期エクステントの現行の値に設定されます。KEEPを指定しないと、すべての未使用領域が解放されます。

参照参照参照参照 : この句の詳細は、8-2ページの「ALTER TABLE」を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-5

Page 318: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER CLUSTER

制限事項制限事項制限事項制限事項 : clusterの表が LOB型またはユーザー定義オブジェクト型の列を含む場合、クラスタでその後に行う INSERT、UPDATEまたは DELETE操作と同様、この文は通知なしに逐次実行されます。

例例例例

クラスタの変更例クラスタの変更例クラスタの変更例クラスタの変更例 次の文は、スキーマ scottの CUSTOMERクラスタを変更します。

ALTER CLUSTER scott.customer SIZE 512 STORAGE (MAXEXTENTS 25);

この結果、各クラスタ・キー値に 512バイトが割り当てられます。データ・ブロックのサイズを 2KBと想定した場合、このクラスタ内の将来のデータ・ブロックには、1ブロックあたり 4つのクラスタ・キー(2KBを 512バイトで割った値)が含まれます。このクラスタは、最大 25のエクステントを持つことができます。

未使用領域の解放例未使用領域の解放例未使用領域の解放例未使用領域の解放例 次の文は、CUSTOMERクラスタから未使用領域の割当てを解除し、後で使用できるように 30KBの未使用領域を保持します。

ALTER CLUSTER scott.customer DEALLOCATE UNUSED KEEP 30 K;

注意注意注意注意 : parallel_clauseの構文は、以前のリリースの構文に代わるものです。以前のリリースの構文は下位互換用にサポートされていますが、動作がわずかに異なることがあります。

NOPARALLEL シリアル実行を行う場合に、NOPARALLELを指定します。これはデフォルト値です。

PARALLEL PARALLELを指定すると、すべてのパーティション化インスタンスで使用可能な CPUの数に、初期化パラメータPARALLEL_THREADS_PER_CPUの値を掛けた並列度が選択されます。

PARALLEL integer

integerを指定すると、パラレル操作で使用されるパラレル・スレッド数である並列度並列度並列度並列度が指定されます。各パラレル・スレッドは、1、2個のパラレル実行サーバーを使用します。通常、最適な並列度が計算されるため、integerに値を指定する必要はありません。

参照参照参照参照 : 詳細は、10-41ページの「CREATE TABLE」の「parallel_clauseに関する注意事項」を参照してください。

7-6 Oracle8i SQLリファレンス Vol.1

Page 319: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

ALTER DATABASE

用途用途用途用途ALTER DATABASE文を使用すると、既存のデータベースが変更、メンテナンスまたはリカバリされます。

前提条件前提条件前提条件前提条件ALTER DATABASEシステム権限が必要です。

RECOVER句を指定する場合は、OSDBAロールを有効にする必要があります。

参照参照参照参照 :

� データベースをメンテナンスするために ALTER DATABASE文を使用する場合の詳細は、『Oracle8i 管理者ガイド』を参照してください。

� メディア・リカバリの実行例については、『Oracle8i 管理者ガイド』、『Oracle8i Recovery Managerユーザーズ・ガイド』および『Oracle8iバックアップおよびリカバリ・ガイド』を参照してください。

� データベース作成の詳細は、9-21ページの「CREATE DATABASE」を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-7

Page 320: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

構文構文構文構文

ALTER DATABASEdatabase

recover_clauses

datafile/tempfile_clauses

logfile_clauses

controlfile_clauses

MOUNT

STANDBY

CLONEDATABASE

CONVERT

OPEN

READ WRITE RESETLOGS

NORESETLOGS

READ ONLY

ACTIVATE STANDBY DATABASE

RENAME GLOBAL_NAME TO database . domain

RENAME FILE ’ filename ’

,

TO ’ filename ’

,

RESET COMPATIBILITY

ENABLEPUBLIC

THREAD integer

DISABLE THREAD integer

CHARACTER SET character_set

NATIONAL CHARACTER SET character_set

;

7-8 Oracle8i SQLリファレンス Vol.1

Page 321: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

recover_clauses::=

general_recovery_clause::=

RECOVERgeneral_recovery_clause

managed_recovery_clause

parallel_clause;

AUTOMATIC FROM ’ location ’

STANDBYDATABASE

UNTIL

CANCEL

TIME date

CHANGE integer

USING BACKUP CONTROLFILE

STANDBY

TABLESPACE tablespace

,

DATAFILE ’ filename ’

, UNTILCONSISTENT WITH

CONTROLFILE

TABLESPACE tablespace

,

DATAFILE ’ filename ’

,

LOGFILE ’ filename ’

CONTINUEDEFAULT

CANCEL

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-9

Page 322: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

managed_recovery_clause::=

datafile_tempfile_clauses::=

MANAGED STANDBY DATABASE

TIMEOUT integer

CANCELIMMEDIATE

CREATE DATAFILE ’ filename ’AS filespec

DATAFILE ’ filename ’

ONLINE

OFFLINEDROP

RESIZE integer

K

M

autoextend_clause

END BACKUP

TEMPFILE , filename ,

RESIZE integer

K

M

autoextend_clause

DROP

ONLINE

OFFLINE

7-10 Oracle8i SQLリファレンス Vol.1

Page 323: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

autoextend_clause::=

filespec: 11-27ページの「filespec」を参照してください。

logfile_clauses::=

AUTOEXTEND

OFF

ONNEXT integer

K

Mmaxsize_clause

ARCHIVELOG

NOARCHIVELOG

ADD LOGFILETHREAD integer GROUP integer

filespec

,

ADD LOGFILE MEMBER ’ filename ’REUSE

,

TO logfile_descriptor

,

DROP LOGFILE logfile_descriptor

,

DROP LOGFILE MEMBER ’ filename ’

,

CLEARUNARCHIVED

LOGFILE logfile_descriptor

,UNRECOVERABLE DATAFILE

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-11

Page 324: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

logfile_descriptor::=

controlfile_clauses::=

maxsize_clause::=

parallel_clause::=

GROUP integer

( ’ filename ’

,

)

’ filename ’

CREATE STANDBY CONTROLFILE AS ’ filename ’REUSE

BACKUP CONTROLFILE TO

’ filename ’REUSE

TRACE

RESETLOGS

NORESETLOGS

MAXSIZE

UNLIMITED

integer

K

M

NOPARALLEL

PARALLELinteger

7-12 Oracle8i SQLリファレンス Vol.1

Page 325: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ

database変更するデータベースの名前を指定します。データベース名には ASCII文字のみが使用できます。データベースを指定しないと、初期化パラメータ DB_NAMEに指定されているデータベースが変更されます。なお、データベースの制御ファイルが初期化パラメータCONTROL_FILESに指定されている場合にのみ、そのデータベースを変更できます。データベース識別子は、Net8のデータベース指定とは関係ありません。

recover_clauses自インスタンスで、データベースがマウント済、オープン状態、クローズ状態のいずれの場合でも、関連ファイルが使用中でない場合は、次の句を使用できます。

general_recovery_clause

general_recovery_clauseを指定すると、データベース、スタンバイ・データベース、指定した表領域、またはファイルのメディア・リカバリの設計が可能になります。

制限事項制限事項制限事項制限事項 :

� データベースがクローズ状態の場合にのみ、データベース全体をリカバリできます。

� 自インスタンスは、排他モードでデータベースがマウントされている必要があります。

� リカバリ対象の表領域またはデータ・ファイルがオフラインの場合、データベースがオープン状態でもクローズ状態でも、表領域またはデータ・ファイルをリカバリできます。

� マルチスレッド・サーバー・アーキテクチャで Oracleに接続している場合、メディア・リカバリはできません。

注意注意注意注意 : メディアについての特別な要件がない場合は、SQL*PlusのRECOVER文を使用することをお薦めします。

参照参照参照参照 :

� メディア・リカバリの詳細は、『Oracle8iバックアップおよびリカバリ・ガイド』を参照してください。

� 『Oracle8i SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-13

Page 326: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

AUTOMATIC AUTOMATICを指定すると、リカバリ操作を続けるために必要な新規アーカイブ REDOログ・ファイルの名前が自動的に生成されます。LOG_ARCHIVE_DEST_nパラメータが定義されている場合、最初のローカル接続先に対して有効で使用可能なパラメータがスキャンされます。その接続先を LOG_ARCHIVE_FORMATと結合させて使用し、ターゲットの REDOログ・ファイル名を生成します。LOG_ARCHIVE_DEST_nが定義されていない場合は、かわりに LOG_ARCHIVE_DESTパラメータ値が使用されます。

ファイルが検索されると、そのファイルに含まれている REDOが適用されます。ファイルが検索されない場合は、ファイル名の入力を求めるプロンプトが表示されます。この場合、提案として生成されたファイル名が表示されます。

AUTOMATICも LOGFILEも指定しない場合、ファイル名の入力を求めるプロンプトが表示されます。この場合、提案として生成されたファイル名が表示されます。次に、生成されたファイル名を受け入れるか、または完全なファイル名に置き換えます。生成されたファイル名と、アーカイブ済のファイル名が異なることを認識しておくことによって、LOGFILE句を使用することで時間を節約できます。

FROM 'location' FROM locationを指定すると、アーカイブ REDOログ・ファイル・グループを読み込む位置を指定できます。locationの値には、使用するオペレーティング・システムの表記規則に従って、ファイルの位置を完全に指定する必要があります。このパラメータを指定しないと、そのアーカイブ REDOログ・グループは、初期化パラメータLOG_ARCHIVE_DESTまたは LOG_ARCHIVE_DEST_1に指定された位置にあるとみなされます。

STANDBY DATABASE

STANDBY DATABASE句を指定すると、プライマリ・データベースからコピーされたアーカイブ REDOログ・ファイルおよび制御ファイルを使用して、スタンバイ・データベースがリカバリされます。スタンバイ・データベースは、マウントされているがオープンされていない状態である必要があります。

DATABASE DATABASE句を指定すると、データベース全体がリカバリされます。これはデフォルト値です。データベースがクローズされている場合にのみ、このオプションを使用できます。

注意注意注意注意 : この句は、オンライン・データ・ファイルのみをリカバリします。

� UNTIL: UNTILを使用すると、リカバリ操作の存続期間が指定されます。

7-14 Oracle8i SQLリファレンス Vol.1

Page 327: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

- CANCELは、取消しベースのリカバリを示します。RECOVER CANCEL句を指定した ALTER DATABASE RECOVER文を発行するまで、データベース・リカバリが続行されます。

- TIMEは、時間ベースのリカバリを示します。このパラメータは、dateに指定した時点までデータベースをリカバリします。日付は、'YYYY-MM-DD:HH24:MI:SS'の書式の文字リテラルである必要があります。

- CHANGEは、変更ベースのリカバリを示します。integerに指定したシステム変更番号(SCN)の直前の、トランザクションの一貫性が保たれるところまでデータベースをリカバリします。

� USING BACKUP CONTROLFILE: 現行の制御ファイルではなく、バックアップ制御ファイルを使用する場合、この句を指定します。

TABLESPACE TABLESPACE句を指定すると、指定した表領域のみをリカバリします。リカバリの対象となる表領域がオフラインの場合、データベースがオープン状態でもクローズ状態でも、この句を使用できます。

DATAFILE DATAFILE句を指定すると、指定したデータ・ファイルがリカバリされます。リカバリ対象のデータ・ファイルがオフラインの場合、データベースがオープン状態でもクローズ状態でも、この句を使用できます。

STANDBY TABLESPACE

STANDBY TABLESPACEを指定すると、プライマリ・データベースおよび制御ファイルからコピーしたアーカイブ REDOログ・ファイルを使用して、スタンバイ・データベース内の損失または破損した表領域を再構成します。

STANDBY DATAFILE

STANDBY DATAFILEを指定すると、プライマリ・データベースおよび制御ファイルからコピーしたアーカイブ REDOログ・ファイルを使用して、スタンバイ・データベース内の損失または破損したデータ・ファイルを再構成します。

� UNTIL [CONSISTENT WITH] CONTROLFILE: 旧スタンバイ・データ・ファイルまたは表領域のリカバリに、現行のスタンバイ・データベース制御ファイルを使用する場合、この句を指定します。ただし、スタンバイ制御ファイルに反映されていない REDOログ・ファイルの内容は適用されません。キーワード CONSISTENT WITHはオプションであり、意味を明確にするためのものです。

LOGFILE LOGFILEを指定すると、指定した REDOログ・ファイルを使用して、メディア・リカバリを続行します。

CONTINUE CONTINUEを指定すると、スレッドを使用禁止にするために中断されていたマルチインスタンス・リカバリを再開します。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-15

Page 328: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

managed_recovery_clause

managed_recovery_clauseは、自動スタンバイ・リカバリ・モードを指定します。このモードでは、自動スタンバイ・データベースは、スタンバイ・データベース・アーキテクチャ全体のアクティブ・コンポーネントであるとみなされます。プライマリ・データベースは、その REDOログ・ファイルをスタンバイ・サイトにアクティブにアーカイブします。これらのアーカイブ REDOログは、スタンバイ・サイトにアーカイブされると、管理スタンバイ・リカバリ操作で使用可能になります。自動スタンバイ・リカバリは、メディア・リカバリに制限されます。

制限事項制限事項制限事項制限事項 : general_recovery_clauseと同じ制限があります。

CONTINUE DEFAULT

CONTINUE DEFAULTを指定すると、他に指定されたログ・ファイルがない場合、自動的に生成された REDOログ・ファイルを使用して、リカバリを再開します。ファイル名の入力を求めるプロンプトが表示されないこと以外は、AUTOMATICの指定と同じです。

CANCEL CANCELを指定すると、取消しベースのリカバリが終了します。

参照参照参照参照 : この句のパラメータの詳細は、『Oracle8iバックアップおよびリカバリ・ガイド』を参照してください。

TIMEOUT integer TIMEOUT句を使用すると、管理リカバリ操作の待ち時間を分単位で指定できます。自動スタンバイ・データベースに書き込むために、要求されたアーカイブ REDOログ・ファイルが使用可能になるまで、リカバリ処理は integer分待ちます。REDOログ・ファイルがその時間に使用可能にならなかった場合、リカバリ処理は終了し、エラー・メッセージが表示されます。自動スタンバイ・リカバリ・モードに戻る場合、この文を再度発行します。

この句を指定しないと、RECOVER CANCEL句付きでこの文を再発行するか、またはインスタンスが停止したり破損しない限り、データベースは自動スタンバイ・リカバリ・モードのままです。

CANCEL CANCEL句を使用すると、現在のアーカイブ REDOファイルのすべてのREDOを適用した後、管理リカバリ操作を終了します。

7-16 Oracle8i SQLリファレンス Vol.1

Page 329: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

parallel_clause

PARALLELを使用すると、メディア・リカバリをパラレル化するかどうかを指定できます。

datafile_tempfile_clausesdatafile_tempfile_clauseによって、データ・ファイルおよびテンポラリ・ファイルが変更可能になります。

自インスタンスで、データベースがマウント済、オープン状態、クローズ状態のいずれの場合でも、関連ファイルが使用中でなければ、次の句はどれでも使用できます。

CANCEL IMMEDIATE

CANCEL IMMEDIATEを指定すると、現在のアーカイブ REDOファイルのすべての REDOを適用した後、または次の REDOログ・ファイルを読み込んだ後の、いずれか早い方の処理の後に、管理リカバリ操作を終了します。

制限事項制限事項制限事項制限事項 : この句は、RECOVER MANAGED STANDBY DATABASE文を発行した同じセッションからは発行できません。

注意注意注意注意 : parallel_clauseの構文は、以前のリリースの構文に代わるものです。以前のリリースの構文は下位互換用にサポートされていますが、動作がわずかに異なることがあります。

NOPARALLEL シリアル実行を行う場合に、NOPARALLELを指定します。これはデフォルト値です。

PARALLEL PARALLELを指定すると、すべてのパーティション化インスタンスで使用可能な CPUの数に、初期化パラメータPARALLEL_THREADS_PER_CPUの値を掛けた並列度が選択されます。

PARALLEL integer

integerを指定すると、パラレル操作で使用されるパラレル・スレッド数である並列度並列度並列度並列度が指定されます。各パラレル・スレッドは、1、2個のパラレル実行サーバーを使用します。通常、最適な並列度が計算されるため、integerに値を指定する必要はありません。

参照参照参照参照 : 詳細は、10-41ページの「CREATE TABLE」の「parallel_clauseに関する注意事項」を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-17

Page 330: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

CREATE DATAFILE CREATE DATAFILE句を使用すると、元のデータ・ファイルのかわりに新しい空のデータ・ファイルが作成されます。この句を使用すると、バックアップを取らずに失われたデータ・ファイルを再作成できます。'filename'には、データベースの一部であるファイル、または以前一部であったファイルを指定します。filespecには、新しいデータ・ファイルの名前とサイズを指定します。AS句を指定しないと、Oracleによって、'filename'に指定したファイルと同じ名前とサイズのファイルが新しく作成されます。

リカバリ時には、元のデータ・ファイルの作成後に書き込まれたアーカイブ REDOログを、失われたデータ・ファイルにかわる新しい空のデータ・ファイルに適用する必要があります。

新しいファイルは、元のファイルの作成時と同じ状態で作成されます。新しいファイルを元のファイルが失われた時点の状態に戻すには、メディア・リカバリを行ってください。

制限事項制限事項制限事項制限事項 : SYSTEM表領域の最初のデータ・ファイルに基づいて新しいファイルを作成することはできません。

DATAFILE 'filename'

DATAFILE句を使用すると、次のようにデータベース・ファイルを変更できます。

ONLINE ONLINEを指定すると、データ・ファイルがオンラインになります。

OFFLINE OFFLINEを指定すると、データ・ファイルがオフラインになります。データベースがオープンされている場合、データ・ファイルをオンラインに戻す前に、データ・ファイルのメディア・リカバリを行う必要があります。これは、データ・ファイルがオフラインになる前に、チェックポイントが実行されないためです。

DROPは、データベースが NOARCHIVELOGモードの場合に、データ・ファイルをオフラインにします。

RESIZE RESIZEを指定すると、データ・ファイルのサイズを指定した絶対サイズ(バイト単位)を増やしたり減らすことができます。KまたはMを使用すると、KBまたはMB単位で指定できます。デフォルト値はないため、必ずサイズを指定してください。

増やしたサイズに対して十分なディスク領域がない場合、または減らしたサイズを超えるデータがファイルに含まれる場合、エラー・メッセージが戻されます。

7-18 Oracle8i SQLリファレンス Vol.1

Page 331: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

autoextend_clause

autoextend_clauseは、データ・ファイルの自動拡張を使用可能または使用禁止にします。この句を指定しないと、データ・ファイルは自動的に拡張されません。

OFFの場合は、自動拡張を使用禁止にします。NEXTおよび MAXSIZEは 0(ゼロ)に設定されます。NEXTおよび MAXSIZEの値は、後続の ALTER DATABASE AUTOEXTEND文で再指定する必要があります。

� ONの場合は、自動拡張を使用可能にします。

� NEXTには、エクステントがさらに必要になった場合に、データ・ファイルに自動的に割り当てられるディスク領域の増分サイズ(バイト単位)を指定します。KまたはMを使用すると、KBまたはMB単位で指定できます。デフォルト値は 1データ・ブロックです。

� MAXSIZEには、データ・ファイルの自動拡張で使用されるディスク領域の最大サイズを指定します。

� UNLIMITEDは、データ・ファイルへのディスク領域割当てを無制限にします。

END BACKUP END BACKUPを指定すると、オンライン表領域のバックアップ中に、システム障害、インスタンス障害、または SHUTDOWN ABORTによる割込みが発生した場合は、データベース起動時のメディア・リカバリを回避します。

注意注意注意注意 : 影響を受けたファイルをバックアップからリストアした場合は、ALTER TABLESPACE ... END BACKUPを使用しないでください。メディア・リカバリについては、『Oracle8iバックアップおよびリカバリ・ガイド』を参照してください。

TEMPFILE 'filename'

現行のテンポラリ・ファイルのサイズを変更できます。また、autoextend_clauseを指定すると、永続データ・ファイルと同じ効果を持たせることができます。

制限事項制限事項制限事項制限事項 :データベースをオープンしないと、TEMPFILEは指定できません。

DROP データベースからテンポラリ・ファイルを削除します。表領域はそのまま残ります。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-19

Page 332: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

logfile_clauseslogfile_clausesは、ログ・ファイルを追加、削除または変更できます。

ARCHIVELOG REDOログ・ファイル・グループを再使用する前に、内容をアーカイブする必要がある場合は、ARCHIVELOGを指定します。このモードでは、メディア・リカバリができるようになります。この句は、エラーなしの通常終了または即時終了でインスタンスを停止し再起動した後に、データベースを Parallel Server使用禁止モードでマウントした場合にのみ使用できます。

NOARCHIVELOG REDOログ・ファイル・グループを再使用する前に、内容をアーカイブする必要がない場合は、NOARCHIVELOGを指定します。このモードでは、メディア障害後のリカバリはできません。

ARCHIVELOG句および NOARCHIVELOG句は、自インスタンスでデータベースが Oracle Parallel Server使用禁止モードでマウントされていて、かつオープンされていない場合にのみ使用できます。

ADD LOGFILE ADD LOGFILE句を使用すると、指定したスレッドに 1つ以上の REDOログ・ファイル・グループを追加して、そのスレッドに割り当てられているインスタンスが、そのグループを使用できるようになります。

THREAD integer

THREAD句は、パラレル・モードの Parallel ServerでOracleを使用している場合にのみ適用可能です。integerはスレッド番号です。作成可能なスレッドの数は、CREATE DATABASE文で指定したMAXINSTANCESパラメータ値によって制限されます。

THREADパラメータを指定しないと、REDOログ・ファイル・グループは、自インスタンスに割り当てられたスレッドに追加されます。

GROUP integer GROUP句は、すべてのスレッドのすべてのグループ間で、REDOログ・ファイル・グループを一意に識別します。この値は、1~ MAXLOGFILESの値までの範囲で設定できます。同一の GROUP値を持つ REDOログ・ファイル・グループは、複数追加できません。このパラメータを指定しない場合、値が自動的に生成されます。REDOログ・ファイル・グループのGROUP値は、動的パフォーマンス・ビュー V$LOGで調べることができます。

7-20 Oracle8i SQLリファレンス Vol.1

Page 333: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

filespec filespecには、1つ以上のメンバー(コピー)で構成される REDOログ・ファイル・グループを指定します。

参照参照参照参照 : 詳細は、11-27ページの「filespec」を参照してください。

ADD LOGFILE MEMBER

ADD LOGFILE MEMBER句を使用すると、新しいメンバーが既存の REDOログ・ファイル・グループに追加されます。新しいメンバーを、それぞれ 'filename'に指定します。すでにファイルが存在する場合、追加するメンバーはグループ内の他のメンバーと同じサイズである必要があり、REUSEを指定する必要があります。ファイルが存在しない場合、適切なサイズのファイルが作成されます。メディア障害によってグループのすべてのメンバーを失った場合は、そのグループにメンバーを追加することはできません。

次のいずれかの方法で、既存の REDOログ・ファイル・グループを指定できます。

GROUP integer REDOログ・ファイル・グループを識別する GROUPパラメータの値を指定します。

filename[s] REDOログ・ファイル・グループのすべてのメンバーを指定します。ご使用のオペレーティング・システムの表記規則に従って、ファイル名を完全に指定する必要があります。

DROP LOGFILE DROP LOGFILE句を使用すると、REDOログ・ファイル・グループのすべてのメンバーを削除します。ADD LOGFILE MEMBER句で示したとおり、REDOログ・ファイル・グループを指定します。

� 現行のログ・ファイル・グループを削除する場合、最初に ALTER SYSTEM SWITCH LOGFILE文を発行する必要があります。

参照参照参照参照 : 7-123ページの「ALTER SYSTEM」を参照してください。

� アーカイブが必要な REDOログ・ファイル・グループは、削除できません。

� REDOログ・ファイル・グループを削除して、その REDOスレッドの REDOログ・ファイル・グループが 2つ未満になる場合は、削除できません。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-21

Page 334: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

DROP LOGFILE MEMBER

DROP LOGFILE MEMBER句を使用すると、1つ以上の REDOログ・ファイル・メンバーを削除します。各 'filename'には、ご使用のオペレーティング・システムのファイル名の表記規則に従って、メンバーを完全に指定する必要があります。

� 現行のログのログ・ファイルを削除する場合、最初に ALTER SYSTEM SWITCH LOGFILE文を発行する必要があります。

参照参照参照参照 : 7-123ページの「ALTER SYSTEM」を参照してください。

� この句では、有効なデータを含む REDOログ・ファイル・グループのすべてのメンバーは削除できません。このような操作には、DROP LOGFILE句を使用してください。

CLEAR LOGFILE CLEAR LOGFILE句を使用すると、オンライン REDOログが初期化し直されます。REDOログをアーカイブしないオプションもあります。CLEAR LOGFILEは、REDOログの追加および削除と似ていますが、スレッドに 2つ以外ログがない場合や、クローズ状態のスレッドの現行のREDOログ・ファイルに対しても発行できます。

UNARCHIVED アーカイブされていない REDOログを再使用する場合は、UNARCHIVEDを指定する必要があります。

注意注意注意注意 : リカバリ用に REDOログが必要な場合にUNARCHIVEDを指定すると、バックアップが使用できなくなります。

UNRECOVERABLE DATAFILE

データベースを ARCHIVELOGモードで使用してデータ・ファイルをオフラインにする(DROPキーワードを使用しないで ALTER DATABASE ... DATAFILE OFFLINEを指定する)場合、およびそのデータ・ファイルをオンラインに戻す前に、アーカイブされていないログを消去する必要がある場合は、UNRECOVERABLE DATAFILEを指定する必要があります。この場合、CLEAR LOGFILE文が終了してから、そのデータ・ファイルおよび表領域全体を削除する必要があります。

7-22 Oracle8i SQLリファレンス Vol.1

Page 335: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

controlfile_clauses

メディア・リカバリで必要なログを、CLEAR LOGFILEを使用して消去しないでください。データベースのチェックポイント後の REDOを含むログを消去する必要がある場合は、不完全メディア・リカバリを最初に実行する必要があります。オープンしているスレッドの現行の REDOログは消去できます。クローズしているスレッドの現行のログは、そのスレッド内でログを切り替えれば消去できます。

CLEAR LOGFILE文が、システム障害またはインスタンス障害による割込みを受けると、データベースがハングする場合があります。このような状況になった場合は、データベースの再起動後に、この文を再発行します。ログ・グループのあるメンバーにアクセスしようとした際、I/Oエラーによる障害が発生した場合は、そのメンバーを削除して他のメンバーを追加できます。

CREATE STANDBY CONTROLFILE

CREATE STANDBY CONTROLFILE句を使用すると、スタンバイ・データベースを管理するための制御ファイルを作成できます。ファイルがすでに存在している場合は、REUSEを指定してください。

参照参照参照参照 : 『Oracle8iスタンバイ・データベース概要および管理』を参照してください。

BACKUP CONTROLFILE

BACKUP CONTROLFILE句を使用すると、現行の制御ファイルのバックアップが取られます。

TO 'filename' 制御ファイルのバックアップ先ファイルを指定します。ご使用のオペレーティング・システムの表記規則に従って、ファイル名を完全に指定する必要があります。指定したファイルがすでに存在している場合は、REUSEを指定します。

TO TRACE 制御ファイルの物理バックアップを取るのではなく、データベースのトレース・ファイルに SQL文を書き込む場合は、TO TRACEを指定します。SQL文を使用すると、データベースの起動、制御ファイルの再作成、データベースのリカバリやオープンなどの操作を、作成した制御ファイルに基づいて正しく実行できます。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-23

Page 336: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

MOUNTMOUNT句を使用すると、データベースをマウントします。データベースがマウントされている場合、この句は使用できません。

CONVERTCONVERT句を使用すると、Oracle7のデータ・ディクショナリを変換します。この句を使用すると、Oracle7のデータ・ディクショナリは、Oracleデータベース内に存在しなくなります。

制御ファイルのコピーがすべて失われた場合(または、制御ファイルのサイズを変更する場合)は、トレース・ファイルからスクリプト・ファイルに文をコピーし、必要に応じて文を編集すると、そのデータベースを使用できます。

� RESETLOGSは、データベースの起動用としてトレース・ファイルに書き込まれた SQL文が、ALTER DATABASE OPEN RESETLOGSであることを示します。

� NORESETLOGSは、データベースの起動用としてトレース・ファイルに書き込まれた SQL文が、ALTER DATABASE OPEN NORESETLOGSであることを示します。

STANDBY DATABASE

STANDBYを指定すると、スタンバイ・データベースをマウントします。

参照参照参照参照 : 『Oracle8iスタンバイ・データベース概要および管理』を参照してください。

CLONE DATABASE CLONEを指定すると、クローン・データベースをマウントします。

参照参照参照参照 : 『Oracle8iバックアップおよびリカバリ・ガイド』を参照してください。

注意注意注意注意 : この句は、Oracle8iへ移行する場合にのみ使用し、データベースがマウントされている場合は使用しないでください。

参照参照参照参照 : 『Oracle8i移行ガイド』を参照してください。

7-24 Oracle8i SQLリファレンス Vol.1

Page 337: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

ACTIVATE STANDBY DATABASEACTIVATE STANDBY DATABASE句は、スタンバイ・データベースの状態をアクティブ・データベースに変更します。データベースがマウントされている場合、この句は使用できません。

OPENOPEN句を使用すると、データベースを使用可能な状態になります。データベースをオープンするには、マウントしておく必要があります。スタンバイ・データベースをオープンするには、アクティブにしておく必要があります。

参照参照参照参照 : 『Oracle8iスタンバイ・データベース概要および管理』を参照してください。

READ ONLY READ ONLYを指定すると、トランザクションが読取り専用に制限され、ユーザーは REDOログを生成できなくなります。この句は、アーカイブ・ログをプライマリ・データベース・サイトからコピー中でも、問合せに使用可能なスタンバイ・データベースを作成するために使用できます。

制限事項制限事項制限事項制限事項 :

� データベースが他のインスタンスで READ WRITEでオープンされている場合、READ ONLYではオープンできません。

� データベースをリカバリする必要がある場合、READ ONLYではオープンできません。

� データベースが READ ONLYでオープンされている間は、表領域をオフラインに切り替えることはできません。ただし、データ・ファイルのオフラインとオンラインの切替えはできます。また、データベースが READ ONLYでオープンされている間は、オフラインのデータ・ファイルおよび表領域をリカバリできます。

READ WRITE READ WRITEを指定すると、読取り /書込みモードでデータベースがオープンされ、ユーザーは REDOログを生成できるようになります。これはデフォルト値です。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-25

Page 338: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

RENAME GLOBAL_NAMERENAME GLOBAL_NAMEを指定すると、データベースのグローバル名を変更できます。databaseには、データベースの新しい名前を 8バイト以内の長さで指定します。オプションの domainには、ネットワーク階層におけるデータベースの有効な位置を指定します。データベースがマウントされている場合、この句は使用できません。

RENAME FILERENAME FILE句を使用すると、データ・ファイル、テンポラリ・ファイルまたは REDOログ・ファイル・メンバーを改名できます。この句は、制御ファイルのファイルのみを改名します。オペレーティング・システムのファイルは、実際には改名されません。この句を指定する前に、オペレーティング・システムのファイル名の表記規則に従って、それぞれのファイル名を指定してください。データベースがマウントされている場合、この句は使用できません。

RESETLOGS RESETLOGSを指定すると、現行のログ順序番号を 1にリセットし、リカバリ時に適用されなかったREDO情報が今後適用されないように破棄されます。これによって、REDOログに記録されている変更は、すべて破棄されますが、データベース内の変更は破棄されません。

RECOVER句による不完全リカバリや、バックアップ制御ファイルによるメディア・リカバリを行った後は、RESETLOGSを指定してデータベースをオープンしてください。この句を使用してデータベースをオープンした場合は、データベース全体のバックアップを行ってください。

NORESETLOGS NORESETLOGSを指定すると、ログの順序番号およびREDOログ・ファイルの現在の状態が保持されます。

制限事項制限事項制限事項制限事項 : バックアップ制御ファイルによる完全メディア・リカバリまたは不完全メディア・リカバリを行った後でのみ RESETLOGSおよびNORESETLOGSを指定できます。それ以外の場合は、NORESETLOGSが自動的に適用されます。

注意注意注意注意 : データベース名を変更しても、リモート・データベース内の既存のデータベース・リンク、シノニム、ストアド・プロシージャ、ストアド・ファンクションからのユーザーのデータベースに対するグローバル参照は変更されません。これらの参照を変更するのは、リモート・データベース管理者の責任です。

参照参照参照参照 : グローバル名の詳細は、『Oracle8i分散システム』を参照してください。

7-26 Oracle8i SQLリファレンス Vol.1

Page 339: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

RESET COMPATIBILITYRESET COMPATIBILITYを指定すると、次に再起動する際、Oracleの以前のバージョンに再設定する必要があるデータベースにマークが付きます。データベースがマウントされている場合、この句は使用できません。

ENABLE THREADOracle Parallel Server環境において、ENABLE THREADを指定すると、REDOログ・ファイル・グループの指定スレッドが使用可能になります。使用可能にできるスレッドは、2つ以上の REDOログ・ファイルを持つスレッドのみです。データベースは、オープンされている必要があります。

DISABLE THREADDISABLE THREADを指定すると、指定スレッドをすべてのインスタンスで使用禁止にできます。データベースは、オープンされている必要がありますが、指定したスレッドを使用しているインスタンスが、データベースをマウント済の場合は、そのスレッドを使用禁止にできません。

注意注意注意注意 : RESET COMPATIBILITYは、下位互換性に影響する Oracleの機能を使用禁止にしている場合にのみ有効です。

参照参照参照参照 : Oracleの以前のバージョンへのダウングレードの詳細は、『Oracle8i移行ガイド』を参照してください。

PUBLIC PUBLICを指定すると、初期化パラメータ THREADで特定のスレッドを明示的に要求していないインスタンスに対して、使用可能になったスレッドを使用できるようにします。PUBLICを指定しないと、初期化パラメータ THREADを使用して明示的に要求するインスタンスのみがこのスレッドを使用できます。

参照参照参照参照 : スレッドを使用可能または使用禁止にする場合の詳細は、『Oracle8i Parallel Server管理、配置およびパフォーマンス』を参照してください。

参照参照参照参照 : スレッドを使用可能または使用禁止にする場合の詳細は、『Oracle8i Parallel Server管理、配置およびパフォーマンス』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-27

Page 340: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

CHARACTER SET、、、、NATIONAL CHARACTER SETCHARACTER SETは、データベースでデータを格納する場合に使用するキャラクタ・セットを変更します。NATIONAL CHARACTER SETは、NCHAR、NCLOBまたは NVARCHAR2と定義された列にデータを格納する場合に使用する各国語キャラクタ・セットを変更します。character_setは、引用符なしで指定します。データベースは、オープンされている必要があります。

制限事項制限事項制限事項制限事項 :

� SYSDBAシステム権限が必要です。また、データベースは、制限モードで(たとえば、SQL*Plusの STARTUP RESTRICTコマンドを使用して)起動してください。

� 現在のキャラクタ・セットは、変更するキャラクタ・セットの厳密なサブセットである必要があります。ソース・キャラクタ・セットのコードポイント値で表される各キャラクタは、ターゲット・キャラクタ・セットの同一コードポイント値で表される必要があります。

例例例例

READ ONLY / READ WRITEの例の例の例の例 次の最初の文は、データベースを読取り専用モードでオープンします。2番目の文は、データベースを読み書き両用モードに戻し、オンライン REDOログを消去します。

ALTER DATABASE OPEN READ ONLY;

ALTER DATABASE OPEN READ WRITE RESETLOGS;

PARALLELの例の例の例の例 次の文は、パラレル・リカバリ処理を使用して表領域のリカバリを行います。

ALTER DATABASE RECOVER TABLESPACE binky PARALLEL;

注意注意注意注意 : ALTER DATABASE CHARACTER SET文または ALTER DATABASE NATIONAL CHARACTER SET文をロールバックすることはできません。そのため、それらの文を発行する前に、データベース全体のバックアップを取ってください。

参照参照参照参照 : 有効なキャラクタ・セットのリストについては、『Oracle8i NLSガイド』を参照してください。

7-28 Oracle8i SQLリファレンス Vol.1

Page 341: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

REDOログ・ファイル・グループの例ログ・ファイル・グループの例ログ・ファイル・グループの例ログ・ファイル・グループの例 次の文は、2つのメンバーを持つ REDOログ・ファイル・グループを追加し、GROUPパラメータの値に 3を指定してこのグループを識別します。

ALTER DATABASE stocks ADD LOGFILE GROUP 3 ('diska:log3.log' , 'diskb:log3.log') SIZE 50K;

REDOログ・ファイル・グループ・メンバーの例ログ・ファイル・グループ・メンバーの例ログ・ファイル・グループ・メンバーの例ログ・ファイル・グループ・メンバーの例 次の文は、前述の例で追加した REDOログ・ファイル・グループにメンバーを 1つ追加します。

ALTER DATABASE stocks ADD LOGFILE MEMBER 'diskc:log3.log' TO GROUP 3;

ログ・ファイル・メンバーの削除例ログ・ファイル・メンバーの削除例ログ・ファイル・メンバーの削除例ログ・ファイル・メンバーの削除例 次の文は、前述の例で追加した REDOログ・ファイル・メンバーを削除します。

ALTER DATABASE stocks DROP LOGFILE MEMBER 'diskc:log3.log';

ログ・ファイル・メンバーの改名例ログ・ファイル・メンバーの改名例ログ・ファイル・メンバーの改名例ログ・ファイル・メンバーの改名例 次の文は、REDOログ・ファイル・メンバーを改名します。

ALTER DATABASE stocks RENAME FILE 'diskb:log3.log' TO 'diskd:log3.log';

前述の例では、REDOログ・グループ・メンバーのファイルが、別のファイル名に変更されただけです。ファイル名が、実際に 'diskb:log3.log'から 'diskd:log3.log'に変更されたわけではありません。実際のファイル名を変更するには、オペレーティング・システムから操作する必要があります。

すべてのログ・ファイル・グループ・メンバーの削除例すべてのログ・ファイル・グループ・メンバーの削除例すべてのログ・ファイル・グループ・メンバーの削除例すべてのログ・ファイル・グループ・メンバーの削除例 次の文は、REDOログ・ファイル・グループ 3のすべてのメンバーを削除します。

ALTER DATABASE stocks DROP LOGFILE GROUP 3;

REDOログ・ファイル・グループの追加例ログ・ファイル・グループの追加例ログ・ファイル・グループの追加例ログ・ファイル・グループの追加例 次の文は、3つのメンバーを持つ REDOログ・ファイル・グループをスレッド 5(Oracle Parallel Server環境内)に追加して、このグループに GROUPパラメータ値 4を代入します。

ALTER DATABASE stocks ADD LOGFILE THREAD 5 GROUP 4 ('diska:log4.log', 'diskb:log4:log', 'diskc:log4.log' );

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-29

Page 342: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

Parallel Serverのスレッドを使用禁止にする例のスレッドを使用禁止にする例のスレッドを使用禁止にする例のスレッドを使用禁止にする例 次の文は、Oracle Parallel Server環境のスレッド 5を使用禁止にします。

ALTER DATABASE stocks DISABLE THREAD 5;

Parallel Serverのスレッドを使用可能にする例のスレッドを使用可能にする例のスレッドを使用可能にする例のスレッドを使用可能にする例 次の文は、Oracle Parallel Serverのスレッド 5を使用可能にして、特定のスレッドを明示的に要求しない任意の Oracleインスタンスが、このスレッドを使用できるようにします。

ALTER DATABASE stocks ENABLE PUBLIC THREAD 5;

新しいデータ・ファイルの作成例新しいデータ・ファイルの作成例新しいデータ・ファイルの作成例新しいデータ・ファイルの作成例 次の文は、新しいデータ・ファイル 'disk1:db1.dat'を基にデータ・ファイル 'disk2:db1.dat'を作成します。

ALTER DATABASE CREATE DATAFILE 'disk1:db1.dat' AS 'disk2:db1.dat';

グローバル・データベース名の変更例グローバル・データベース名の変更例グローバル・データベース名の変更例グローバル・データベース名の変更例 次の文は、データベースのグローバル名を変更し、データベース名とドメインの両方を指定します。

ALTER DATABASE RENAME GLOBAL_NAME TO sales.australia.acme.com;

キャラクタ・セットの例キャラクタ・セットの例キャラクタ・セットの例キャラクタ・セットの例 次の文は、データベース・キャラクタ・セットおよび各国語キャラクタ・セットをWE8ISO8859P1キャラクタ・セットに変更します。

ALTER DATABASE db1 CHARACTER SET WE8ISO8859P1;ALTER DATABASE db1 NATIONAL CHARACTER SET WE8ISO8859P1;

データベース名はオプションです。キャラクタ・セット名は引用符を付けずに指定します。

データ・ファイルのサイズの変更例データ・ファイルのサイズの変更例データ・ファイルのサイズの変更例データ・ファイルのサイズの変更例 次の文は、データ・ファイル 'disk1:db1.dat'のサイズを変更します。

ALTER DATABASE DATAFILE 'disk1:db1.dat' RESIZE 10 M;

ログ・ファイルの消去例ログ・ファイルの消去例ログ・ファイルの消去例ログ・ファイルの消去例 次の文は、ログ・ファイルを消去します。

ALTER DATABASE CLEAR LOGFILE 'disk3:log.dbf';

7-30 Oracle8i SQLリファレンス Vol.1

Page 343: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

データベースのリカバリ例データベースのリカバリ例データベースのリカバリ例データベースのリカバリ例 次の文は、データベース全体を完全にリカバリし、必要な新しいアーカイブ REDOログ・ファイル名を生成します。

ALTER DATABASE RECOVER AUTOMATIC DATABASE;

次の文は、Oracleが適用する REDOログ・ファイル名を明示的に指定します。

ALTER DATABASE RECOVER LOGFILE 'diska:arch0006.arc';

次の文は、時間ベースのデータベース・リカバリを実行します。

ALTER DATABASE RECOVER AUTOMATIC UNTIL TIME '1998-10-27:14:00:00';

データベースは、1998年 10月 27日の午後 2時の状態にリカバリされます。

次の文は、表領域 user5をリカバリします。

ALTER DATABASE RECOVER TABLESPACE user5;

次の文は、元のスタンバイ・データベース内の対応するデータ・ファイル、関連するアーカイブ・ログおよび現行のスタンバイ・データベース制御ファイルを使用して、スタンバイ・データ・ファイル /finance/stbs_21.fをリカバリします。

ALTER DATABASE RECOVER STANDBY DATAFILE '/finance/stbs_21.f' UNTIL CONTROLFILE;

管理スタンバイ・データベースの例管理スタンバイ・データベースの例管理スタンバイ・データベースの例管理スタンバイ・データベースの例 次の文は、自動スタンバイ・リカバリ・モードでスタンバイ・データベースをリカバリします。

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;

次の文は、データベースを自動スタンバイ・リカバリ・モードにします。管理リカバリ処理は、次のアーカイブ・ログまで最長 60分間待ち状態になります。

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE TIMEOUT 60;

後続のログがその前のログから 60分以内でアーカイブされる場合、手動で終了しない限り、リカバリが継続されます。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-31

Page 344: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DATABASE

次の文は、管理リカバリ操作を終了します。

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL IMMEDIATE;

管理リカバリ操作は、現行の REDOログ・ファイルから REDOの次のグループが読み込まれる前に終了します。メディア・リカバリは、現行の REDOログ・ファイルから REDOを適用している間に終了します。

7-32 Oracle8i SQLリファレンス Vol.1

Page 345: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DIMENSION

ALTER DIMENSION

用途用途用途用途ALTER DIMENSION文は、ディメンションの階層関係またはディメンション属性を変更します。

前提条件前提条件前提条件前提条件この文を使用する場合、ディメンションが自スキーマ内に設定されているか、または ALTER ANY DIMENSIONシステム権限が必要です。

所有者の権限があれば、ディメンションはいつでも変更されます。

構文構文構文構文

参照参照参照参照 : ディメンションの詳細は、9-34ページの「CREATE DIMENSION」を参照してください。

ALTER DIMENSIONschema .

dimension

ADD

level_clause

hierarchy_clause

attribute_clause

DROP

LEVEL level

RESTRICT

CASCADE

HIERARCHY hierarchy

ATTRIBUTE level

COMPILE

;

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-33

Page 346: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DIMENSION

level_clause::=

hierarchy_clause::=

join_clause::=

attribute_clause::=

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ次のキーワードおよびパラメータの意味は、ALTER DIMENSIONに対してのみ有効です。残りのキーワードおよびパラメータには、CREATE DIMENSION文での機能と同じ機能があります。

schema変更するディメンションのスキーマを指定します。schemaを指定しない場合、ディメンションが自スキーマ内にあるとみなされます。

参照参照参照参照 : 9-34ページの「CREATE DIMENSION」を参照してください。

LEVEL level IS

level_table . level_column

( level_table . level_column

,

)

HIERARCHY hierarchy ( child_level CHILD OF parent_leveljoin_clause

)

JOIN KEY

child_key_column

( child_key_column

,

)

REFERENCES parent_level

ATTRIBUTE level DETERMINES

dependent_column

( dependent_column

,

)

7-34 Oracle8i SQLリファレンス Vol.1

Page 347: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER DIMENSION

dimensionディメンションの名前を指定します。ディメンションは、すでに存在している必要があります。

ADDADD句では、データベースにレベル、階層または属性を追加できます。これらの要素の 1つを追加しても、既存のマテリアライズド・ビューは無効になりません。

ADD LEVEL句は、他の ADD句より前に処理されます。

DROPDROP句は、ディメンションにレベル、階層または属性を追加できます。指定するすべてのレベル、階層または属性は、すでに存在している必要があります。

制限事項制限事項制限事項制限事項 : 属性または階層がレベルを参照する場合は、すべての参照している属性および階層を削除するか、または CASCADEを指定しない限り、このレベルを削除することはできません。

COMPILECOMPILEを指定すると、無効のディメンションを明示的に再コンパイルできます。ADD句または DROP句が発行されると、ディメンションは自動的にコンパイルされます。ただし、ディメンションが参照するオブジェクトを変更する(たとえば、ディメンションで参照された表を削除した後再作成する)と、ディメンションが無効になるため、これを明示的に再コンパイルする必要があります。

例例例例

ディメンションの変更例ディメンションの変更例ディメンションの変更例ディメンションの変更例 この例では、timeディメンションを変更します。

ALTER DIMENSION time DROP HIERARCHY week_month;ALTER DIMENSION time DROP ATTRIBUTE cur_date;ALTER DIMENSION time ADD LEVEL day IS time_tab.t_day ADD ATTRIBUTE day DETERMINES t_holiday;

CASCADE レベルを参照する属性または階層をレベルとともに削除する場合、CASCADEを指定します。

RESTRICT 属性または階層が参照するレベルを削除できないようにする場合は、RESTRICTを指定します。これはデフォルト値です。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-35

Page 348: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER FUNCTION

ALTER FUNCTION

用途用途用途用途ALTER FUNCTION文を使用すると、無効なスタンドアロンのストアド・ファンクションを再コンパイルできます。明示的に再コンパイルすることによって、実行時に暗黙的に再コンパイルする必要がなくなり、また、実行時のコンパイル・エラーとパフォーマンス上のオーバーヘッドも回避できます。

ALTER FUNCTION文は、7-84ページの「ALTER PROCEDURE」と似ています。ファンクションとプロシージャの再コンパイルの詳細は、『Oracle8i概要』を参照してください。

前提条件前提条件前提条件前提条件ファンクションが自スキーマ内にあるか、ALTER ANY PROCEDUREシステム権限が必要です。

構文構文構文構文

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ

schemaファンクションが含まれているスキーマを指定します。schemaを指定しない場合、ファンクションが自スキーマ内に定義されているものとみなされます。

function再コンパイルするファンクション名を指定します。

注意注意注意注意 : この文を使用して既存のファンクションの宣言や定義を変更することはできません。ファンクションを再宣言または再定義する場合は、OR REPLACE句を指定して CREATE FUNCTION文を使用します。詳細は、9-42ページの「CREATE FUNCTION」を参照してください。

ALTER FUNCTIONschema .

function COMPILEDEBUG

;

7-36 Oracle8i SQLリファレンス Vol.1

Page 349: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER FUNCTION

COMPILECOMPILEを指定すると、ファンクションが再コンパイルされます。COMPILEキーワードは必須です。ファンクションが正常にコンパイルされない場合、SQL*Plusコマンド SHOW ERRORSを使用すると、関連するコンパイラ・エラー・メッセージが表示されます。

DEBUGDEBUGを指定すると、PL/SQLコンパイラに対して、PL/SQLデバッガ用のコードを生成および保存するように指示できます。

例例例例

ファンクションの再コンパイル例ファンクションの再コンパイル例ファンクションの再コンパイル例ファンクションの再コンパイル例 次の文は、ユーザー merriweatherのファンクションget_balを明示的に再コンパイルします。

ALTER FUNCTION merriweather.get_bal COMPILE;

get_balの再コンパイル時にエラーが発生しなければ、get_balは有効になります。その後、Oracleは、実行時にそれを再コンパイルしなくても実行できます。get_balの再コンパイル時にコンパイル・エラーが発生した場合はエラーが戻り、get_balは無効のままです。

また、get_balに依存しているすべてのオブジェクトが無効になります。その後、明示的に再コンパイルせずに、これらのオブジェクトを参照した場合、Oracleは、実行時にそれらを暗黙的に再コンパイルします。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-37

Page 350: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

ALTER INDEX

用途用途用途用途ALTER INDEX文を使用すると、既存の索引を変更または再作成できます。

前提条件前提条件前提条件前提条件索引が自スキーマ内にあるか、または ALTER ANY INDEXシステム権限が必要です。

スキーマ・オブジェクト権限は、個々の索引パーティションまたはサブパーティションではなく、親索引に付与されている必要があります。

索引パーティションの変更、再作成または分割、あるいは索引サブパーティションの変更または再作成を行う場合、表領域割当て制限が必要です。

参照参照参照参照 : 索引の作成については、9-51ページの「CREATE INDEX」を参照してください。

7-38 Oracle8i SQLリファレンス Vol.1

Page 351: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

構文構文構文構文

deallocate_unused_clause::=

ALTER INDEXschema .

index

deallocate_unused_clause

allocate_extent_clause

parallel_clause

physical_attributes_clause

LOGGING

NOLOGGING

rebuild_clause

PARAMETERS ( ’ alter_parameters ’ )

ENABLE

DISABLE

UNUSABLE

RENAME TO new_index_name

COALESCE

partitioning_clauses

;

DEALLOCATE UNUSEDKEEP integer

K

M

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-39

Page 352: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

allocate_extent_clause::=

parallel_clause::=

physical_attributes_clause::=

ALLOCATE EXTENT

(

SIZE integer

K

M

DATAFILE ’ filename ’

INSTANCE integer

)

NOPARALLEL

PARALLELinteger

PCTFREE integer

PCTUSED integer

INITRANS integer

MAXTRANS integer

storage_clause

7-40 Oracle8i SQLリファレンス Vol.1

Page 353: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

storage_clause: 11-129ページの「storage_clause」を参照してください。

rebuild_clause::=

compression_clause::=

partitioning_clauses::=

REBUILD

PARTITION partition

SUBPARTITION subpartition

REVERSE

NOREVERSE

parallel_clause

TABLESPACE tablespace

ONLINE

COMPUTE STATISTICS

physical_attributes_clause

compression_clause

LOGGING

NOLOGGING

PARAMETERS ( ’ rebuild_parameters ’ )

COMPRESSinteger

NOCOMPRESS

modify_default_attributes_clause

modify_partition_clause

rename_partition/subpartition_clause

drop_partition_clause

split_partition_clause

modify_subpartition_clause

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-41

Page 354: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

modify_default_attributes_clause::=

modify_partition_clause::=

rename_partition / subpartition_clause::=

drop_partition_clause::=

MODIFY DEFAULT ATTRIBUTESFOR PARTITION partition

physical_attributes_clause

TABLESPACEtablespace

DEFAULT

LOGGING

NOLOGGING

MODIFY PARTITION partition

physical_attributes_clause

LOGGING

NOLOGGING

deallocate_unused_clause

allocate_extent_clause

COALESCE

UNUSABLE

RENAMEPARTITION

SUBPARTITIONcurrent_name TO new_name

DROP PARTITION partition_name

7-42 Oracle8i SQLリファレンス Vol.1

Page 355: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

split_partition_clause::=

index_partition_description::=

modify_subpartition_clause::=

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ

schema索引が含まれているスキーマを指定します。schemaを指定しない場合、索引が自スキーマ内に定義されているものとみなされます。

index変更する索引の名前を指定します。

制限事項制限事項制限事項制限事項 :

� indexがドメイン・インデックスである場合は、PARAMETERS句、RENAME句またはrebuild_clause(PARAMETERS句の有無に関係なく)のみ指定できます。その他のすべての句は無効です。

SPLIT PARTITION partition_name_old AT ( value_list )

INTO ( index_partition_description , index_partition_descrpition ) parallel_clause

PARTITIONpartition

segment_attributes_clause

compression_clause

MODIFY SUBPARTITION subpartition

UNUSABLE

allocate_extent_clause

deallocate_unused_clause

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-43

Page 356: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

� LOADINGまたは FAILEDのマークが付いているドメイン・インデックスは、変更または改名できません。索引に FAILEDのマークが付いている場合、REBUILD句のみ指定できます。

deallocate_unused_clausedeallocate_unused_clauseは、索引の終わりの未使用領域の割当てを明示的に解除し、解放された領域を表領域の他のセグメントで使用できるようになります。ただし、解放できるのは、最高水位標を超える未使用領域のみです。

indexがレンジ・パーティションまたはハッシュ・パーティションである場合、各索引パーティションの未使用領域の割当てが解除されます。indexがコンポジット・パーティション表のローカル索引である場合、各索引サブパーティションの未使用領域の割当てが解除されます。

制限事項制限事項制限事項制限事項 :

� この句は、一時表の索引に対して指定できません。

� この句および rebuild_clauseは、指定できません。

allocate_extent_clauseallocate_extent_clauseは、索引の新しいエクステントを明示的に割り当てます。ハッシュ・パーティション表のローカル索引に対して、新規エクステントが索引の各パーティションに割り当てられます。

制限事項制限事項制限事項制限事項 : この句は、一時表の索引、あるいはレンジ・パーティションまたはコンポジット・パーティション索引に対して指定できません。

参照参照参照参照 : ドメイン・インデックスの LOADINGおよび FAILED状態については、『Oracle8iデータ・カートリッジ開発者ガイド』を参照してください。

参照参照参照参照 : この句の詳細は、8-2ページの「ALTER TABLE」を参照してください。

KEEP integer KEEP句は、割当てを解除した後に索引に残す、最高水位標を超えるバイト数を指定できます。残りのエクステント数が MINEXTENTSより少ない場合、MINEXTENTSは現行のエクステント数に設定されます。初期エクステントが INITIALより小さくなると、INITIALは初期エクステントの現行の値に設定されます。KEEPを指定しないと、すべての未使用領域が解放されます。

参照参照参照参照 : この句の詳細は、8-2ページの「ALTER TABLE」を参照してください。

7-44 Oracle8i SQLリファレンス Vol.1

Page 357: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

parallel_clausePARALLEL句を使用すると、索引の問合せおよび DMLに対するデフォルトの並列度を変更します。

制限事項制限事項制限事項制限事項 : この句は、一時表の索引に対して指定できません。

GROUP integer エクステントのサイズをバイト単位で指定します。KまたはMを使用して、エクステントのサイズを KBまたはMB単位で指定します。SIZEを指定しないと、索引の記憶領域パラメータの値に基づいてエクステントのサイズが決定されます。

DATAFILE 'filename'

索引の表領域内で、新しいエクステントを割り当てるデータ・ファイルを 1つ指定します。DATAFILEを指定しないと、Oracleがデータ・ファイルを選択します。

INSTANCE integer

INSTANCE句を使用すると、指定したインスタンスのみが新しいエクステントを使用できるようになります。インスタンスは初期化パラメータINSTANCE_NUMBERの値で識別されます。このパラメータを指定しないと、すべてのインスタンスが新しいエクステントを使用できます。パラレル・モードの Parallel Serverオプションで Oracleを使用している場合にのみ、このパラメータを使用できます。

この句を使用してエクステントを割り当てた場合、NEXTおよび PCTINCREASE記憶領域パラメータの値は変更されません。したがって、割り当てる次のエクステントのサイズには影響ありません。

注意注意注意注意 : parallel_clauseの構文は、以前のリリースの構文に代わるものです。以前のリリースの構文は下位互換用にサポートされていますが、動作がわずかに異なることがあります。

NOPARALLEL シリアル実行を行う場合に、NOPARALLELを指定します。これはデフォルト値です。

PARALLEL PARALLELを指定すると、すべてのパーティション化インスタンスで使用可能な CPUの数に、初期化パラメータPARALLEL_THREADS_PER_CPUの値を掛けた並列度が選択されます。

PARALLEL integer

integerを指定すると、パラレル操作で使用されるパラレル・スレッド数である並列度並列度並列度並列度が指定されます。各パラレル・スレッドは、1、2個のパラレル実行サーバーを使用します。通常、最適な並列度が計算されるため、integerに値を指定する必要はありません。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-45

Page 358: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

physical_attributes_clausephysical_attributes_clauseを使用すると、非パーティション索引、パーティション索引のすべてのパーティションおよびサブパーティション、指定されたパーティション、または指定されたパーティションのすべてのサブパーティションに対するパラメータの値を変更できます。

制限事項制限事項制限事項制限事項 :

� この句は、一時表の索引に対して指定できません。

� 索引を変更する場合は、PCTUSEDパラメータを指定できません。

� 索引全体(ALTER INDEX)またはパーティション(ALTER INDEX ... MODIFY PARTITION)に対して、PCTFREEパラメータ値を変更できません。ALTER INDEX文の他のすべての形式では、PCTFREEを指定できます。

参照参照参照参照 : 詳細は、10-41ページの「CREATE TABLE」の「parallel_clauseに関する注意事項」を参照してください。

参照参照参照参照 : 物理属性パラメータの詳細は、10-7ページの「CREATE TABLE」を参照してください。

storage_clause

storage_clauseを使用すると、非パーティション索引、索引パーティション、またはパーティション索引のすべてのパーティションの記憶領域パラメータ、あるいはパーティション索引の記憶領域パラメータのデフォルト値を変更できます。

LOGGING| NOLOGGING

LOGGINGまたは NOLOGGINGは、非パーティション索引、レンジまたはハッシュ索引パーティション、コンポジット・パーティション索引のすべてのパーティションまたはサブパーティションに対する後続のダイレクト・ローダー(SQL*Loader)およびダイレクト・ロードの INSERT操作のログを、REDOログ・ファイルに記録するか(LOGGING)、記録しないか(NOLOGGING)を指定します。

7-46 Oracle8i SQLリファレンス Vol.1

Page 359: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

rebuild_clauserebuild_clauseを使用すると、既存の索引、あるいはパーティションまたはサブパーティションのいずれかを再構築します。ファンクション索引も使用可能にします。索引の基になる関数が存在しない場合、再構築された文は正確に実行されません。

制限事項制限事項制限事項制限事項 :

� 一時表の索引は、再構築できません。

NOLOGGINGモードでは、データの変更時に、(新しいエクステントを無効としてマーク設定し、ディクショナリの変更を記録するために)最小限のログが記録されます。メディア・リカバリ中に NOLOGGINGが適用された場合、REDOデータのログ記録が中断されるため、エクステント無効化レコードでは、一定のブロック範囲に「論理的に無効」というマークが付きます。このため、損失してはならない索引の場合は、NOLOGGINGモードでの操作の後にバックアップを取る必要があります。

データベースを ARCHIVELOGモードで実行する場合、LOGGINGモードでの操作の前に行ったバックアップからのメディア・リカバリによって、索引が再作成されます。ただし、NOLOGGINGモードでの操作の前に行ったバックアップからのメディア・リカバリでは、索引は再作成されません。

索引セグメントには、ベース表の属性と異なるロギング属性、および同じベース表の他の索引セグメントと異なるロギング属性を指定できます。

制限事項制限事項制限事項制限事項 : この句は、一時表の索引に対して指定できません。

参照参照参照参照 : LOGGINGおよびパラレル DMLの詳細は、『Oracle8i概要』および『Oracle8i Parallel Server概要』を参照してください。

RECOVERABLE | UNRECOVERABLE

これらのキーワードは以前のバージョンのもので、それぞれ LOGGINGおよび NOLOGGINGに置き換えられています。RECOVERABLEおよびUNRECOVERABLEは、下位互換性のためにサポートされていますが、LOGGINGおよび NOLOGGINGキーワードを使用することをお薦めします。

RECOVERABLEは、パーティション表または LOBの記憶特性の作成時には無効なキーワードです。UNRECOVERABLEは、パーティション表または索引構成表の作成時には無効なキーワードです。また、CREATE INDEXの AS副問合せ句を使用してのみ指定できます。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-47

Page 360: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

� パーティション索引全体は、再構築できません。後述のとおり、各パーティションまたはサブパーティションを再構築する必要があります。

� この文の deallocate_unused_clauseは指定できません。

� 索引全体(ALTER INDEX)またはパーティション(ALTER INDEX ... MODIFY PARTITION)に対して、PCTFREEパラメータ値を変更できません。ALTER INDEX文の他のすべての形式では、PCTFREEを指定できます。

PARTITION partition

PARTITION句を使用すると、索引のパーティションが 1つ再構築されます。この句は、索引パーティションを別の表領域に移動したり、作成時の物理属性を変更するために使用できます。

制限事項制限事項制限事項制限事項 : この句は、コンポジット・パーティション表のローカル索引に対して指定できません。かわりに、REBUILD SUBPARTITION句を使用してください。

参照参照参照参照 : パーティション・メンテナンス操作の詳細は、『Oracle8i 管理者ガイド』を参照してください。

SUBPARTITION subpartition

SUBPARTITION句を使用すると、索引のパーティションが 1つ再構築されます。この句を使用して、索引パーティションを他の表領域に移動することもできます。TABLESPACEを指定しないと、サブパーティションは同じ表領域に再構築されます。

制限事項制限事項制限事項制限事項 : パラメータ TABLESPACEおよび parallel_clause以外は、サブパーティションに対して指定できません。

REVERSE | NOREVERSE

索引ブロックのバイトを逆順に格納するかどうかを示します。

� REVERSEは、索引ブロックのバイトを逆順で格納します。また、索引を再構築する場合の ROWIDを除外します。

� NOREVERSEは、索引を再構築する場合に逆順にせずに索引ブロックのバイトを格納します。NOREVERSEキーワードを指定せずにREVERSE索引を再構築すると、再構築された索引は、逆キーの索引になります。

制限事項制限事項制限事項制限事項 :

� ビットマップ索引または索引構成表は逆順には格納できません。

� パーティションまたはサブパーティションに対して、REVERSEまたは NOREVERSEを指定できません。

7-48 Oracle8i SQLリファレンス Vol.1

Page 361: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

TABLESPACE tablespace

再構築された索引、索引パーティションまたは索引サブパーティションが格納される表領域を指定します。デフォルトは、索引またはパーティションを再構築する前に格納されていた表領域です。

COMPRESS COMPRESSを指定すると、キー列値の繰返し発生を排除するキー圧縮が使用可能になります。integerを使用して、接頭辞の長さ(圧縮する接頭辞列数)を指定します。

� 一意の索引の場合、接頭辞の長さの有効範囲は、1~キー列の数から1を引いた数までです。接頭辞の長さのデフォルト値は、キー列の数から 1を引いた数です。

� 一意でない索引の場合、接頭辞の長さの有効範囲は、1~キー列の数までです。接頭辞の長さのデフォルト値は、キー列の数です。

非パーティション索引(一意でない索引または 2列以上の一意索引)のみを圧縮します。

制限事項制限事項制限事項制限事項 : ビットマップ索引には、COMPRESSを指定できません。

NOCOMPRESS NOCOMPRESSを指定すると、キー圧縮が使用禁止になります。これはデフォルト値です。

ONLINE ONLINEを指定すると、表またはパーティションの DML操作を索引の再構築中に可能にするかどうかを指定します。

制限事項制限事項制限事項制限事項 :

� 索引構成表の 2次索引セグメントを構築中は、ONLINEパラメータを指定できません。

� オンラインで索引を作成中は、パラレル DMLはサポートされません。ONLINEを指定し、パラレル DML文を発行すると、Oracleはエラーを戻します。

COMPUTE STATISTICS

索引の再構築中に、比較的低コストで統計情報を収集する場合、COMPUTE STATISTICSを指定します。これらの統計情報は、SQL文の実行計画を選択する際に、オプティマイザによって使用中のデータ・ディクショナリに格納されます。

収集された統計情報のタイプは、再構築している索引のタイプによって異なります。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-49

Page 362: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

PARAMETERSPARAMETERS句は、ドメイン・インデックスのみに適用されます。索引を変更するため(または、rebuild_clauseでは、索引を再構築するため)のパラメータ文字列を指定します。パラメータ文字列の最大長は 1,000文字です。この文字列は、適切な索引タイプ・ルーチンに未解析のまま渡されます。

制限事項制限事項制限事項制限事項 :

� この句は、ドメイン・インデックス以外の索引には指定できません。

� indexに UNUSABLEのマークが付いていない場合のみ、パラメータ文字列が適切なルーチンに渡されます。

ENABLEENABLEは、索引が使用するユーザー定義ファンクションが削除または置換されたため使用禁止になったファンクション索引ファンクション索引ファンクション索引ファンクション索引のみに適用されます。次の条件が該当する場合、この句によって、このような索引が使用可能になります。

� ファンクションが現在有効な場合

� 現行のファンクションの署名が、索引が作成された場合のファンクションの署名と一致する場合

注意注意注意注意 : (表のかわりに)別の索引を使用して索引を作成する場合、元の索引は適切な統計情報を提供しない場合があります。このため、一般的に基となる表を使用して統計を計算します。その結果、統計は改善されますが、パフォーマンスが低下することがあります。

PL/SQLパッケージおよびプロシージャでは、その他の方法で統計を収集できます。

参照参照参照参照 : 『Oracle8i PL/SQLパッケージ・プロシージャ リファレンス』を参照してください。

LOGGING| NOLOGGING

ALTER INDEX ... REBUILD操作をログに記録するかどうかを指定します。

参照参照参照参照 :

� 索引タイプ・ルーチンの詳細は、『Oracle8iデータ・カートリッジ開発者ガイド』を参照してください。

� ドメイン・インデックスの詳細は、9-51ページの「CREATE INDEX」を参照してください。

7-50 Oracle8i SQLリファレンス Vol.1

Page 363: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

� ファンクションに現在 DETERMINISTICのマークが付いている場合

制限事項制限事項制限事項制限事項 : ENABLEと同じ文で、ALTER INDEXの他の句を指定できません。

DISABLEDISABLEは、ファンクション索引ファンクション索引ファンクション索引ファンクション索引にのみ適用されます。この句を使用してファンクション索引を使用禁止にします。たとえば、関数の本体を処理する場合に、これを行います。その後、ENABLEキーワードを使用して、索引を再構築、または別の ALTER INDEX文を指定できます。

UNUSABLEUNUSABLEを指定すると、索引、索引パーティションまたは索引サブパーティションにUNUSABLEのマークを付けます。使用禁止の索引を使用可能にする場合、再構築するか、または削除して再作成する必要があります。1つのパーティションに UNUSABLEのマークが付いている場合も、同じ索引の他のパーティションは有効です。その索引を必要とする文が使用禁止のパーティションにアクセスしない場合、その文を実行できます。また、使用禁止のパーティションは、分割または改名してから再構築できます。

制限事項制限事項制限事項制限事項 : この句は、一時表の索引に対して指定できません。

RENAME TORENAME句を使用すると、indexを new_index_nameに改名できます。new_index_nameは単一の識別子で、スキーマ名は含まれません。

COALESCECOALESCEを指定すると、再使用するために、索引ブロックの内容を空きブロックにマージできます(可能な場合)。

制限事項制限事項制限事項制限事項 :この句は、一時表の索引に対して指定できません。

partitioning_clausesALTER INDEX文のパーティション化句は、パーティション索引に対してのみ有効です。

制限事項制限事項制限事項制限事項 :

� これらの句は、一時表の索引に対して指定できません。

参照参照参照参照 : 領域管理および索引の結合の詳細は、『Oracle8i 管理者ガイド』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-51

Page 364: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

� ベース索引に対するいくつかの操作を1つのALTER INDEX文にまとめることはできますが(RENAMEおよび REBUILDは除く)、パーティション操作を、他のパーティション操作またはベース索引に対する操作と組み合せることはできません。

modify_default_attributes_clause

パーティション索引のデフォルト属性に新しい値を指定します。

制限事項制限事項制限事項制限事項 :ハッシュ・パーティション表またはコンポジット・パーティション表の索引の属性には、TABLESPACEのみ指定できます。

modify_partition_clause

modify_partition_clauseを使用すると、索引パーティション partitionまたはそのサブパーティションの実物理属性、ロギング属性または記憶特性を変更できます。

制限事項制限事項制限事項制限事項 :ハッシュ・パーティション表の索引に対して、physical_attributes_clauseを指定することはできません。

rename_partition / subpartition_clauserename_partitionまたは rename_subpartitionを使用すると、索引パーティションまたは索引サブパーティションを new_nameに改名できます。

TABLESPACE 索引の新規パーティション、または索引パーティションのサブパーティションに対して、デフォルトの表領域を指定します。

LOGGING | NOLOGGING

パーティション索引または索引パーティションのデフォルトのロギング属性を指定します。

FOR PARTITION partition

FOR PARTITION句を使用すると、コンポジット・パーティション表にあるローカル索引のパーティションのサブパーティションに対して、デフォルトの属性を指定します。

注意注意注意注意 : 索引がコンポジット・パーティション表のローカル索引である場合、ここで指定した変更は、以前に索引のサブパーティションに対して指定したすべての属性をオーバーライドします。また、このパーティションの将来のサブパーティションに対する属性のデフォルト値を設定します。サブパーティションの属性をオーバーライドせずにパーティションのデフォルトの属性を変更する場合は、ALTER TABLE ... MODIFY DEFAULT ATTRIBUTES OF PARTITIONを使用します。

7-52 Oracle8i SQLリファレンス Vol.1

Page 365: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

drop_partition_clause

drop_partition_clauseを使用すると、グローバル・パーティション索引からパーティションとその中のデータを削除できます。グローバル索引のパーティションを削除する場合、その索引の次のパーティションに UNUSABLEのマークが付けられます。グローバル索引の最上位のパーティションは削除できません。

split_partition_clause

split_partition_clauseを使用すると、グローバル・パーティション索引のパーティションを 2つのパーティションに分割し、新しいパーティションを索引に追加できます。

UNUSABLEのマークが付いたパーティションを分割すると、2つのパーティションが生成されますが、その両方に UNUSABLEのマークが付けられます。このようなパーティションは、使用前に再構築する必要があります。

使用可能なパーティションを分割した場合、索引データが入っている 2つのパーティションが生成されます。両方の新規パーティションは使用可能です。

modify_subpartition_clause

modify_subpartition_clauseを使用すると、UNUSABLEのマーク付け、またはコンポジット・パーティション表にあるローカル索引のサブパーティションに対する領域の割当てまたは解放を可能にします。このようなサブパーティションの他のすべての属性は、パーティションレベルのデフォルトの属性から継承されます。

例例例例

実属性の変更例実属性の変更例実属性の変更例実属性の変更例 次の文は、データ・ブロックが、5つの初期トランザクション・エントリと 100KBの増分エクステントを使用するように、SCOTTの索引 customerを変更します。

ALTER INDEX scott.customer INITRANS 5 STORAGE (NEXT 100K);

AT(value_list)

split_partition_1の新しい上限(境界は含まない)を指定します。value_listの値は、partition_name_oldの分割前のパーティション境界より小さく、1つ前のパーティション(ただし、そのようなパーティションがある場合)のパーティション境界より大きい値である必要があります。

INTO index_partition_description

分割の結果、生成される 2つのパーティションの名前と物理属性を任意に指定します。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-53

Page 366: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

scott.customer索引がパーティション化されている場合、同じ索引の将来のパーティションのデフォルト属性を変更します。将来追加される新しいパーティションでは、5つの初期トランザクション・エントリと 100KBの増分エクステントが使用されます。

索引パーティションの削除例索引パーティションの削除例索引パーティションの削除例索引パーティションの削除例 次の文は、索引パーティション ix_antarcticaを削除します。

ALTER INDEX sales_area_ix DROP PARTITION ix_antarctica;

デフォルト属性の変更例デフォルト属性の変更例デフォルト属性の変更例デフォルト属性の変更例 次の文は、ローカル・パーティション索引 sales_ix3のデフォルトの属性を変更します。将来追加される新しいパーティションでは、5つの初期トランザクション・エントリと 100KBの増分エクステントが使用されます。

ALTER INDEX sales_ix3 MODIFY DEFAULT ATTRIBUTES INITRANS 5 STORAGE ( NEXT 100K );

索引への使用禁止のマーク付けの例索引への使用禁止のマーク付けの例索引への使用禁止のマーク付けの例索引への使用禁止のマーク付けの例 次の文は、odx_acctno索引に UNUSABLEのマークを付けます。

ALTER INDEX idx_acctno UNUSABLE;

パーティションへの使用禁止のマーク付けの例パーティションへの使用禁止のマーク付けの例パーティションへの使用禁止のマーク付けの例パーティションへの使用禁止のマーク付けの例 次の文は、索引 idx_acctnoのパーティション idx_feb96に UNUSABLEのマークを付けます。

ALTER INDEX idx_acctno MODIFY PARTITION idx_feb96 UNUSABLE;

MAXEXTENTSの変更例の変更例の変更例の変更例 次の文は、パーティション brix_nyのエクステントの最大数を変更し、ロギング属性を変更します。

ALTER INDEX branch_ix MODIFY PARTITION brix_ny STORAGE( MAXEXTENTS 30 ) LOGGING;

パラレル問合せの使用禁止例パラレル問合せの使用禁止例パラレル問合せの使用禁止例パラレル問合せの使用禁止例 次の文は、索引 artist_ixに対するスキャンがパラレル化されないように、索引のパラレル属性を設定します。

ALTER INDEX artist_ix NOPARALLEL;

パーティションの再構築例パーティションの再構築例パーティションの再構築例パーティションの再構築例 次の文は、索引 artist_ix内のパーティション p063を再構築します。索引パーティションの再構築は、ログに記録されません。

ALTER INDEX artist_ix REBUILD PARTITION p063 NOLOGGING;

7-54 Oracle8i SQLリファレンス Vol.1

Page 367: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER INDEX

索引の改名例索引の改名例索引の改名例索引の改名例 次の文は、索引を改名します。

ALTER INDEX emp_ix1 RENAME TO employee_ix1;

索引パーティションの改名例索引パーティションの改名例索引パーティションの改名例索引パーティションの改名例 次の文は、索引パーティションを改名します。

ALTER INDEX employee_ix1 RENAME PARTITION emp_ix1_p3 TO employee_ix1_p3;

パーティションの分割例パーティションの分割例パーティションの分割例パーティションの分割例 次の文は、パーティション索引 partnum_ix内のパーティション partnum_ix_p6を partnum_ix_p5と partnum_ix_p6に分割します。

ALTER INDEX partnum_ix SPLIT PARTITION partnum_ix_p6 AT ( 5001 ) INTO ( PARTITION partnum_ix_p5 TABLESPACE ts017 LOGGING, PARTITION partnum_ix_p6 TABLESPACE ts004 );

2番目のパーティションには、元のパーティションの名前が付けられます。

索引ブロックの逆順格納例索引ブロックの逆順格納例索引ブロックの逆順格納例索引ブロックの逆順格納例 次の文は、索引ブロックのバイトが REVERSE順に格納されるように、索引 emp_ixを再構築します。

ALTER INDEX emp_ix REBUILD REVERSE;

索引統計の収集例索引統計の収集例索引統計の収集例索引統計の収集例 次の文は、非パーティション索引の emp_indx統計情報を収集します。

ALTER INDEX emp_indx REBUILD COMPUTE STATISTICS;

収集された統計情報のタイプは、再構築している索引のタイプによって異なります。

PARALLELの例の例の例の例 次の文は、パラレル実行プロセスを使用して、既存の索引から索引を再構築し、既存の索引のスキャンおよび新しい索引の構築を行います。

ALTER INDEX emp_idx REBUILD PARALLEL;

参照参照参照参照 : 詳細は、『Oracle8i概要』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-55

Page 368: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER JAVA

ALTER JAVA

用途用途用途用途ALTER JAVA文を使用すると、Javaクラス・スキーマ・オブジェクトの変換、または Javaソース・スキーマ・オブジェクトのコンパイルを強制実行します(Java名に対するすべての外部参照を他のクラスと対応付ける前に、Javaクラスのメソッドをコールすることはできません)。

前提条件前提条件前提条件前提条件Javaソース、クラスまたはリソースが自スキーマ内にあるか、または ALTER ANY PROCEDUREシステム権限が必要です。さらに、Javaクラスに対する EXECUTEオブジェクト権限も必要です。

構文構文構文構文

invoker_rights_clause::=

参照参照参照参照 : Javaクラスの変換および Javaソースのコンパイルの詳細は、『Oracle8i Javaストアド・プロシージャ開発者ガイド』を参照してください。

ALTER JAVASOURCE

CLASS

schema .object_name

RESOLVER ( ( match_string, schema_name

–) ) COMPILE

RESOLVE

invoker_rights_clause

;

AUTHIDCURRENT_USER

DEFINER

7-56 Oracle8i SQLリファレンス Vol.1

Page 369: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER JAVA

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ

JAVA SOURCEALTER JAVA SOURCEを使用すると、Javaソース・スキーマ・オブジェクトをコンパイルできます。

JAVA CLASSALTER JAVA CLASSを使用すると、Javaソース・スキーマ・オブジェクトを変換できます。

object_name前回作成した Javaクラスまたはソース・スキーマ・オブジェクトを指定します。小文字、または大文字と小文字を組み合せた名前を付けるには、二重引用符を使用してください。

RESOLVERRESOLVER句によって、Javaクラスまたはソースが作成されたときに指定したマッピング・ペアを使用して、完全に指定された参照用の Java名に対するスキーマの検索方法を指定できます。

RESOLVE | COMPILERESOLVEおよび COMPILEは、同義キーワードです。これらの句によって、プライマリ Javaクラス・スキーマ・オブジェクトの変換を指定できます。

� クラスに適用された場合、他のクラス・スキーマ・オブジェクトに対する参照名に変換されます。

� ソースに適用された場合、ソースがコンパイルされます。

invoker_rights_clauseinvoker_rights_clauseは、メソッドを定義したユーザーのスキーマ内で、権限を使用してクラスのメソッドを実行するか、または、CURRENT_USERのスキーマ内で、権限を使用してクラスのメソッドを実行するかを指定します。

また、この句は、問合せ、DML操作、およびその型のメンバー・ファンクションおよびプロシージャ内の動的 SQL文の外部名の変換方法も定義します。

参照参照参照参照 : 9-78ページの「CREATE JAVA」を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-57

Page 370: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER JAVA

例例例例

Javaクラスの変換例クラスの変換例クラスの変換例クラスの変換例 次の文は、Javaクラスを強制変換します。

ALTER JAVA CLASS "Agent" RESOLVER (("/home/java/bin/*" scott)(* public)) RESOLVE;

AUTHID CURRENT_USER

クラスのメソッドが CURRENT_USER権限で実行されることを指定する場合は、CURRENT_USERを意味します。この句はデフォルトで、実行者権限クラスを作成します。

また、この句は、問合せ、DML操作、および動的 SQL文の外部名をCURRENT_USERのスキーマで変換することも指定します。他のすべての文における外部名は、メソッドを含むスキーマで変換します。

AUTHID DEFINER

メソッドを定義したユーザーの権限を使用して、クラスのメソッドを実行する場合は、DEFINERを指定します。

さらに、メソッドのあるスキーマ内で外部名を変換するかどうかを指定します。

参照参照参照参照 :

� CURRENT_USERを判断する方法については、『Oracle8i概要』および『Oracle8iアプリケーション開発者ガイド 基礎編』を参照してください。

� 『Oracle8i Javaストアド・プロシージャ開発者ガイド』を参照してください。

7-58 Oracle8i SQLリファレンス Vol.1

Page 371: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW

ALTER MATERIALIZED VIEW

用途用途用途用途マテリアライズド・ビューは、1つ以上の表の問合せ結果を含むデータベース・オブジェクトです。ALTER MATERIALIZED VIEW文を使用すると、既存のマテリアライズド・ビューを次の方法で変更します。

� 記憶特性を変更します。

� リフレッシュ方法、モードまたは時間を変更します。

� 別のタイプのマテリアライズド・ビューになるように構造を変更します。

� 問合せのリライトを使用可能または使用禁止にします。

問合せの表を、マスター表マスター表マスター表マスター表(レプリケーション用語)またはディテール表ディテール表ディテール表ディテール表(データ・ウェアハウス用語)といいます。このマニュアルでは、「マスター表」を使用します。マスター表マスター表マスター表マスター表が格納されているデータベースをマスター・データベースといいます。

前提条件前提条件前提条件前提条件マテリアライズド・ビューを変更するために必要な権限は、次のように直接付与される必要があります。

マテリアライズド・ビューが自スキーマ内にあるか、または ALTER ANY MATERIALIZED VIEWシステム権限が必要です。

問合せのリライトでマテリアライズド・ビューを使用可能にする場合、次の条件が必要です。

注意注意注意注意 : キーワード SNAPSHOTは、MATERIALIZED VIEWのかわりに下位互換用にサポートされています。

参照参照参照参照 :

� マテリアライズド・ビューの作成の詳細は、9-86ページの「CREATE MATERIALIZED VIEW」を参照してください。

� レプリケーション環境でのマテリアライズド・ビューの詳細は、『Oracle8iレプリケーション・ガイド』を参照してください。

� データ・ウェアハウス環境でのマテリアライズド・ビューの詳細は、『Oracle8iデータ・ウェアハウス』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-59

Page 372: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW

� マテリアライズド・ビュー内のすべてのマスター表が自スキーマ内にある場合、QUERY REWRITE権限が必要です。

� いずれかのマスター表が別のスキーマ内にある場合、GLOBAL QUERY REWRITE権限が必要です。

� マテリアライズド・ビューが別のユーザーのスキーマ内にある場合、ユーザーおよびそのスキーマ所有者の両方に、前述の適切な QUERY REWRITE権限が必要です。また、マテリアライズド・ビューの所有者は、マテリアライズド・ビュー所有者が所有しないすべてのマスター表への SELECT権限を持っている必要があります。

参照参照参照参照 : 詳細は、『Oracle8iレプリケーション・ガイド』および『Oracle8iデータ・ウェアハウス』を参照してください。

7-60 Oracle8i SQLリファレンス Vol.1

Page 373: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW

構文構文構文構文

LOB_storage_clause: 8-2ページの「ALTER TABLE」を参照してください。

modify_LOB_storage_clause: 8-2ページの「ALTER TABLE」を参照してください。

partitioning_clauses: 8-2ページの「ALTER TABLE」を参照してください。

ALTERMATERIALIZED VIEW

SNAPSHOT

schema .materialized_view / snapshot

physical_attributes_clause

LOB_storage_clause

,

modify_LOB_storage_clause

,

partitioning_clauses

parallel_clause

LOGGING

NOLOGGING

allocate_extent_clause

CACHE

NOCACHE

USING INDEX physical_attributes_clause refresh_clause

ENABLE

DISABLEQUERY REWRITE

COMPILE

CONSIDER FRESH;

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-61

Page 374: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW

parallel_clause::=

allocate_extent_clause::=

refresh_clause::=

NOPARALLEL

PARALLELinteger

ALLOCATE EXTENT

(

SIZE integer

K

M

DATAFILE ’ filename ’

INSTANCE integer

)

REFRESH

FAST

COMPLETE

FORCE

ONDEMAND

COMMIT

START WITH

NEXTdate

WITH PRIMARY KEY

USINGDEFAULT MASTER ROLLBACK SEGMENT

MASTER ROLLBACK SEGMENT rollback_segment

7-62 Oracle8i SQLリファレンス Vol.1

Page 375: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW

physical_attributes_clause::=

storage_clause: 11-129ページの「storage_clause」を参照してください。

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ

schemaマテリアライズド・ビューが含まれているスキーマを指定します。schemaを指定しない場合、マテリアライズド・ビューは自スキーマ内にあるとみなされます。

materialized_view変更するマテリアライズド・ビューの名前を指定します。

physical_attributes_clausePCTFREE、PCTUSED、INITRANSおよび MAXTRANSパラメータの値(USING INDEX句で使用する場合は、INITRANSおよび MAXTRANSパラメータ値のみ)、およびマテリアライズド・ビューの記憶特性を設定します。

LOB_storage_clauseLOB_storage_clauseでは、LOB記憶特性を指定できます。

参照参照参照参照 :

� PCTFREE、PCTUSED、INITRANSおよび MAXTRANSパラメータの詳細は、8-2ページの「ALTER TABLE」を参照してください。

� 記憶特性の詳細は、11-129ページの「storage_clause」を参照してください。

参照参照参照参照 : この句のパラメータの指定については、8-2ページの「ALTER TABLE」を参照してください。

PCTFREE integer

PCTUSED integer

INITRANS integer

MAXTRANS integer

storage_clause

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-63

Page 376: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW

modify_LOB_storage_clausemodify_LOB_storage_clauseは、LOB属性 lob_itemの物理属性または LOBオブジェクトの属性を変更できます。

partitioning_clausesマテリアライズド・ビューのパーティション化句の構文および一般的な機能は、パーティション表と同じです。

制限事項制限事項制限事項制限事項 :

� マテリアライズド・ビューを変更する場合、LOB_storage_clauseまたはmodify_LOB_storage_clauseは使用できません。

� マテリアライズド・ビュー・パーティションを削除、切捨てまたは交換すると、Oracleはエラーを戻します。

parallel_clauseparallel_clauseは、マテリアライズド・ビューのデフォルトの並列度を変更できます。

参照参照参照参照 : この句のパラメータの指定については、8-2ページの「ALTER TABLE」を参照してください。

参照参照参照参照 : 8-2ページの「ALTER TABLE」を参照してください。

注意注意注意注意 : マスター表の内容と同期しているマテリアライズド・ビューの内容を保持する場合は、表パーティションを削除または切り捨てた後、表に依存しているすべてのマテリアライズド・ビューを手動でリフレッシュすることをお薦めします。

MODIFY PARTITION UNUSABLE LOCAL INDEXES

この句を使用すると、partitionに関連付けられたすべてのローカル索引パーティションに、UNUSABLEのマークを付けます。

MODIFY PARTITION REBUILD UNUSABLE LOCAL INDEXES

この句を使用すると、partitionに関連付けられた、使用禁止のローカル索引パーティションを再構築します。

7-64 Oracle8i SQLリファレンス Vol.1

Page 377: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW

LOGGING | NOLOGGINGマテリアライズド・ビューのロギング特性を設定または変更します。

allocate_extent_clauseallocate_extent_clauseは、マテリアライズド・ビューの新しいエクステントを明示的に割り当てます。

CACHE | NOCACHEアクセス頻度の高いデータについて、CACHEは、フル・テーブル・スキャンの実行時にこの表用に取り出された各ブロックを、バッファ・キャッシュ内の LRUリストの最高使用頻度側に入れることを指定します。この属性は、小規模な参照表で有効です。NOCACHEは、ブロックを LRUリストの最低使用頻度側に入れることを指定します。

注意注意注意注意 : parallel_clauseの構文は、以前のリリースの構文に代わるものです。以前のリリースの構文は下位互換用にサポートされていますが、動作がわずかに異なることがあります。

NOPARALLEL シリアル実行を行う場合に、NOPARALLELを指定します。これはデフォルト値です。

PARALLEL PARALLELを指定すると、すべてのパーティション化インスタンスで使用可能な CPUの数に、初期化パラメータPARALLEL_THREADS_PER_CPUの値を掛けた並列度が選択されます。

PARALLEL integer

integerを指定すると、パラレル操作で使用されるパラレル・スレッド数である並列度並列度並列度並列度が指定されます。各パラレル・スレッドは、1、2個のパラレル実行サーバーを使用します。通常、最適な並列度が計算されるため、integerに値を指定する必要はありません。

参照参照参照参照 : 詳細は、10-41ページの「CREATE TABLE」の「parallel_clauseに関する注意事項」を参照してください。

参照参照参照参照 : ロギング特性の詳細は、8-2ページの「ALTER TABLE」を参照してください。

参照参照参照参照 : 8-2ページの「ALTER TABLE」を参照してください。

参照参照参照参照 : CACHEまたは NOCACHEの指定については、8-2ページの「ALTER TABLE」を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-65

Page 378: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW

USING INDEXマテリアライズド・ビューのデータをメンテナンスするために使用される索引のINITRANS、MAXTRANSおよび STORAGEの各パラメータ値を変更します。

制限事項制限事項制限事項制限事項 :この句では、PCTUSEDまたは PCTFREEパラメータは指定できません。

refresh_clauserefresh_clauseを使用すると、自動リフレッシュの方法、モードおよび時間のデフォルト値を変更できます。マテリアライズド・ビューのマスター表の内容が変更された場合、マテリアライズド・ビューのデータを更新し、現在マスター表にあるデータを正確に反映させる必要があります。この句によって、自動的にマテリアライズド・ビューをリフレッシュする時間をスケジューリングし、リフレッシュの方法およびモードを指定できます。

注意注意注意注意 : この句では、デフォルトのリフレッシュ・オプションのみを設定します。リフレッシュを実際に実装する手順は、『Oracle8iレプリケーション・ガイド』および『Oracle8iデータ・ウェアハウス』を参照してください。

FAST FASTを指定すると、増分リフレッシュ方法を指定できます。これはマスター表に対して行った変更に従ってリフレッシュを行います。この変更は、マスター表に関連付けられたマテリアライズド・ビュー・ログ(従来型 DML変更の場合)またはダイレクト・ローダー・ログ(ダイレクト・ロードの INSERT操作の場合)に格納されます。

従来型 DMLの変更の場合も、ダイレクト・パス・ロードの場合も、他の条件によって、高速リフレッシュへのマテリアライズド・ビューの適応性が制限されることがあります。

参照参照参照参照 :

� レプリケーション環境における高速リフレッシュの制限については、『Oracle8iレプリケーション・ガイド』を参照してください。

� データ・ウェアハウス環境における高速リフレッシュの制限については、『Oracle8iデータ・ウェアハウス』を参照してください。

7-66 Oracle8i SQLリファレンス Vol.1

Page 379: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW

制限事項制限事項制限事項制限事項 :

� 作成時に FASTリフレッシュを指定した場合、作成するマテリアライズド・ビューは高速リフレッシュに適応することが検証されています。ALTER MATERIALIZED VIEW文でリフレッシュ方法を FAST

に変更した場合、これは検証されていません。マテリアライズド・ビューが高速リフレッシュに適応しない場合、このビューをリフレッシュするとエラーが戻されます。

� 定義する問合せに分析関数が含まれている場合、マテリアライズド・ビューは高速リフレッシュに適応しません。

参照参照参照参照 : 4-8ページの「分析関数」を参照してください。

COMPLETE 完全リフレッシュを行う場合に、COMPLETEを指定します。これは、マテリアライズド・ビューの定義する問合せを実行することによって実装されます。完全リフレッシュを要求すると、高速リフレッシュが実行可能であっても、完全リフレッシュが実行されます。

FORCE リフレッシュ時、高速リフレッシュが可能な場合は高速リフレッシュを実行し、そうでない場合には完全リフレッシュを実行する場合、FORCEを指定します。

ON COMMIT 高速リフレッシュを実行して、マテリアライズド・ビューのマスター表に対するトランザクションをコミットするときは、必ず ON COMMITを指定します。

制限事項制限事項制限事項制限事項 : この句は、マテリアライズド結合ビューおよびマテリアライズド集計ビューにのみサポートされます。

参照参照参照参照 : 詳細は、『Oracle8iレプリケーション・ガイド』および『Oracle8iデータ・ウェアハウス』を参照してください。

ON DEMAND マテリアライズド・ビューを、3つの DBMS_MVIEWリフレッシュ・プロシージャのいずれかのコールによる要求でリフレッシュする場合は、ON DEMANDを指定します。ON COMMITおよび ON DEMANDの両方を指定しなかった場合、ON DEMANDがデフォルト値になります。

参照参照参照参照 :

� これらのプロシージャについては、『Oracle8i PL/SQLパッケージ・プロシージャ リファレンス』を参照してください。

� REFRESHON DEMANDを指定することによって作成できるマテリアライズド・ビューのタイプについては、『Oracle8iデータ・ウェアハウス』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-67

Page 380: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW

注意注意注意注意 : ON COMMITまたは ON DEMANDを指定する場合、START WITHまたは NEXTを同時に指定できません。

START WITH START WITH dateを指定すると、最初の自動リフレッシュ時間を表す日付を指定できます。

NEXT NEXTを指定すると、自動リフレッシュの間隔を計算するための日付式を指定できます。

START WITH値および NEXT値は、将来の時間に評価される値です。START WITH値を省略した場合、Oracleはマテリアライズド・ビューの作成時に NEXT式を評価することによって、最初の自動リフレッシュ時間を判断します。START WITH値を指定し、NEXT値を指定しない場合、Oracleは 1回のみマテリアライズド・ビューをリフレッシュします。START WITH値および NEXT値を両方とも指定しない場合、または refresh_clause自体を指定しない場合は、マテリアライズド・ビューは自動リフレッシュされません。

WITH PRIMARY KEY

WITH PRIMARY KEYを指定すると、ROWIDのマテリアライズド・ビューを主キーのマテリアライズド・ビューに変更できます。主キーのマテリアライズド・ビューを使用すると、高速リフレッシュを継続できるマテリアライズド・ビューの機能に影響を及ぼさずに、マテリアライズド・ビュー・マスター表を再編成できます。マスター表には、使用可能な主キー制約が定義されている必要があります。

参照参照参照参照 : 主キーのマテリアライズド・ビューの詳細は、『Oracle8iレプリケーション・ガイド』を参照してください。

USING ROLLBACK SEGMENT

USING ROLLBACK SEGMENTを指定すると、マテリアライズド・ビューのリフレッシュ中に使用するリモート・ロールバック・セグメントを変更できます。使用されるロールバック・セグメント名をrollback_segmentに指定します。

参照参照参照参照 : DBMS_REFRESHパッケージを使用するローカル・マテリアライズド・ビュー・ロールバック・セグメントの変更については、『Oracle8iレプリケーション・ガイド』を参照してください。

DEFAULT 使用するロールバック・セグメントを Oracleに選択させる場合、DEFAULTを指定します。DEFAULTを指定した場合、rollback_segmentは指定できません。

7-68 Oracle8i SQLリファレンス Vol.1

Page 381: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW

QUERY REWRITEこの句を使用して、マテリアライズド・ビューが問合せのリライトで使用できるかどうかを判断します。

MASTER ... rollback_segment

リモート・マスターで個々のマテリアライズド・ビュー用に使用されるリモート・ロールバック・セグメントを指定します。(ローカルのマテリアライズド・ビュー・ロールバック・セグメントを変更する場合は、DBMS_REFRESHパッケージを使用します。詳細は、『Oracle8iレプリケーション・ガイド』を参照してください。)

マスター・ロールバック・セグメントは、マテリアライズド・ビューごとに格納され、マテリアライズド・ビューの作成およびリフレッシュ時にスキャンされます。複合マテリアライズド・ビューの場合、マスター・ロールバック・セグメントの指定は無視されます。

ENABLE ENABLEを指定すると、問合せのリライトに対してマテリアライズド・ビューが使用可能になります。

参照参照参照参照 : 問合せのリライトの詳細は、『Oracle8iデータ・ウェアハウス』を参照してください。

制限事項制限事項制限事項制限事項 :

� マテリアライズド・ビューが無効または使用禁止の場合、ENABLEモードでも問合せのリライトに適応しません。

� マテリアライズド・ビューの全体または一部がビューから作成されている場合、問合せのリライトを使用可能にできません。

� マテリアライズド・ビューのすべてのユーザー定義ファンクションが DETERMINISTICである場合のみ、問合せのリライトを使用可能にできます。

参照参照参照参照 : 9-42ページの「CREATE FUNCTION」を参照してください。

� 文内の式が反復可能な場合のみ、問合せのリライトを使用可能にできます。たとえば、CURRENT_TIMEまたは USERを含めることはできません。

参照参照参照参照 : 『Oracle8iデータ・ウェアハウス』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-69

Page 382: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW

COMPILECOMPILEを指定すると、マテリアライズド・ビューを明示的に再検証します。マテリアライズド・ビューが依存するオブジェクトを削除または変更した場合、マテリアライズド・ビューはアクセス可能のままですが、問合せのリライトに対しては無効です。再度、明示的にマテリアライズド・ビューの妥当性チェックを行い、問合せのリライトの使用に適応させるには、この句を使用します。

マテリアライズド・ビューの再妥当性チェックに失敗すると、リフレッシュできなくなるか、または問合せのリライトに使用できなくなります。

CONSIDER FRESHCONSIDER FRESHは、マテリアライズド・ビューがフレッシュであり、TRUSTEDまたはSTALE_TOLERATEDモードでの問合せのリライトに適応するとみなされるように指定します。Oracleは、マテリアライズド・ビューがフレッシュであるかどうかを保証できないため、ENFORCEDモードでの問合せのリライトはサポートしません。また、この句はマテリアライズド・ビューの失効状態を UNKNOWNに設定します。失効状態は、ALL_MVIEWS、DBA_MVIEWSおよび USER_MVIEWSの各データ・ディクショナリ・ビューの STALENESS列に表示されます。

この句は、マスター表に対してパーティション・メンテナンス操作を実行した後に便利です。そのような操作を行った後、この句を使用しないと、高速リフレッシュに適応しない、STALE_TOLERATEDモードでしか問合せのリライトができないマテリアライズド・ビューが生成されます。

DISABLE マテリアライズド・ビューが問合せのリライトで使用できないようにする場合は、DISABLEを指定します(マテリアライズド・ビューが無効な場合、使用禁止であるかどうかにかかわらず、問合せのリライトの使用には適応しません)。ただし、使用禁止にされたマテリアライズド・ビューをリフレッシュすることはできます。

注意注意注意注意 : いずれかのマスター表の内容が変更された場合、マテリアライズド・ビューはフレッシュではありません。この句は、Oracleに対して、マテリアライズド・ビューがフレッシュで、変更されていないものと仮定するように指示します。そのため、リフレッシュが保留されているこれらの表に対する実際の更新内容は、マテリアライズド・ビューから削除されます。

参照参照参照参照 : 問合せのリライトの詳細、およびマスター表へのパーティション・メンテナンス操作の影響については、『Oracle8iデータ・ウェアハウス』を参照してください。

7-70 Oracle8i SQLリファレンス Vol.1

Page 383: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW

例例例例

自動リフレッシュの例自動リフレッシュの例自動リフレッシュの例自動リフレッシュの例 次の文は、マテリアライズド・ビュー hq_empのリフレッシュ方法のデフォルト値を FASTに変更します。

CREATE MATERIALIZED VIEW hq_emp REFRESH COMPLETE START WTIH SYSDATE NEXT SYSDATE +1/4096 AS SELECT * FROM hq_emp;

ALTER MATERIALIZED VIEW hq_emp REFRESH FAST;

これ以降のマテリアライズド・ビューの自動リフレッシュは、高速リフレッシュになります。これは、単純なマテリアライズド・ビューであり、そのマスター表には、マテリアライズド・ビューの作成前または最後のリフレッシュ前に作成されたマテリアライズド・ビュー・ログがあります。

REFRESH句に START WITHまたは NEXTの値が指定されていないため、マテリアライズド・ビュー hq_empを作成したとき、または最後に変更したときに REFRESH句で設定された間隔がそのまま使用されます。

NEXTの例の例の例の例 次の文は、マテリアライズド・ビュー branch_empの新しい自動リフレッシュ間隔を格納します。

ALTER MATERIALIZED VIEW branch_emp REFRESH NEXT SYSDATE+7;

REFRESH句に START WITHの値が指定されていないため、マテリアライズド・ビューbranch_empを作成したとき、または最後に変更したときに、START WITHと NEXTの値によって設定された日時に次の自動リフレッシュが行われます。

このマテリアライズド・ビューは、次に自動リフレッシュが行われる際に、リフレッシュされます。次に自動リフレッシュが行われる日時は、NEXTに設定した式 SYSDATE+7が計算されて決まります。その後は、週に 1度リフレッシュが自動的に行われます。

REFRESH句にリフレッシュ方法が明示的に指定されていないため、直前の CREATE MATERIALIZED VIEW文または ALTER MATERIALIZED VIEW文の REFRESH句で指定されたリフレッシュ方法が引き続き使用されます。

完全リフレッシュの例完全リフレッシュの例完全リフレッシュの例完全リフレッシュの例 次の文は、マテリアライズド・ビュー sf_empの新しいリフレッシュ方法、次のリフレッシュ日時および新しい自動リフレッシュ間隔を指定します。

ALTER MATERIALIZED VIEW sf_emp REFRESH COMPLETE START WITH TRUNC(SYSDATE+1) + 9/24 NEXT SYSDATE+7;

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-71

Page 384: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW

START WITH句に指定した値によって、このマテリアライズド・ビューの次の自動リフレッシュは翌日の午前 9時に発生するように設定されます。この日時にマテリアライズド・ビューの完全リフレッシュが実行され、NEXTに設定した式が計算されます。その後は、このマテリアライズド・ビューは毎週リフレッシュされます。

問合せのリライトを使用可能にする例問合せのリライトを使用可能にする例問合せのリライトを使用可能にする例問合せのリライトを使用可能にする例 次の文は、マテリアライズド・ビュー mv1の問合せのリライトを使用可能にし、暗黙的に再妥当性チェックを行います。

ALTER MATERIALIZED VIEW mv1 ENABLE QUERY REWRITE;

ロールバック・セグメントの例ロールバック・セグメントの例ロールバック・セグメントの例ロールバック・セグメントの例 次の文は、マテリアライズド・ビュー・リフレッシュ時に使用されるリモートのマスター・ロールバック・セグメントを master_segに変更します。

ALTER MATERIALIZED VIEW inventory REFRESH USING MASTER ROLLBACK SEGMENT master_seg;

次の文は、マテリアライズド・ビュー・リフレッシュ時に使用されるリモートのマスター・ロールバック・セグメントを Oracleによって選択されたものに変更します。

ALTER MATERIALIZED VIEW sales REFRESH USING DEFAULT MASTER ROLLBACK SEGMENT;

主キーの例主キーの例主キーの例主キーの例 次の文は、ROWIDのマテリアライズド・ビューを主キーのマテリアライズド・ビューに変更します。

ALTER MATERIALIZED VIEW emp_rs REFRESH WITH PRIMARY KEY;

COMPILEの例の例の例の例 次の文は、マテリアライズド・ビュー store_mvを再検証します。

ALTER MATERIALIZED VIEW store_mv COMPILE;

リフレッシュ方法の変更例リフレッシュ方法の変更例リフレッシュ方法の変更例リフレッシュ方法の変更例 次の文は、マテリアライズド・ビュー store_mvのリフレッシュ方法を FASTに変更します。

ALTER MATERIALIZED VIEW store_mv REFRESH FAST;

CONSIDER FRESHの例の例の例の例 次の文は、Oracleにマテリアライズド・ビュー mv1をフレッシュとみなすように指定します。この文を使用した場合、mv1のマスター表に対するパーティション・メンテナンス操作を実行した後でも、mv1は TRUSTEDモードでの問合せのリライトに適応します。

ALTER MATERIALIZED VIEW mv1 CONSIDER FRESH;

7-72 Oracle8i SQLリファレンス Vol.1

Page 385: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW LOG

ALTER MATERIALIZED VIEW LOG

用途用途用途用途ALTER MATERIALIZED VIEW LOG文を使用すると、記憶特性、リフレッシュ・モードまたはリフレッシュ時刻、または既存のマテリアライズド・ビュー・ログのタイプを変更できます。マテリアライズド・ビュー・ログマテリアライズド・ビュー・ログマテリアライズド・ビュー・ログマテリアライズド・ビュー・ログとは、マテリアライズド・ビューのマスター表に関連付けられる表です。

前提条件前提条件前提条件前提条件マスター表の所有者またはマスター表に対して SELECT権限を持つユーザーのみが、マテリアライズド・ビュー・ログを変更できます。

注意注意注意注意 : キーワード SNAPSHOTは、MATERIALIZED VIEWのかわりに下位互換用にサポートされています。

参照参照参照参照 :

� マテリアライズド・ビューのリフレッシュ方法など、マテリアライズド・ビューの詳細は、7-59ページの「ALTER MATERIALIZED VIEW」を参照してください。

� マテリアライズド・ビューの様々なタイプの詳細は、9-86ページの「CREATE MATERIALIZED VIEW」を参照してください。

参照参照参照参照 : ALTER MATERIALIZED VIEW LOGの前提条件の詳細は、『Oracle8iレプリケーション・ガイド』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-73

Page 386: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW LOG

構文構文構文構文

physical_attributes_clause::=

ALTERMATERIALIZED VIEW

SNAPSHOTLOG ON

schema .table

physical_attributes_clause

partitioning_clauses

parallel_clause

LOGGING

NOLOGGING

allocate_extent_clause

CACHE

NOCACHE

ADD

PRIMARY KEY

ROWID

( filter_column

,

)

( filter_column

,

)

INCLUDING

EXCLUDINGNEW VALUES

;

PCTFREE integer

PCTUSED integer

INITRANS integer

MAXTRANS integer

storage_clause

7-74 Oracle8i SQLリファレンス Vol.1

Page 387: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW LOG

storage_clause: 11-129ページの「storage_clause」を参照してください。

partitioning_clauses: 8-2ページの「ALTER TABLE」を参照してください。

allocate_extent_clause::=

parallel_clause::=

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ

schemaマスター表が定義されているスキーマを指定します。schemaを指定しないと、マテリアライズド・ビュー・ログは自スキーマ内にあるとみなされます。

table変更するマテリアライズド・ビュー・ログに関連付けられたマスター表の名前を指定します。

physical_attributes_clausephysical_attributes_clauseは、表、パーティションまたはオーバーフロー・データ・セグメントに対する PCTFREE、PCTUSED、INITRANSおよび MAXTRANSの各パラメータの値、またはパーティション表のデフォルト特性を変更します。

参照参照参照参照 : これらのパラメータの説明については、10-7ページの「CREATE TABLE」および 7-78ページの「マテリアライズド・ビュー記憶域の例」を参照してください。

ALLOCATE EXTENT

(

SIZE integer

K

M

DATAFILE ’ filename ’

INSTANCE integer

)

NOPARALLEL

PARALLELinteger

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-75

Page 388: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW LOG

partitioning_clauses次のパーティション化句の構文および一般的な機能は、ALTER TABLE文と同じです。

制限事項制限事項制限事項制限事項 :

� マテリアライズド・ビュー・ログを変更する場合、LOB_storage_clauseまたはmodify_LOB_storage_clauseは使用できません。

� マテリアライズド・ビュー・ログ・パーティションを削除、切捨てまたは交換すると、Oracleはエラーを戻します。

parallel_clauseparallel_clauseは、マテリアライズド・ビュー・ログへのパラレル操作がサポートされているかどうかを指定します。

参照参照参照参照 : 8-2ページの「ALTER TABLE」を参照してください。

注意注意注意注意 : parallel_clauseの構文は、以前のリリースの構文に代わるものです。以前のリリースの構文は下位互換用にサポートされていますが、動作がわずかに異なることがあります。

NOPARALLEL シリアル実行を行う場合に、NOPARALLELを指定します。これはデフォルト値です。

PARALLEL PARALLELを指定すると、すべてのパーティション化インスタンスで使用可能な CPUの数に、初期化パラメータPARALLEL_THREADS_PER_CPUの値を掛けた並列度が選択されます。

PARALLEL integer

integerを指定すると、パラレル操作で使用されるパラレル・スレッド数である並列度並列度並列度並列度が指定されます。各パラレル・スレッドは、1、2個のパラレル実行サーバーを使用します。通常、最適な並列度が計算されるため、integerに値を指定する必要はありません。

参照参照参照参照 : 詳細は、10-41ページの「CREATE TABLE」の「parallel_clauseに関する注意事項」を参照してください。

7-76 Oracle8i SQLリファレンス Vol.1

Page 389: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW LOG

LOGGING| NOLOGGINGマテリアライズド・ビュー・ログに対するロギング属性を設定します。

allocate_extent_clauseallocate_extent_clauseは、マテリアライズド・ビュー・ログの新しいエクステントを明示的に割り当てます。

CACHE | NOCACHEアクセス頻度が高いデータについて、CACHEは、フル・テーブル・スキャンの実行時にこのログ用に取り出された各ブロックを、バッファ・キャッシュ内の LRUリストの最高使用頻度側に入れることを指定します。この属性は、小規模な参照表で有効です。NOCACHEは、ブロックを LRUリストの最低使用頻度側に入れることを指定します。

ADDADD句では、マテリアライズド・ビュー・マスター表内の行が更新される際に、主キー値または ROWID値も記録できるようにマテリアライズド・ビュー・ログを増大できます。また、この句は、新しくフィルタ列を記録するためにも使用できます。

これらの情報の記録を停止する場合は、スナップショット・ログを削除してから、再作成する必要があります。マテリアライズド・ビュー・ログを削除した後再作成した場合、マスター表に依存するすべての既存マテリアライズド・ビューが、次回のリフレッシュ時に強制的に完全リフレッシュされます。

参照参照参照参照 : この属性の指定については、8-2ページの「ALTER TABLE」を参照してください。

参照参照参照参照 : 8-2ページの「ALTER TABLE」を参照してください。

参照参照参照参照 : CACHEまたは NOCACHEの指定については、8-2ページの「ALTER TABLE」を参照してください。

PRIMARY KEY 更新されるすべての行の主キーをマテリアライズド・ビュー・ログに記録する場合は、PRIMARY KEYを指定します。

ROWID 更新されるすべての行の主キーをマテリアライズド・ビュー・ログに記録する場合は、ROWIDを指定します。

filter_column(s)

更新されるすべての行に対して、これらの列の値をマテリアライズド・ビュー・ログに記録するように指定します。フィルタ列は、マテリアライズド・ビューによって参照される非主キー列です。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-77

Page 390: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER MATERIALIZED VIEW LOG

制限事項制限事項制限事項制限事項 : 1つのマテリアライズド・ビュー・ログに指定できるのは、主キー、ROWIDおよびフィルタ列を 1つずつです。そのため、これら 3つの値のいずれかが作成時に(暗黙的または明示的に)指定された場合、この ALTER文にはそれらの値を指定できません。

NEW VALUESNEW VALUES句は、マテリアライズド・ビュー・ログに古い値と新しい値の両方を保存するかを指定できます。ALTER文で追加した主キー、ROWIDまたはフィルタ列のみでなく、マテリアライズド・ビュー・ログのすべての列に、この句に設定した値を適用します。

例例例例

マテリアライズド・ビュー記憶域の例マテリアライズド・ビュー記憶域の例マテリアライズド・ビュー記憶域の例マテリアライズド・ビュー記憶域の例 次の文は、マテリアライズド・ビュー・ログのMAXEXTENTSの値を変更します。

ALTER MATERIALIZED VIEW LOG ON dept STORAGE MAXEXTENTS 50;

PRIMARY KEYの例の例の例の例 次の文は、主キー情報も記録するように既存のマテリアライズド・ビュー・ログを変更します。

ALTER MATERIALIZED VIEW LOG ON sales ADD PRIMARY KEY;

参照参照参照参照 :

� マテリアライズド・ビュー・ログの値の、明示的および暗黙的な論理和については、9-86ページの「CREATE MATERIALIZED VIEW」を参照してください。

� フィルタ列については、『Oracle8iレプリケーション・ガイド』を参照してください。

INCLUDING INCLUDINGを指定すると、ログに新しい値と古い値を保存できます。このログが単一表マテリアライズド集計ビューの表用で、マテリアライズド・ビューに高速リフレッシュを実行する場合、INCLUDINGを指定してください。

EXCLUDING INCLUDINGを指定すると、ログに対する新しい値の記録を使用禁止にできます。この句を使用すると、新しい値の記録によるオーバーヘッドを回避できます。ただし、この表に高速リフレッシュが可能な単一表マテリアライズド集計ビューが定義されている場合は、この句を使用しないでください。

7-78 Oracle8i SQLリファレンス Vol.1

Page 391: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER OUTLINE

ALTER OUTLINE

用途用途用途用途ストアド・アウトラインを改名する場合、ストアド・アウトラインを異なるカテゴリに再度割り当てる場合、または、アウトラインの SQL文をコンパイルし、古いアウトライン・データを現行の条件で作成したアウトラインと置き換えて、ストアド・アウトラインを再生成する場合に、ALTER OUTLINE文を使用します。

前提条件前提条件前提条件前提条件アウトラインを変更する場合は、ALTER ANY OUTLINEシステム権限が必要です。

構文構文構文構文

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ

outline変更するアウトラインの名前を指定します。

REBUILDREBUILDを指定すると、現行の条件で、outlineの実行計画が再生成されます。

RENAME TO new_outline_nameRENAME TO句を使用すると、outlineの値と置き換えるアウトライン名を指定できます。

CHANGE CATEGORY TO new_category_nameCHANGE CATEGORY TO句を使用すると、outlineの移動先となるカテゴリ名を指定できます。

参照参照参照参照 : アウトラインの詳細は、9-116ページの「CREATE OUTLINE」および『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

ALTER OUTLINE outline

REBUILD

RENAME TO new_outline_name

CHANGE CATEGORY TO new_category_name

;

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-79

Page 392: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER OUTLINE

例例例例

ALTER OUTLINEの例の例の例の例 次の文は、アウトラインのテキストをコンパイルし、古いアウトライン・データを現行の条件で作成したアウトラインと置き換えて、salariesというストアド・アウトラインを再生成します。

ALTER OUTLINE salaries REBUILD;

7-80 Oracle8i SQLリファレンス Vol.1

Page 393: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER PACKAGE

ALTER PACKAGE

用途用途用途用途ALTER PACKAGE文を使用すると、パッケージ仕様部またはパッケージ本体のいずれか(あるいはその両方)を明示的に再コンパイルできます。明示的に再コンパイルすることによって、実行時に暗黙的に再コンパイルする必要がなくなり、また、実行時のコンパイル・エラーとパフォーマンス上のオーバーヘッドも回避できます。

パッケージ中のすべてのオブジェクトは、1つの単位として格納されているため、ALTER PACKAGE文によって、すべてのパッケージ・オブジェクトがまとめて再コンパイルされます。ALTER PROCEDURE文または ALTER FUNCTION文を使用して、パッケージ中の一部のプロシージャまたはファンクションを再コンパイルすることはできません。

前提条件前提条件前提条件前提条件パッケージを変更するには、パッケージが自スキーマ内にあるか、または ALTER ANY PROCEDUREシステム権限が必要です。

構文構文構文構文

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ

schemaパッケージが定義されているスキーマを指定します。schemaを指定しない場合、パッケージが自スキーマ内に定義されているとみなされます。

注意注意注意注意 : この文を使用して、既存のパッケージの宣言や定義を変更することはできません。パッケージを再宣言または再定義する場合、9-118ページの「CREATE PACKAGE」または 9-122ページの「CREATE PACKAGE BODY」に、OR REPLACE文を指定します。

ALTER PACKAGEschema .

package COMPILEDEBUG

PACKAGE

SPECIFICATION

BODY;

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-81

Page 394: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER PACKAGE

package再コンパイルするパッケージの名前を指定します。

COMPILEパッケージ仕様部およびパッケージ本体を再コンパイルする場合は、COMPILEを指定する必要があります。COMPILEキーワードは必須です。

パッケージの再コンパイル時にコンパイル・エラーが発生した場合は、エラーが戻り、パッケージ本体は無効のままです。SQL*Plusコマンド SHOW ERRORSを使用して、関連するコンパイラ・エラー・メッセージを表示できます。

SPECIFICATIONSPECIFICATIONを指定すると、無効かどうかにかかわらず、パッケージ仕様部のみを再コンパイルします。パッケージ仕様部を変更した場合は、コンパイル・エラーの有無をチェックするために再コンパイルします。

その結果、そのパッケージ中のプロシージャまたはファンクションをコールするプロシージャなど、再コンパイルされたパッケージ仕様部に依存するローカル・オブジェクトはすべて無効になります。パッケージ本体もそのパッケージ仕様部に依存します。その後、明示的に再コンパイルせずに、これらの依存オブジェクトを参照した場合、Oracleは実行時にそれらを暗黙的に再コンパイルします。

BODYBODYを指定すると、無効かどうかにかかわらず、パッケージ本体のみを再コンパイルします。パッケージ本体は、変更後に再コンパイルしてください。なお、パッケージ本体を再コンパイルしても、そのパッケージ仕様部に基づくオブジェクトは無効になりません。

パッケージ本体を再コンパイルした場合、そのパッケージ本体が依存するオブジェクトが無効の場合には、最初にそのオブジェクトが再コンパイルされます。パッケージ本体の再コンパイルが正常に終了した場合、この本体は有効になります。

PACKAGEPACKAGEを指定すると、有効か無効かにかかわらず、パッケージ仕様部およびパッケージ本体(存在する場合)の両方を再コンパイルします。これはデフォルト値です。パッケージ仕様部およびパッケージ本体を再コンパイルした場合、前述の SPECIFICATIONおよびBODYで説明するとおり、再妥当性チェックおよび再コンパイルが必要になります。

参照参照参照参照 : リモート・オブジェクトを含むスキーマ・オブジェクト間の依存性を Oracleが管理する方法については、『Oracle8i概要』を参照してください。

7-82 Oracle8i SQLリファレンス Vol.1

Page 395: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER PACKAGE

DEBUGDEBUGを指定すると、PL/SQLコンパイラに対して、PL/SQLデバッガ用のコードを生成および保存するように指示できます。

例例例例

パッケージの再コンパイル例パッケージの再コンパイル例パッケージの再コンパイル例パッケージの再コンパイル例 次の文は、スキーマ blair内の accountingパッケージの仕様部および本体を明示的に再コンパイルします。

ALTER PACKAGE blair.accounting COMPILE PACKAGE;

accountingの仕様部および本体の再コンパイル時に、コンパイル・エラーが発生しなかった場合、accountingは有効になります。その後、実行時に再コンパイルしなくても、accountingの仕様部に宣言されたすべてのパッケージ・オブジェクトをコールまたは参照できます。accountingの再コンパイル時にコンパイル・エラーが発生した場合はエラーが戻り、accountingは無効のままです。

また、accountingに依存しているすべてのオブジェクトが無効になります。その後、明示的に再コンパイルせずに、これらのオブジェクトを参照した場合、Oracleは、実行時にそれらを暗黙的に再コンパイルします。

次の文は、スキーマ blair内の accountingパッケージの本体を再コンパイルします。

ALTER PACKAGE blair.accounting COMPILE BODY;

パッケージ本体の再コンパイル時にコンパイル・エラーが発生しなければ、この本体は有効になります。その後、実行時に再コンパイルしなくても、accountingの仕様部に宣言されたすべてのパッケージ・オブジェクトをコールまたは参照できます。本体の再コンパイル時にコンパイル・エラーが発生した場合は、エラー・メッセージが戻り、パッケージ本体は無効のままです。

この文は、accountingの仕様部ではなく本体を再コンパイルするため、依存するオブジェクトは無効にはなりません。

参照参照参照参照 : パッケージのデバッグの詳細は、『Oracle8i PL/SQLパッケージ・プロシージャ リファレンス』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-83

Page 396: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER PROCEDURE

ALTER PROCEDURE

用途用途用途用途ALTER PROCEDURE文を使用すると、スタンドアロンのストアド・プロシージャを明示的に再コンパイルできます。明示的に再コンパイルすることによって、実行時に暗黙的に再コンパイルする必要がなくなり、また、実行時のコンパイル・エラーとパフォーマンス上のオーバーヘッドも回避できます。

パッケージの一部であるプロシージャを再コンパイルする場合、ALTER PACKAGE文を使用して、そのパッケージ全体を再コンパイルします(7-81ページの「ALTER PACKAGE」を参照)。

ALTER PROCEDURE文は、ALTER FUNCTION文と似ています。

前提条件前提条件前提条件前提条件プロシージャは、自スキーマ内にある必要があります。自スキーマ内にない場合は、ALTER ANY PROCEDUREシステム権限が必要です。

構文構文構文構文

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ

schemaプロシージャが定義されているスキーマを指定します。schemaを指定しない場合、プロシージャが自スキーマ内に定義されていることになります。

注意注意注意注意 : この文を使用して、既存のプロシージャの宣言や定義を変更することはできません。プロシージャを再宣言または再定義する場合は、OR REPLACE句を指定して CREATE PROCEDURE文を使用します(9-127ページの「CREATE PROCEDURE」を参照)。

参照参照参照参照 : 7-36ページの「ALTER FUNCTION」を参照してください。

ALTER PROCEDUREschema .

procedure COMPILEDEBUG

;

7-84 Oracle8i SQLリファレンス Vol.1

Page 397: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER PROCEDURE

procedure再コンパイルするプロシージャの名前を指定します。

COMPILECOMPILEを指定すると、プロシージャが再コンパイルされます。COMPILEキーワードは必須です。プロシージャが有効か無効かにかかわらず、プロシージャは再コンパイルされます。

� いずれかのオブジェクトが無効の場合、プロシージャが依存するオブジェクトが最初に再コンパイルされます。

� プロシージャに依存するすべてのローカル・オブジェクト(たとえば、再コンパイルしたプロシージャをコールするプロシージャ、再コンパイルしたプロシージャをコールするプロシージャを定義するパッケージ本体など)が無効になります。

� プロシージャの再コンパイルが正常に終了すると、このプロシージャは有効になります。プロシージャの再コンパイル時にエラーが発生した場合は、エラー・メッセージが戻り、プロシージャは無効のままです。SQL*Plusコマンド SHOW ERRORSを使用して、関連するコンパイラ・エラー・メッセージを表示できます。

DEBUGDEBUGを指定すると、PL/SQLコンパイラに対して、PL/SQLデバッガ用のコードを生成および保存するように指示できます。

例例例例

プロシージャの再コンパイル例プロシージャの再コンパイル例プロシージャの再コンパイル例プロシージャの再コンパイル例 次の例では、ユーザー henryのプロシージャclose_acctを明示的に再コンパイルします。

ALTER PROCEDURE henry.close_acct COMPILE;

close_acctの再コンパイル時にエラーが発生しなければ、close_acctは有効になります。その後、Oracleは、実行時にそれを再コンパイルしなくても実行できます。close_acctの再コンパイル時にコンパイル・エラーが発生した場合は、エラーが戻り、close_acctは無効のままです。

参照参照参照参照 : リモート・オブジェクトを含むスキーマ・オブジェクト間の依存性を Oracleが管理する方法については、『Oracle8i概要』を参照してください。

参照参照参照参照 : プロシージャのデバッグの詳細は、『Oracle8iアプリケーション開発者ガイド 基礎編』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-85

Page 398: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER PROCEDURE

依存するオブジェクトもすべて無効になります。依存オブジェクトとは、close_acctをコールするプロシージャ、ファンクション、パッケージ本体などです。その後、明示的に再コンパイルせずに、これらのオブジェクトを参照した場合、Oracleは、実行時にそれらを暗黙的に再コンパイルします。

7-86 Oracle8i SQLリファレンス Vol.1

Page 399: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER PROFILE

ALTER PROFILE

用途用途用途用途ALTER PROFILE文を使用すると、プロファイルのリソース制限またはパスワード管理パラメータを追加、変更または削除できます。

ALTER PROFILE文を使用すると、プロファイルに対して行った変更は、このプロファイルの現行セッションのユーザーには影響しません。後続セッションのユーザーのみに影響します。

前提条件前提条件前提条件前提条件プロファイルのリソース制限を変更する場合は、ALTER PROFILEシステム権限が必要です。パスワード制限および保護を変更する場合は、ALTER PROFILEおよび ALTER USERシステム権限が必要です。

構文構文構文構文

参照参照参照参照 : プロファイルの作成の詳細は、9-134ページの「CREATE PROFILE」を参照してください。

ALTER PROFILE profile LIMITresource_parameters

password_parameters;

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-87

Page 400: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER PROFILE

resource_parameters::=

password_parameters::=

SESSIONS_PER_USER

CPU_PER_SESSION

CPU_PER_CALL

CONNECT_TIME

IDLE_TIME

LOGICAL_READS_PER_SESSION

LOGICAL_READS_PER_CALL

COMPOSITE_LIMIT

integer

UNLIMITED

DEFAULT

PRIVATE_SGA

integer

K

M

UNLIMITED

DEFAULT

FAILED_LOGIN_ATTEMPTS

PASSWORD_LIFE_TIME

PASSWORD_REUSE_TIME

PASSWORD_REUSE_MAX

PASSWORD_LOCK_TIME

PASSWORD_GRACE_TIME

expr

UNLIMITED

DEFAULT

PASSWORD_VERIFY_FUNCTION

function

NULL

DEFAULT

7-88 Oracle8i SQLリファレンス Vol.1

Page 401: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER PROFILE

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータALTER PROFILE文のキーワードとパラメータの意味は、すべて CREATE PROFILE文のキーワードとパラメータと同じです。

例例例例

パスワードを無効にする例パスワードを無効にする例パスワードを無効にする例パスワードを無効にする例 次の文は、パスワードを 90日間再使用できないようにします。

ALTER PROFILE prof LIMIT PASSWORD_REUSE_TIME 90 PASSWORD_REUSE_MAX UNLIMITED;

デフォルト値の設定例デフォルト値の設定例デフォルト値の設定例デフォルト値の設定例 次の文は、PASSWORD_REUSE_TIME値を DEFAULTプロファイルに定義された値にデフォルト設定します。

ALTER PROFILE prof LIMIT PASSWORD_REUSE_TIME DEFAULT PASSWORD_REUSE_MAX UNLIMITED;

ログインおよびパスワード・ロック時刻の制限例ログインおよびパスワード・ロック時刻の制限例ログインおよびパスワード・ロック時刻の制限例ログインおよびパスワード・ロック時刻の制限例 次の文は、プロファイル profのFAILED_LOGIN_ATTEMPTSを 5に設定し、PASSWORD_LOCK_TIMEを 1に変更します。

ALTER PROFILE prof LIMIT FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 1;

この文を使用すると、ログインに 5回失敗した場合に、profのアカウントは 1日ロックされます。

パスワードの有効期限および猶予期間の変更例パスワードの有効期限および猶予期間の変更例パスワードの有効期限および猶予期間の変更例パスワードの有効期限および猶予期間の変更例 次の文は、プロファイル profのPASSWORD_LIFE_TIMEを 60日に、PASSWORD_GRACE_TIMEを 10日に変更します。

ALTER PROFILE prof LIMIT PASSWORD_LIFE_TIME 60 PASSWORD_GRACE_TIME 10;

注意注意注意注意 : DEFAULTプロファイルから制限を削除することはできません。

参照参照参照参照 : 9-134ページの「CREATE PROFILE」を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-89

Page 402: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER PROFILE

同時セッションの制限例同時セッションの制限例同時セッションの制限例同時セッションの制限例 次の文は、プロファイル engineerに同時実行のセッションの新しい制限 5を指定します。

ALTER PROFILE engineer LIMIT SESSIONS_PER_USER 5;

現在、プロファイル ENGINEERに SESSIONS_PER_USERの制限が定義されていない場合は、このプロファイルに制限 5が追加されます。プロファイルに制限が定義されている場合は、前述の文によってその制限が 5に再定義されます。プロファイル engineerが割り当てられているすべてのユーザーは、同時実行のセッションが 5件に制限されます。

制限の削除例制限の削除例制限の削除例制限の削除例 次の文は、プロファイル engineerの IDLE_TIMEの制限を削除します。

ALTER PROFILE engineer LIMIT IDLE_TIME DEFAULT;

プロファイル engineerが割り当てられているユーザーは、後続セッションからはプロファイル DEFAULTに定義された IDLE_TIMEの制限に従います。

アイドル時間の制限例アイドル時間の制限例アイドル時間の制限例アイドル時間の制限例 次の文は、プロファイル DEFAULTにアイドル時間の制限(2分)を定義します。

ALTER PROFILE default LIMIT IDLE_TIME 2;

IDLE_TIMEの制限は、次のユーザーに適用されます。

� プロファイルが明示的に割り当てられていないユーザー

� IDLE_TIMEの制限が定義されていないプロファイルが明示的に割り当てられているユーザー

次の文は、プロファイル engineerに無制限のアイドル時間を設定します。

ALTER PROFILE engineer LIMIT IDLE_TIME UNLIMITED;

プロファイル engineerを割り当てられているすべてのユーザーは、次のセッションから無制限のアイドル時間が認められます。

7-90 Oracle8i SQLリファレンス Vol.1

Page 403: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER RESOURCE COST

ALTER RESOURCE COST

用途用途用途用途ALTER RESOURCE COST文を使用すると、セッションで使用するリソース・コストの合計を算出するための式を指定または変更できます。各リソースに割り当てるウエイト(重み)によって、各リソースがリソース・コストの合計に影響する程度が決定されます。リソースにウエイトを割り当てない場合は、デフォルト値の 0(ゼロ)が適用され、コストへの影響はありません。ウエイトを割り当てた場合は、データベースの次のセッション以降のすべてのセッションで、そのウエイトが適用されます。

最初にセッションで使用された各リソースの量にそのリソースのウエイトを乗算し、次に、4種類のリソースの乗算結果を加算することによって、リソース・コストの合計が計算されます。どのセッションについても、このコストは、ユーザーのプロファイル内のCOMPOSITE_LIMITパラメータの値によって制限されます。乗算結果と総コストは、ともにサービス単位サービス単位サービス単位サービス単位と呼ばれる単位で表されます。

Oracleは、その他のリソースの使用も監視しますが、セッションに対するリソース・コストの合計は、この構文の 4種類のリソースに基づいて算出されます。

リソース・コストの合計を算出するための式を指定した場合、CREATE PROFILE文のCOMPOSITE_LIMITパラメータを使用して、セッションに対するコストを制限できます。セッションのコストが制限を超えた場合、セッションは異常終了し、エラーが戻ります。各リソースに割り当てたウエイトを変更するために ALTER RESOURCE COST文を使用した場合、現行セッション以降のすべてのセッションで、その新しいウエイトを基にリソース・コストが計算されます。

前提条件前提条件前提条件前提条件ALTER RESOURCE COSTシステム権限が必要です。

参照参照参照参照 : リソースの合計およびリソース制限の設定については、9-134ページの「CREATE PROFILE」を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-91

Page 404: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER RESOURCE COST

構文構文構文構文

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ

CPU_PER_SESSIONセッションによって使用された CPU時間を、100分の 1秒単位で指定します。

CONNECT_TIMEセッションの経過時間を分単位で指定します。

LOGICAL_READS_PER_SESSIONメモリーおよびディスクから読み込まれるブロックなど、セッション中に読み込まれるデータ・ブロックの数を指定します。

PRIVATE_SGAセッションごとに使用できるシステム・グローバル領域(SGA)内のプライベート領域のバイト数を指定します。マルチスレッド・サーバー・アーキテクチャを使用して、自セッション用として SGA内でプライベート領域を割り当てている場合のみ、この制限が適用されます。

integer各リソースのウエイトを指定します。

例例例例

リソース・コストの変更例リソース・コストの変更例リソース・コストの変更例リソース・コストの変更例 次の文は、リソース CPU_PER_SESSIONと CONNECT_TIMEにウエイトを割り当てます。

ALTER RESOURCE COST CPU_PER_SESSION 100 CONNECT_TIME 1;

ALTER RESOURCE COST

CPU_PER_SESSION

CONNECT_TIME

LOGICAL_READS_PER_SESSION

PRIVATE_SGA

integer ;

7-92 Oracle8i SQLリファレンス Vol.1

Page 405: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER RESOURCE COST

このウエイトによって、セッションごとに次のコスト計算式が設定されます。

cost = (100 * CPU_PER_SESSION) + (1 * CONNECT_TIME)

CPU_PER_SESSIONおよび CONNECT_TIMEの値は、DEFAULTプロファイルまたはセッションのユーザーのプロファイルにある値のいずれかです。

ここでは、リソース LOGICAL_READS_PER_SESSIONおよび PRIVATE_SGAにウエイトを割り当てていないため、これらのリソースは式に含まれません。

プロファイルで COMPOSITE_LIMIT値として 500を割り当てた場合、costが 500を超えると、必ず、セッションはこの制限を超えます。たとえば、CPU時間 0.04秒、経過時間 101分を使用するセッションは、この制限を超えます。同様に、CPU時間が 0.0301秒、経過時間が 200分のセッションもこの制限を超えます。

一度割り当てたウエイトは、次のように、別の ALTER RESOURCE文を発行することによって変更できます。

ALTER RESOURCE COST LOGICAL_READS_PER_SESSION 2 CONNECT_TIME 0;

新しく割り当てたウエイトによって、新しいコスト計算式が設定されます。

cost = (100 * CPU_PER_SESSION) + (2 * LOGICAL_READ_PER_SECOND)

CPU_PER_SESSIONおよび LOGICAL_READS_PER_SECONDの値は、DEFAULTプロファイルまたはセッションのユーザーのプロファイルにある値のいずれかです。

この ALTER RESOURCE COST文によって、式は次のように変更されます。

� CPU_PER_SESSIONリソースのウエイトは指定しないが、このリソースにはすでにウエイトが割り当てられているため、式では先に指定したウエイトがそのまま使用されます。

� LOGICAL_READS_PER_SESSIONリソースにウエイトを割り当てたため、このリソースが式で使用されます。

� CONNECT_TIMEリソースに 0(ゼロ)を割り当てたため、このリソースは式に含まれていません。

� PRIVATE_SGAリソースのウエイトを指定せず、かつ、このリソースにはウエイトが指定されていなかったため、このリソースは式で使用されません。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-93

Page 406: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER ROLE

ALTER ROLE

用途用途用途用途ALTER ROLE文を使用すると、ロールを使用可能にするために必要な許可を変更します。

前提条件前提条件前提条件前提条件ロールに ADMIN OPTIONが付与されている必要があります。付与されていない場合は、ALTER ANY ROLEシステム権限が必要です。

ロールを IDENTIFIED GLOBALLYに変更する前に、次の作業が必要です。

� ロールに対して外部的に識別されたロール権限をすべて取り消します。

� すべてのユーザー、ロールおよび PUBLICからロールの付与を取り消します。

この規則の唯一の例外として、現在ロールを変更しているユーザーからはそのロールを取り消さないでください。

構文構文構文構文

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータALTER ROLE文のキーワードとパラメータの意味は、すべて CREATE ROLE文のキーワードとパラメータと同じです。

参照参照参照参照 :

� ロールの作成の詳細は、9-141ページの「CREATE ROLE」を参照してください。

� セッションのロールを使用可能または使用禁止にする方法については、11-122ページの「SET ROLE」を参照してください。

ALTER ROLE role

NOT IDENTIFIED

IDENTIFIED

BY password

EXTERNALLY

GLOBALLY

;

7-94 Oracle8i SQLリファレンス Vol.1

Page 407: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER ROLE

例例例例次の文は、ロール analystを IDENTIFIED GLOBALLYに変更します。

ALTER ROLE analyst IDENTIFIED GLOBALLY;

次の文は、ロール tellerのパスワードを letterに変更します。

ALTER ROLE teller IDENTIFIED BY letter;

パスワードの変更後、ロール tellerが付与されているユーザーは、新しいパスワード「letter」を入力してこのロールを使用可能にする必要があります。

注意注意注意注意 : ALTER ANY ROLEシステム権限を持つユーザーが、IDENTIFIED GLOBALLYであるロールを IDENTIFIED BY password、IDENTIFIED EXTERNALLYまたは NOT IDENTIFIEDのいずれかに変更した場合、非グローバルなロールを作成した場合と同様に、変更されたロールに ADMIN OPTIONが付与されます。

参照参照参照参照 : 9-141ページの「CREATE ROLE」を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-95

Page 408: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER ROLLBACK SEGMENT

ALTER ROLLBACK SEGMENT

用途用途用途用途ALTER ROLLBACK SEGMENT文を使用すると、ロールバック・セグメントのオンライン /オフライン切替え、記憶特性の変更、またはロールバック・セグメントの最適サイズまたは指定サイズへの縮小を行います。

前提条件前提条件前提条件前提条件ALTER ROLLBACK SEGMENTシステム権限が必要です。

構文構文構文構文

storage_clause: 11-129ページの「storage_clause」を参照してください。

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ

rollback_segment既存のロールバック・セグメントの名前を指定します。

参照参照参照参照 : ロールバック・セグメントの作成の詳細は、9-144ページの「CREATE ROLLBACK SEGMENT」を参照してください。

ALTER ROLLBACK SEGMENT rollback_segment

ONLINE

OFFLINE

storage_clause

SHRINKTO integer

K

M

;

7-96 Oracle8i SQLリファレンス Vol.1

Page 409: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER ROLLBACK SEGMENT

ONLINEONLINEを指定すると、ロールバック・セグメントをオンラインにできます。ロールバック・セグメントを作成した場合、最初はオフライン状態になり、トランザクションに使用できなくなります。この句を指定した場合、ロールバック・セグメントはオンラインになり、インスタンスは、トランザクションに対してそのロールバック・セグメントを使用できるようになります。また、初期化パラメータ ROLLBACK_SEGMENTSを使用すると、インスタンスの起動時にロールバック・セグメントをオンラインにできます。

OFFLINEOFFLINEを指定すると、ロールバック・セグメントをオフラインにできます。

� ロールバック・セグメント内に、アクティブ・トランザクションのロールバックに必要な情報が含まれていない場合は、すぐにオフラインになります。

� ロールバック・セグメントにアクティブ・トランザクションについての情報が含まれている場合、このロールバック・セグメントをその後のトランザクションに対して使用できないようにします。また、そのすべてのアクティブ・トランザクションがコミットまたはロールバックされた後、ロールバック・セグメントはオフラインになります。

一度オフラインにされたロールバック・セグメントは、どのインスタンスからもオンラインにできます。

ロールバック・セグメントがオンラインかオフラインかを調べるには、データ・ディクショナリ・ビュー DBA_ROLLBACK_SEGSに問い合せます。オンライン・ロールバック・セグメントの STATUS値は IN_USEです。オフライン・ロールバック・セグメントの STATUS値はAVAILABLEです。

制限事項制限事項制限事項制限事項 : SYSTEMロールバック・セグメントをオフラインにすることはできません。

storage_clausestorage_clauseを使用すると、ロールバック・セグメントの記憶特性を変更できます。

制限事項制限事項制限事項制限事項 :既存のロールバック・セグメントに対する INITIALおよび MINEXTENTSの値は変更できません。

参照参照参照参照 : ロールバック・セグメントを使用可能および使用禁止にする方法については、『Oracle8i 管理者ガイド』を参照してください。

参照参照参照参照 : 構文および追加情報については、11-129ページの「storage_clause」を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-97

Page 410: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER ROLLBACK SEGMENT

SHRINKロールバック・セグメントを最適サイズまたは指定サイズに縮小する場合に、SHRINKを指定します。縮小されるかどうか、および縮小量は、ロールバック・セグメントの使用可能領域およびアクティブ・トランザクションのロールバック・セグメント内での領域保持状態の状況によって異なります。

Kまたは Mで単位を KBまたはMBに指定しなかった場合、integerの値の単位はバイトになります。

TO integerに値を指定しなかった場合、ロールバック・セグメントを作成した CREATE ROLLBACK SEGMENT文の storage_clauseの OPTIMALで指定した値が、デフォルトのサイズになります。OPTIMAL値を指定しなかった場合、CREATE ROLLBACK SEGMENT文のstorage_clauseの MINEXTENTSで指定した値がデフォルトのサイズになります。

TO integerに値を指定するかどうかにかかわらず、次のことがいえます。

� この文の実行時には、ロールバック・セグメントの縮小値が有効です。その後、サイズは CREATE ROLLBACK SEGMENT文の OPTIMAL値に戻ります。

� ロールバック・セグメントは、エクステント数 2未満には縮小できません。

ロールバック・セグメントを縮小した後でロールバック・セグメントの実際のサイズを判断する場合には、DBA_SEGMENTSビューの BYTES列、BLOCKS列および EXTENTS列に問い合せます。

制限事項制限事項制限事項制限事項 : Oracle Parallel Serverでは、自インスタンスに対してオンライン状態のロールバック・セグメントのみを縮小できます。

例例例例

ロールバック・セグメントをオンラインにする例ロールバック・セグメントをオンラインにする例ロールバック・セグメントをオンラインにする例ロールバック・セグメントをオンラインにする例 次の文は、ロールバック・セグメントRSONEをオンラインにします。

ALTER ROLLBACK SEGMENT rsone ONLINE;

ロールバック・セグメントの記憶域の変更例ロールバック・セグメントの記憶域の変更例ロールバック・セグメントの記憶域の変更例ロールバック・セグメントの記憶域の変更例 次の文は、RSONEの STORAGEパラメータを変更します。

ALTER ROLLBACK SEGMENT rsone STORAGE (NEXT 1000 MAXEXTENTS 20);

ロールバック・セグメントのサイズの変更例ロールバック・セグメントのサイズの変更例ロールバック・セグメントのサイズの変更例ロールバック・セグメントのサイズの変更例 次の文は、ロールバック・セグメントのサイズを 100MBに変更します。

ALTER ROLLBACK SEGMENT rsone SHRINK TO 100 M;

7-98 Oracle8i SQLリファレンス Vol.1

Page 411: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SEQUENCE

ALTER SEQUENCE

用途用途用途用途ALTER SEQUENCE文を使用すると、既存の順序の増分値、最小値および最大値、キャッシュされる番号および動作を変更できます。この文は、順序番号に影響します。

前提条件前提条件前提条件前提条件順序が自スキーマ内にある必要があります。自スキーマ内にない場合は、順序に対するALTERオブジェクト権限または ALTER ANY SEQUENCEシステム権限が必要です。

構文構文構文構文

参照参照参照参照 : 順序の詳細は、9-149ページの「CREATE SEQUENCE」を参照してください。

ALTER SEQUENCEschema .

sequence

INCREMENT BY integer

MAXVALUE integer

NOMAXVALUE

MINVALUE integer

NOMINVALUE

CYCLE

NOCYCLE

CACHE integer

NOCACHE

ORDER

NOORDER

;

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-99

Page 412: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SEQUENCE

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータこの文のキーワードおよびパラメータの意味は、順序を作成する場合と同じです。

� 異なる順序番号で再開する場合、順序を削除して再作成する必要があります。

� NEXTVALを最初に呼び出す前に、INCREMENT BYの値を変更する場合、いくつかの順序番号がスキップされます。このため、元の START WITHの値を保持するには、順序を削除し、これを元の START WITHの値および新しい INCREMENT BYの値を使用して再作成する必要があります。

� いくつかの妥当性チェックが行われます。たとえば、MAXVALUEの値に現行の順序番号より小さい値は指定できません。

例例例例

順序の変更例順序の変更例順序の変更例順序の変更例 次の文は、eseq順序に新しい最大値を設定します。

ALTER SEQUENCE eseq MAXVALUE 1500;

次の文は、eseq順序に CYCLEオプションと CACHEオプションを指定します。

ALTER SEQUENCE eseq CYCLE CACHE 5;

参照参照参照参照 :

� 順序の作成の詳細は、9-149ページの「CREATE SEQUENCE」を参照してください。

� 順序の再作成の詳細は、11-3ページの「DROP SEQUENCE」を参照してください。

7-100 Oracle8i SQLリファレンス Vol.1

Page 413: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

ALTER SESSION

用途用途用途用途ALTER SESSION文を使用すると、データベースへの接続に影響するすべての条件またはパラメータを、指定または変更できます。この文は、データベースとの接続を切断するまで有効です。

前提条件前提条件前提条件前提条件SQLトレース機能を使用可能または使用禁止にするには、ALTER SESSIONシステム権限が必要です。

特に指定がない限り、これ以外の操作についての権限は不要です。

構文構文構文構文

set_clause::=

ALTER SESSION

ADVISE

COMMIT

ROLLBACK

NOTHING

CLOSE DATABASE LINK dblink

ENABLE

DISABLECOMMIT IN PROCEDURE

ENABLE

DISABLE

FORCE

PARALLEL

DML

DDL

QUERY

PARALLEL integer

set_clause

;

SET parameter_name = parameter_value

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-101

Page 414: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ

ADVISEADVISE句は、分散トランザクションを強制処理するためのアドバイスをリモート・データベースに送ります。リモート・データベース内の DBA_2PC_PENDINGビューの ADVICE列に、アドバイスが表示されます(値 'C'が COMMIT、'R'が ROLLBACK、' 'が NOTHINGを示します)。トランザクションの状態がインダウトになった場合、データベース管理者は、このアドバイスを使用してトランザクションをコミットするか、ロールバックするかを決定できます。

単一トランザクションにおいて、ADVISE句を指定した ALTER SESSION文を複数発行し、リモート・データベースごとに異なるアドバイスを送ることができます。ADVISE句を指定した文はそれぞれ、ADVISE句を指定した別の文が発行されるまで、トランザクション内の後続する文で参照されるデータベースに対してアドバイスを送ります。

CLOSE DATABASE LINKCLOSE DATABASE LINKを指定すると、データベース・リンク dblinkがクローズされます。データベース・リンクを使用する SQL文を発行した場合、Oracleは、このデータベース・リンクを使用してリモート・データベース上にセッションを作成します。この接続は、セッションの終了またはデータベース・リンクの数が初期化パラメータ OPEN_LINKSの値を超えるまでオープンされています。リンクをオープンしたままにしておくことによって発生するネットワークのオーバーヘッドを減らすには、セッションでデータベース・リンクを再度使用しない場合に、この句を使用してデータベース・リンクを明示的にクローズします。

ENABLE | DISABLE COMMIT IN PROCEDUREプロシージャおよびストアド・ファンクションは PL/SQLで記述されるため、COMMIT文とROLLBACK文を発行できます。アプリケーション自体が直接発行していない COMMIT文やROLLBACK文によって、アプリケーションが中断される場合、COMMIT IN PROCEDURE句のDISABLEフォームを使用して、セッション中にコールされるプロシージャやストアド・ファンクションからこれらの文が発行されないように制御します。

その後、この句の ENABLEフォームを発行することによって、プロシージャおよびストアド・ファンクションが COMMIT文や ROLLBACK文を発行できるようになります。

参照参照参照参照 : 分散トランザクションの詳細と、インダウト分散トランザクションをコミットするかまたはロールバックするかを判断する方法については、『Oracle8i分散システム』を参照してください。

注意注意注意注意 : まず、データベース・リンクを使用するすべてのカーソルをクローズします。現行のトランザクションがリンクを使用している場合は、現行のトランザクションを終了する必要があります。

7-102 Oracle8i SQLリファレンス Vol.1

Page 415: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

一部のアプリケーション(SQL*Formsなど)は、自動的にプロシージャおよびストアド・ファンクションでの COMMIT文や ROLLBACK文を禁止します。ご使用のアプリケーションのドキュメントを参照してください。

PARALLEL DML | DDL | QUERYPARALLELパラメータは、そのセッションの後続の DML、DDLまたは問合せ文をパラレル実行とみなすかどうかを指定します。この句は、現行のセッション中に表自体を変更せずに、表の並列度をオーバーライド可能にします。コミットされていないトランザクションは、DMLに対してこの句を実行する前に、コミットまたはロールバックされる必要があります。

注意注意注意注意 : この文は、データベース・トリガーには適用されません。トリガーでは COMMIT文も ROLLBACK文も発行できません。

注意注意注意注意 : DMLに対してこの句を実行できるのは、コミットされたトランザクション間のみです。

ENABLE ENABLEを指定すると、セッション内の後続文をパラレルで実行します。これは、DDL文および問合せ文のデフォルト値です。

� DML: パラレル・ヒントまたはパラレル句が指定されている場合に、セッションの DML文をパラレル・モードで実行します。

� DDL: パラレル句が指定されている場合に、セッションの DDL文をパラレル・モードで実行します。

� QUERY: パラレル・ヒントまたはパラレル句が指定されている場合に、セッションの問合せをパラレル・モードで実行します。

制限事項制限事項制限事項制限事項 :オプションの PARALLEL integerに ENABLEを指定することはできません。

DISABLE DISABLEを指定すると、後続文をシリアルに実行します。これは、DML文のデフォルト値です。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-103

Page 416: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

� DML: セッションの DML文をシリアルに実行します。

� DDL: セッションの DDL文をシリアルに実行します。

� QUERY: セッションの問合せをシリアルに実行します。

制限事項制限事項制限事項制限事項 :オプションの PARALLEL integerに DISABLEを指定することはできません。

FORCE FORCEは、セッションの後続文を強制的にパラレル実行します。パラレル句もパラレル・ヒントも指定されていない場合は、デフォルトの並列度が使用されます。この句は、セッションの後続文に指定されたすべての parallel_clauseをオーバーライドしますが、パラレル・ヒントでオーバーライドします。

� DML: パラレル DML制限のどれにも違反していない場合、特定の並列度がこの句に指定されていない限り、デフォルトの並列度でセッションの後続の DML文を実行します。

� DDL: 特定の並列度がこの句に指定されていない限り、デフォルトの並列度でセッションの後続の DDL文を実行します。結果のデータベース・オブジェクトは、通常の並列度に対応します。

� DDL文 FORCEを使用した場合、そのセッションで作成されるすべての表は、自動的にデフォルトのパラレル化レベルで作成されます。結果は、CREATE TABLE文で(デフォルトの並列度を使用して)parallel_clauseを指定した場合と同じです。

� QUERY: 特定の並列度がこの句に指定されていない限り、デフォルトの並列度で後続の問合せを実行します。

� PARALLEL integer: 並列度を明示的に指定する整数を指定します。

DDLを強制的に実行する場合、この並列度が、後続の DDL文のパラレル句をオーバーライドします。

DMLおよび QUERYを強制的に実行する場合、この並列度が、データ・ディクショナリの表に格納されている現行の並列度をオーバーライドします。

ヒントによって文に指定される並列度は、強制的に実行される並列度をオーバーライドします。

7-104 Oracle8i SQLリファレンス Vol.1

Page 417: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

次の DML操作は、この句に関係なくパラレル化されません。

� クラスタ化表に対する操作

� データベースまたはパッケージの状態を読み書きする埋込み関数を使用した操作

� 起動する可能性のあるトリガーを使用した表に対する操作

� オブジェクト型、LONGまたは LOBデータ型が含まれている表またはスキーマ・オブジェクトでの操作

set_clauseset_clauseを使用すると、後続のセッション・パラメータ(ALTER SESSION文の有効範囲内で動的なパラメータ)を設定できます。同一の set_clauseで複数のパラメータに対する値を設定できます。

CONSTRAINT[S] = {immediate | deferred | default }

CONSTRAINT[S]は、遅延可能制約によって指定された条件を、いつ適用するかを指定します。CONSTRAINT[S]はセッション・パラメータであり、初期化パラメータではありません。

� immediateを設定した場合、遅延可能な制約によって指定される条件は、各 DML文の直後にチェックされます。これは、セッションの各トランザクションの開始時に、SET CONSTRAINTS ALL IMMEDIATE文を発行することと同じです。

参照参照参照参照 : パラレル DMLの機能とヒントの詳細は、『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

注意注意注意注意 : 特に指定がない限り、ここで説明するパラメータは初期化パラメータを示し、一般的な特徴のみを説明します。初期化パラメータの値を変更する前に、『Oracle8iリファレンス・マニュアル』または『Oracle8i NLSガイド』を参照してください。

参照参照参照参照 : 11-120ページの「SET CONSTRAINT[S]」の IMMEDIATEパラメータを参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-105

Page 418: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

� deferredを設定した場合、遅延可能な制約によって指定される条件は、トランザクションのコミット時にチェックされます。これは、セッションの各トランザクションの開始時に、SET CONSTRAINTS ALL DEFERRED文を発行することと同じです。

� defaultを設定した場合、すべての制約は各トランザクションの開始時に、DEFERREDまたは IMMEDIATEの初期状態にリストアされます。

CREATE_STORED_OUTLINES = { true | false| 'category_name' }

CREATE_STORED_OUTLINESパラメータは、セッション中に発行された問合せごとに、アウトラインを自動的に作成および格納するかどうかを決定します。CREATE_STORED_OUTLINESは、初期化パラメータではありません。

� trueを設定した場合、同一セッション内で後続の問合せに対するアウトラインは、自動的に作成可能になります。このアウトラインは、一意のシステム生成名を受け取り、DEFAULTカテゴリに格納されます。すでに特定の問合せに定義したアウトラインがDEFAULTカテゴリに存在する場合は、そのアウトラインが保持され、新しいアウトラインは作成されません。

� falseを設定した場合、セッション中のアウトラインは作成禁止になります。これはデフォルト値です。

� category_nameを設定した場合、TRUEと同じ動作をしますが、セッション中に作成されたすべてのアウトラインは、category_nameカテゴリに格納されます。

CURRENT_SCHEMA = schema

CURRENT_SCHEMAは、セッションの現行スキーマを、指定したスキーマに変更します。セッション中のスキーマ・オブジェクトに対する後続の未修飾の参照は、この指定したスキーマ内でオブジェクトに変換されます。この設定は、現行セッションの存続期間中、または ALTER SESSION SET CURRENT_SCHEMA文を再度発行するまで保持されます。CURRENT_SCHEMAはセッション・パラメータであり、初期化パラメータではありません。

この設定によって、カレント・ユーザーのスキーマ以外にあるオブジェクトに対する操作を、オブジェクトをスキーマ名で修飾することなく簡単に行えます。この設定によって、現行スキーマは変更されますが、このセッションのユーザーまたはカレント・ユーザーは変更されません。また、このセッションに対して、追加のシステム権限またはオブジェクト権限は付与されません。

参照参照参照参照 : 11-120ページの「SET CONSTRAINT[S]」の DEFERREDパラメータを参照してください。

7-106 Oracle8i SQLリファレンス Vol.1

Page 419: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

CURSOR_SHARING = {force | exact}

CURSOR_SHARINGは、同じカーソルを共有できる SQL文の種類を決定します。

� exactは、同じ SQL文のみをカーソル共有させます。

� forceは、リテラルが異なる文(その他は同じ文)について、文の意味に影響しない場合に限り、カーソルを共有させます。

DB_BLOCK_CHECKING = {true | false}

DB_BLOCK_CHECKINGパラメータは、データ・ブロック・チェックを終了するかどうかを制御します。デフォルト値は falseです。

DB_FILE_MULTIBLOCK_READ_COUNT = integer

DB_FILE_MULTIBLOCK_READ_COUNTパラメータでは、順次操作中に、1回の I/O操作で読み込まれるブロックの最大数を integerに指定します。デフォルト値は 8です。

FAST_START_IO_TARGET = integer

FAST_START_IO_TARGETパラメータは、クラッシュまたはインスタンス・リカバリ時に、Oracleが行う必要があるバッファ・キャッシュに対する I/O(読取りおよび書込み)のターゲット数を指定します。Oracleは、リカバリに必要な I/Oの実際の数を継続的に計算し、ターゲットと比較します。実際の数がターゲットより大きい場合、Oracleはチェックポイントを拡張するために追加の使用済バッファを書き込み、パフォーマンスへの影響を最小限にします。

FLAGGER = { entry | intermediate | full | off }

FLAGGERパラメータは、FIPSのフラグを指定します。このフラグを使用した場合、ANSI SQL92の拡張要素である SQL文が発行されたときに、エラー・メッセージが生成されます。FLAGGERは、セッション・パラメータであり、初期化パラメータではありません。

参照参照参照参照 : このパラメータについては、『Oracle8iアプリケーション開発者ガイド 基礎編』を参照してください。

参照参照参照参照 : このパラメータの設定方法については、『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

参照参照参照参照 : このパラメータのチューニング方法については、『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-107

Page 420: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

Oracleでは、Entryレベル、Intermediateレベル、Fullレベルのそれぞれのフラグに違いはありません。セッションでフラグ使用が設定された場合、これに続く ALTER SESSION SET FLAGGER文は成功しますが、ORA-00097のメッセージが発行されます。このため、セッションを切断しなくても FIPSフラグ使用を変更できます。

GLOBAL_NAMES = { true | false }

インスタンスを起動した場合、初期化パラメータ GLOBAL_NAMESの値に基づいて、SQL文でアクセスされるリモート・オブジェクトに対する、グローバル・ネーム解決の適用の可否が Oracleによって決定されます。このパラメータを使用した場合、現行セッションの存続期間中にグローバル・ネーム解決が使用可能または使用禁止になります。trueに設定した場合、グローバル名の適用が可能になります。falseに設定した場合、グローバル名の適用が禁止になります。さらに、ALTER SYSTEM文の GLOBAL_NAMESパラメータを使用したインスタンスに対して、グローバル・ネーム解決を使用可能または使用禁止にできます。

分散処理を使用または計画している場合は、グローバル・ネーム解決を使用可能にしてください。

HASH_AREA_SIZE = integer

HASH_AREA_SIZEパラメータは、ハッシュ結合処理用に使用するメモリー量をバイト単位で指定します。デフォルト値は、初期化パラメータ SORT_AREA_SIZEの値の 2倍です。

HASH_JOIN_ENABLED = {true | false}

HASH_JOIN_ENABLEDパラメータは、問合せでのハッシュ結合処理を使用可能または使用禁止にします。デフォルト値は trueで、ハッシュ結合が使用可能です。

HASH_MULTIBLOCK_IO_COUNT = integer

HASH_MULTIBLOCK_IO_COUNTパラメータは、ハッシュ結合処理時に読み取るまたは書き込むデータ・ブロックの数を指定します。このパラメータの値に初期化パラメータDB_BLOCK_SIZEの値を掛けた値が、64KB以下になるようにしてください。このパラメータのデフォルト値は 1です。マルチスレッド・サーバーを使用している場合、値は常に 1になり、それ以外の値を指定しても無視されます。

参照参照参照参照 : グローバル・ネーム解決およびその適用方法の詳細は、2-88ページの「リモート・データベース内のオブジェクトの参照」および『Oracle8i分散システム』を参照してください。

7-108 Oracle8i SQLリファレンス Vol.1

Page 421: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

INSTANCE = integer

Oracle Parallel Server環境で INSTANCEパラメータを設定すると、セッションが整数で指定したインスタンスに接続する場合と同様に、データベース・ファイルにアクセスします。INSTANCEはセッション・パラメータであり、初期化パラメータではありません。パフォーマンスの最適化のため、Oracle Parallel Serverの各インスタンスは、それぞれ専用のロールバック・セグメントや空きリスト・グループなどを使用しています。データベースは、通常、1つの Parallel Server用に設計されています。Oracle Parallel Server環境では、通常、1つのインスタンスに接続し、パーティションで分割されたデータにアクセスします。別のインスタンスに接続する必要がある場合には、データのパーティション分割はなくなります。このパラメータを設定した場合、自インスタンスに接続している場合と同様に、別のインスタンスにもアクセスできます。

ISOLATION_LEVEL = { SERIALIZABLE | READ COMMITTED }

ISOLATION_LEVELパラメータは、データベースを変更するトランザクションがどのように処理されるかを指定します。ISOLATION_LEVELはセッション・パラメータであり、初期化パラメータではありません。

� SERIALIZABLEを設定した場合、セッション内のトランザクションは、SQL92に規定されているとおりシリアライズ可能トランザクション分離モードを使用します。シリアライズ可能トランザクションが行を更新する DML文を実行する場合、現在の更新対象の行がそのシリアライズ可能トランザクションの開始時にコミットされていない別のトランザクションによって更新されていたときは、その DML文は失敗します。シリアライズ可能トランザクションは、同一トランザクション内で行った更新を確認できます。

� READ COMMITTEDを設定した場合、セッション内のトランザクションは、Oracleトランザクションのデフォルトの動作を行います。このため、別のトランザクションでかけられた行ロックを必要とする DMLがトランザクションに含まれていると、DML文は、行ロックが解除されるまで待ち状態になります。

LOG_ARCHIVE_DEST_n

LOG_ARCHIVE_DEST_n = {null_string | {LOCATION=local_pathname | SERVICE=tnsnames_service} [MANDATORY | OPTIONAL] [REOPEN[=integer]]}

LOG_ARCHIVE_DEST_nパラメータは、セッション固有の有効なオペレーティング・システムのパス名または Oracleのサービス名(関連するその他のオプションを含む)を、最大 5つまで REDOログ・ファイル・グループに対する宛先として指定します(nは 1~ 5までの整数)。

制限事項制限事項制限事項制限事項 :このパラメータの値を設定した場合、次の制限事項があります。

� 初期化パラメータ・ファイルのパラメータ LOG_ARCHIVE_DESTおよびLOG_ARCHIVE_DUPLEX_DESTを定義することはできません。また、ALTER SYSTEM文を使用して、これらのパラメータの値を設定することはできません。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-109

Page 422: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

� ALTER SYSTEM ARCHIVE LOG TO location文を使用して、固有の場所にアーカイブを開始することはできません。

LOG_ARCHIVE_DEST_STATE_n = {ENABLE | DEFER}

LOG_ARCHIVE_DEST_STATE_nパラメータは、対応する LOG_ARCHIVE_DEST_nパラメータに関連するセッション固有の状態を指定します。

� ENABLEに設定した場合、対応するすべての有効な宛先がアーカイブに使用されます。これはデフォルト値です。

� DEFERを設定した場合、Oracleは、対応する LOG_ARCHIVE_DEST_nパラメータに関連付けられているすべての宛先をアーカイブで使用できるとはみなしません。

LOG_ARCHIVE_MIN_SUCCEED_DEST = integer

LOG_ARCHIVE_MIN_SUCCEED_DESTパラメータは、オンライン・ログ・ファイルを再使用するために必要な宛先のセッション固有の最小数を指定します。

MAX_DUMP_FILE_SIZE = { size | UNLIMITED }

MAX_DUMP_FILE_SIZEパラメータは、トレース・ダンプ・ファイルのサイズの上限を指定します。最大 sizeには、ブロック数を表す負以外の整数、または UNLIMITEDを指定します。UNLIMITEDを指定した場合、上限は設定されません。

NLSパラメータパラメータパラメータパラメータインスタンスの起動時に、「NLS」で始まる初期化パラメータの値に基づいてサポートが提供されます。動的パフォーマンス表 V$NLS_PARAMETERSに問い合せれば、セッションの現在の NLS属性を参照できます。NLSパラメータの詳細は、『Oracle8i NLSガイド』を参照してください。

NLS_CALENDAR = 'text'

NLS_CALENDARパラメータは、新しいカレンダのタイプを明示的に指定します。

参照参照参照参照 :

� オプションの詳細は、『Oracle8iリファレンス・マニュアル』を参照してください。

� パス名の指定については、『Oracle8iリファレンス・マニュアル』のLOG_ARCHIVE_DEST_nパラメータを参照してください。

7-110 Oracle8i SQLリファレンス Vol.1

Page 423: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

NLS_COMP = 'text'

NLS_COMPパラメータは、NLS_SORTパラメータに従って言語比較が使用されるように指定します。このパラメータによって、SQL文に NLS_SORTを指定する必要がなくなります。

NLS_CURRENCY = 'text'

NLS_CURRENCYパラメータは、L数値書式要素(各国通貨記号)の新しい値を明示的に指定します。記号は 10文字以内です。

NLS_DATE_FORMAT = 'fmt'

NLS_DATE_FORMATパラメータは、新しいデフォルト日付書式を明示的に指定します。fmtは、有効な日付書式モデルである必要があります。

NLS_DATE_LANGUAGE = language

NLS_DATE_LANGUAGEパラメータは、名前、曜日と月の省略形、および省略しないで表したその他の日付書式要素の言語を明示的に変更します。

NLS_DUAL_CURRENCY = 'text'

NLS_DUAL_CURRENCYパラメータは、新しい「Euro」(またはその他)の第二通貨記号を明示的に指定します。textの値は、U数値書式要素で戻されます。textは、10文字以内です。

NLS_ISO_CURRENCY = territory

NLS_ISO_CURRENCYパラメータは、ISO通貨記号を適用する範囲を明示的に指定します。この範囲の通貨記号は、C数値書式要素の値となります。

NLS_LANGUAGE = language

NLS_LANGUAGEは、Oracleがエラー・メッセージとその他のメッセージを戻す場合に使用する言語を変更します。このパラメータによって、次の値も暗黙的に変更されます。

参照参照参照参照 : 有効な日付書式モデルの詳細は、2-46ページの「日付書式モデル」を参照してください。

参照参照参照参照 : 日付書式要素の詳細は、2-41ページの「数値書式モデル」を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-111

Page 424: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

� 曜日および月の名前、その他の要素の略称と省略しない形式に対する言語

� 言語ソート順序またはバイナリ・ソート

� B.C.および A.D.の標識

� A.M.および P.M.の正午標識

NLS_NUMERIC_CHARACTERS = 'text'

NLS_NUMERIC_CHARACTERSパラメータは、新しい小数点文字と桁グループ・セパレータを明示的に指定します。textの値は、次の形で指定します。

'dg'

dは新しい小数点文字を表し、gは新しい桁グループ・セパレータを表します。

小数点文字と桁グループ・セパレータは、シングルバイト文字を使用して、それぞれ異なる値を指定する必要があります。数値やプラス記号(+)、マイナス記号またはハイフン(-)、不等号(<または >)は使用できません。

小数点文字がピリオド(.)でない場合、SQL文の式のすべての数値を一重引用符で囲む必要があります。小数点にピリオドを使用しない場合、必ず有効な数値が取り出されるように、常に TO_NUMBER関数を使用する必要があります。

NLS_SORT = { sort | BINARY}

NLS_SORTパラメータは、Oracleが文字値をソートするための言語ソート順序を変更します。sortには、言語ソート順序の名前を指定します。BINARYは、バイナリ・ソートを指定します。デフォルト値は BINARYです。

NLS_TERRITORY = territory

NLS_TERRITORYパラメータは、次の値を暗黙的に変更します。

� デフォルトの日付書式

� 小数点文字と桁グループ・セパレータ

� 各国通貨記号

� ISO通貨記号

� D日付書式要素の週の第 1日目

7-112 Oracle8i SQLリファレンス Vol.1

Page 425: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

OBJECT_CACHE_MAX_SIZE_PERCENT = integer

OBJECT_CACHE_MAX_SIZE_PERCENTパラメータは、セッション・オブジェクト・キャッシュが、最適なキャッシュ・サイズを超えることができる割合を指定します。デフォルト値は 10です。

OBJECT_CACHE_OPTIMAL_SIZE = integer

OBJECT_CACHE_OPTIMAL_SIZEパラメータは、セッション・オブジェクト・キャッシュが最大サイズを超えた場合に、このキャッシュを縮小するサイズを KB単位で指定します。デフォルト値は 100です。

OPTIMIZER_INDEX_CACHING = integer

OPTIMIZER_INDEX_CACHINGパラメータは、オプティマイザがネステッド・ループ・ジョインおよび INリスト・イテレータを保護するように調整可能にします。integerの値は、キャッシュ内にあるとみなされる索引ブロックの割合を示します。

OPTIMIZER_INDEX_COST_ADJ = integer

OPTIMIZER_INDEX_COST_ADJパラメータは、オプティマイザがフル・テーブル・スキャンより索引アクセスを選択するように、アクセス・パス選択に対するオプティマイザの動作を調整可能にします。integerの値は、オプティマイザが索引パスに接続することの重要性を標準と比較して示す割合です。デフォルト値は 100(100%)で、標準コストでオプティマイザ・コスト索引アクセス・パスに接続することを示します。

OPTIMIZER_MAX_PERMUTATIONS = integer

OPTIMIZER_MAX_PERMUTATIONSパラメータは、オプティマイザが大きい結合で問合せを最適化する際に使用する機能を制限可能にします。integerの値は、オプティマイザが大きい結合で考慮する表の順列数です。

OPTIMIZER_MODE = { all_rows | first_rows | rule | choose }

OPTIMIZER_MODEパラメータは、セッションの最適化の方法とモードを指定します。

� all_rowsを設定した場合、コストベースの方法が指定され、最大のスループットを実現するために最適化します。

参照参照参照参照 : アプリケーションの特性に基づく、コストベース・オプティマイザの目標の決定方法については、『Oracle8i概要』および『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-113

Page 426: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

� first_rowsを設定した場合、コストベースの方法が指定され、最も速い応答時間を実現するために最適化します。

� ruleを設定した場合、ルールベースの方法が指定されます(ルールベースのオプティマイザは、ファンクション索引を使用しません)。

� chooseを設定した場合、オプティマイザは、データ・ディクショナリの統計情報に基づいて最適化の方法を選択します。

OPTIMIZER_PERCENT_PARALLEL = integer

OPTIMIZER_PERCENT_PARALLELパラメータは、オプティマイザがコスト関数で使用するパラレル化の量を指定します。デフォルト値は 0(パラレル化なし)です。

PARALLEL_BROADCAST_ENABLED = { true | false }

PARALLEL_BROADCAST_ENABLEDパラメータは、ハッシュおよびマージ結合中にパフォーマンスを向上させます。

PARALLEL_INSTANCE_GROUP = ' text '

PARALLEL_INSTANCE_GROUPパラメータは、パラレル問合せスレーブを発生させるために使用するパラレル・インスタンス・グループを識別します。デフォルト値は、すべてのアクティブ・インスタンスです。

PARALLEL_MIN_PERCENT = integer

PARALLEL_MIN_PERCENTパラメータは、パラレル問合せに必要なスレッドの最小割合を指定します。デフォルト値は 0(パラレル化なし)です。

PARTITION_VIEW_ENABLED = { true | false }

PARTITION_VIEW_ENABLEDに trueを設定した場合、オプティマイザは、パーティション・ビュー内の不要な表のアクセスをスキップします。

注意注意注意注意 : パラレル・モードで Oracle Parallel Serverを実行する場合にのみ、このパラメータを設定します。

注意注意注意注意 : パーティション・ビューの詳細は、10-106ページの「パーティション・ビュー」を参照してください。

7-114 Oracle8i SQLリファレンス Vol.1

Page 427: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

PLSQL_V2_COMPATIBILITY = { true | false }

PLSQL_V2_COMPATIBILITYパラメータに trueを設定した場合、コンパイル時の PL/SQLプログラムの動作を変更して、Oracle7(PL/SQL V2)の言語構造では有効で、Oracle8および Oracle8i(PL/SQL V3)では無効な言語構造を使用できるようにします。falseを設定した場合、Oracle7 PL/SQL V2では無効な構造体を使用禁止にします。これはデフォルト値です。

QUERY_REWRITE_ENABLED = { true | false }

QUERY_REWRITE_ENABLEDパラメータは、明示的に使用禁止にされていないすべてのマテリアライズド・ビューに対して、問合せのリライトを使用可能または使用禁止にします。デフォルトでは、問合せのリライトは使用禁止にされています。さらに、ルールベースの最適化によっても使用禁止にされます(OPTIMIZER_MODEパラメータに ruleを設定した場合)。

このパラメータには、ファンクション索引の使用に対して、他に次の影響があります。

� true: Oracleは、ファンクション索引を使用して SQL式の値を導出します。また、QUERY_REWRITE_INTEGRITYパラメータに enforced以外の値を設定した場合、この索引が SQLではなくユーザー定義に基づくファンクションであっても、Oracleはこの値を導出します。

� false: Oracleは、ファンクション索引を使用して SQL式の値を導出しませんが、このような索引を使用して索引の実列の値を取得します。

問合せのリライトを使用可能または使用禁止にしても、降順の索引には影響しません。

trueを設定しても、すべてまたは一部をビューから作成されるマテリアライズド・ビューなど、ENABLE QUERY REWRITE句で作成されないマテリアライズド・ビューには影響しません。

QUERY_REWRITE_INTEGRITY

QUERY_REWRITE_INTEGRITY = { enforced | trusted | stale_tolerated }

QUERY_REWRITE_INTEGRITYパラメータは、問合せのリライトに対する最小の一貫性のレベルを設定します。次の値を使用できます。

参照参照参照参照 : セッション・パラメータの詳細は、『Oracle8i PL/SQLユーザーズ・ガイドおよびリファレンス』および『Oracle8iリファレンス・マニュアル』を参照してください。

参照参照参照参照 : 問合せのリライトの詳細は、『Oracle8iデータ・ウェアハウス』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-115

Page 428: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

� enforcedは、最も安全なレベルです。システムに適用された関係のみを使用し、データの整合性および正確性を保証します。このレベルでは、問合せのリライトは、ファンクション索引またはユーザー定義ファンクションなどのマテリアライズド・ビューを使用しません。

さらに、問合せのリライトは、ディメンション情報または RELYキーワードで使用可能にされた制約を使用しません。

� trustedに設定した場合、ON PREBUILT TABLE句で作成されたマテリアライズド・ビューがサポートされ、信頼できますが、適用されていない結合関係を受け入れます。問合せのリライトは、ディメンションからの結合情報を使用し、適用されていない制約を RELYキーワードで使用可能にします。

� stale_toleratedに設定した場合、使用可能なすべてのマテリアライズド・ビューを使用できます。

このパラメータは、降順の索引には影響しません。

REMOTE_DEPENDENCIES_MODE = { timestamp | signature }

REMOTE_DEPENDENCIES_MODEは、リモート・ストアド・プロシージャの依存性が、このセッションでどのように処理されるかを指定します。

SESSION_CACHED_CURSORS = integer

SESSION_CACHED_CURSORSパラメータは、キャッシュ内に保持できる使用頻度が高いカーソルの数を指定します。カーソルは、オープンまたはクローズすることができるため、フォームを切り換えるときに、そのフォームに関連しているセッション・カーソルをすべてクローズする Oracle Toolsに対して特に便利です。この場合、使用頻度が高いカーソルを再解析する必要はありません。新しいエントリが必要になると、最低使用頻度アルゴリズムによって、キャッシュ内の不要なエントリが選別され、新しいエントリのための領域が確保されます。

参照参照参照参照 :

� 問合せのリライトの整合性レベルの詳細は、『Oracle8iデータ・ウェアハウス』を参照してください。

� ディメンションの詳細は、9-34ページの「CREATE DIMENSION」を参照してください。

� RELYキーワードで使用可能にされた制約の詳細は、8-134ページの「constraint_clause」を参照してください。

参照参照参照参照 : 『Oracle8iアプリケーション開発者ガイド 基礎編』を参照してください。

参照参照参照参照 : セッション・カーソル・キャッシュの詳細は、『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

7-116 Oracle8i SQLリファレンス Vol.1

Page 429: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

SKIP_UNUSABLE_INDEXES = { true | false }

SKIP_UNUSABLE_INDEXESパラメータは、使用禁止の索引または索引パーティションが表にある場合、その表の使用およびレポートを制御します。SKIP_UNUSABLE_INDEXESは、セッション・パラメータで、初期化パラメータではありません。

� trueを設定した場合、UNUSABLEのマークが付けられた索引および索引パーティションのエラー・レポートを使用禁止にします。使用禁止の索引または索引パーティションを持つ表に対するすべての操作(挿入、削除、更新および選択)が認められます。

� falseを設定した場合、UNUSABLEのマークが付けられた索引のエラー・レポートを使用可能にします。使用禁止の索引または索引パーティションを持つ表に対する挿入、削除および更新は認められません。これはデフォルト値です。

SORT_AREA_RETAINED_SIZE = integer

SORT_AREA_RETAINED_SIZEパラメータは、最初のフェッチが完了してからカーソルが終了するまでに、各ソート操作が保持する最大メモリー量をバイト単位で指定します。このパラメータを、初期化パラメータ・ファイルで明示的に設定しない場合、または動的に設定しない場合、SORT_AREA_SIZEパラメータ値が使用されます。

SORT_AREA_SIZE = integer

SORT_AREA_SIZEパラメータは、各ソート操作に使用する最大メモリー量をバイト単位で指定します。デフォルト値は OSに依存します。

SORT_MULTIBLOCK_READ_COUNT = integer

SORT_MULTIBLOCK_READ_COUNTパラメータは、ソートが一時セグメントから読取りを行うたびに読み取るデータベース・ブロック数を指定します。デフォルト値は 2です。

SQL_TRACE = { true | false }

SQLトレース機能は、SQL文の処理に関するパフォーマンス統計情報を生成します。セッションを開始した場合、このパラメータの値に基づいて SQLトレース機能が使用可能または使用禁止にされます。後から ALTER SESSION文の SQL_TRACEパラメータを指定することによって、自セッションの SQLトレース機能を使用可能または使用禁止にできます。

注意注意注意注意 : 使用禁止の索引または索引パーティションを通常使用する文は、高効率でない最適化計画によってコンパイルされます。その結果、応答時間やリソース使用率の低下を招くことがあります。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-117

Page 430: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

� trueに設定すると、SQLトレース機能が使用可能になります。

� falseに設定すると、SQLトレース機能が使用禁止になります。

SQL_TRACEは、初期化パラメータです。ただし、ALTER SESSION文で値を変更しても、V$PARAMETERビューに反映されません。そのため、このコンテキストでは、セッション・パラメータのみを考慮します。

STAR_TRANSFORMATION_ENABLED = { true | false }

STAR_TRANSFORMATION_ENABLEDパラメータは、コストベースの問合せ変換が、スター問合せに適用されるかどうかを決定します。デフォルト値は falseです。

TIMED_STATISTICS = {true | false }

TIMED_STATISTICSパラメータは、時間関連の統計を生成する場合に、サーバーが、オペレーティング・システムから時間を要求するかどうかを指定します。デフォルト値は falseです。

USE_STORED_OUTLINES = { true | false | 'category_name' }

USE_STORED_OUTLINESパラメータは、オプティマイザが、ストアド・アウトラインを使用して実行計画を生成するかどうかを決定します。USE_STORED_OUTLINESは、初期化パラメータではありません。

� trueを設定した場合、要求をコンパイルするときに、オプティマイザが DEFAULTカテゴリに格納されたアウトラインを使用します。

� falseを設定した場合、オプティマイザはストアド・アウトラインを使用しません。これはデフォルト値です。

� category_nameに設定した場合、要求をコンパイルする場合に、オプティマイザがcategory_nameカテゴリに格納されたアウトラインを使用します。

参照参照参照参照 : 出力の書式設定や解析方法など、SQLトレース機能の詳細は、『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

7-118 Oracle8i SQLリファレンス Vol.1

Page 431: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

例例例例

パラレルパラレルパラレルパラレル DMLを使用可能にする例を使用可能にする例を使用可能にする例を使用可能にする例 現行セッションのパラレル DMLモードを使用可能にする場合、次の文を発行します。

ALTER SESSION ENABLE PARALLEL DML;

分散トランザクションを強制的に実行する例分散トランザクションを強制的に実行する例分散トランザクションを強制的に実行する例分散トランザクションを強制的に実行する例 次のトランザクションによって、データベース・リンク site1によって識別されるデータベース上の emp表に従業員のレコードを挿入し、site2によって識別されるデータベース上の emp表から従業員のレコードを削除します。

ALTER SESSION ADVISE COMMIT;

INSERT INTO emp@site1 VALUES (8002, 'FERNANDEZ', 'ANALYST', 7566, TO_DATE('04-OCT-1992', 'DD-MON-YYYY'), 3000, NULL, 20);

ALTER SESSION ADVISE ROLLBACK;

DELETE FROM emp@site2 WHERE empno = 8002;

COMMIT;

このトランザクションには、ADVISE句を指定した ALTER SESSION文が 2つあります。このトランザクションが状態不明(インダウト)になった場合、site1には、最初に指定したALTER SESSION文によって 'COMMIT'が送信され、site2には、2番目の指定によって'ROLLBACK'が送信されます。

データベース・リンクをクローズする例データベース・リンクをクローズする例データベース・リンクをクローズする例データベース・リンクをクローズする例 次の文は、データベース・リンクを使用しているsalesデータベース上の従業員表を更新し、このトランザクションをコミットして、データベース・リンクを明示的にクローズします。

注意注意注意注意 : 実行計画にマテリアライズド・ビューを認識させる場合は、アウトラインに指定する必要があります。アウトラインがマテリアライズド・ビューを使用しない場合、問合せのリライトを使用可能にした場合でも、アウトラインを使用する問合せでマテリアライズド・ビューは使用されません。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-119

Page 432: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

UPDATE emp@sales SET sal = sal + 200 WHERE empno = 9001;

COMMIT;

ALTER SESSION CLOSE DATABASE LINK sales;

日付書式の動的な変更例日付書式の動的な変更例日付書式の動的な変更例日付書式の動的な変更例 次の文は、セッションのデフォルトの日付書式を 'YYYY MM DD-HH24:MI:SS'に動的に変更します。

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY MM DD HH24:MI:SS';

変更後は、新しい日付書式が次のように適用されます。

SELECT TO_CHAR(SYSDATE) Today FROM DUAL;

TODAY ------------------- 1997 08 12 14:25:56

日付言語の動的な変更例日付言語の動的な変更例日付言語の動的な変更例日付言語の動的な変更例 次の文は、日付書式要素の言語をフランス語に変更します。

ALTER SESSION SET NLS_DATE_LANGUAGE = French;

SELECT TO_CHAR(SYSDATE, 'Day DD Month YYYY') Today FROM DUAL;

TODAY --------------------------- Mardi 28 Février 1997

ISO通貨の変更例通貨の変更例通貨の変更例通貨の変更例 次の文では、ISO通貨記号をアメリカ合衆国の ISO通貨記号に動的に変更します。

ALTER SESSION SET NLS_ISO_CURRENCY = America;

SELECT TO_CHAR( SUM(sal), 'C999G999D99') Total FROM emp;

TOTAL -------------USD29,025.00

7-120 Oracle8i SQLリファレンス Vol.1

Page 433: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

小数点文字と桁グループ・セパレータの変更例小数点文字と桁グループ・セパレータの変更例小数点文字と桁グループ・セパレータの変更例小数点文字と桁グループ・セパレータの変更例 次の文は、小数点文字をカンマ(,)に、桁グループ・セパレータをピリオド(.)に動的に変更します。

ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ',.' ;

これらの数値書式要素を使用した場合、新しい文字が戻ります。

SELECT TO_CHAR( SUM(sal), 'L999G999D99') Total FROM emp ;

TOTAL -------------FF29.025,00

NLS通貨の変更例通貨の変更例通貨の変更例通貨の変更例 次の文は、各国通貨記号を 'DM'に動的に変更します。

ALTER SESSION SET NLS_CURRENCY = 'DM';

SELECT TO_CHAR( SUM(sal), 'L999G999D99') Total FROM emp;

TOTAL -------------DM29.025,00

NLS言語の変更例言語の変更例言語の変更例言語の変更例 次の文は、表示されたエラー・メッセージの言語をフランス語に動的に変更します。

ALTER SESSION SET NLS_LANGUAGE = FRENCH;

SELECT * FROM DMP;

ORA-00942: Table ou vue inexistante

言語のソート順の変更例言語のソート順の変更例言語のソート順の変更例言語のソート順の変更例 次の文は、言語ソート順序をスペイン語に動的に変更します。

ALTER SESSION SET NLS_SORT = XSpanish;

これによって、文字の値はスペイン語のソート順序に基づいてソートされます。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-121

Page 434: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SESSION

SQLトレースを使用可能にする例トレースを使用可能にする例トレースを使用可能にする例トレースを使用可能にする例 次の文は、セッションに対して SQLトレース機能を使用可能にします。

ALTER SESSION SET SQL_TRACE = TRUE;

問合せのリライトを使用可能にする例問合せのリライトを使用可能にする例問合せのリライトを使用可能にする例問合せのリライトを使用可能にする例 次の文は、明示的に使用禁止にされていないすべてのマテリアライズド・ビューに対する現行セッションの問合せのリライトを使用可能にします。

ALTER SESSION SET QUERY_REWRITE_ENABLED = TRUE;

7-122 Oracle8i SQLリファレンス Vol.1

Page 435: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

ALTER SYSTEM

用途用途用途用途ALTER SYSTEM文を使用すると、Oracleインスタンスを動的に変更できます。この設定は、データベースがマウントされている限り有効です。

前提条件前提条件前提条件前提条件ALTER SYSTEMシステム権限が必要です。

archive_log_clauseを指定する場合には、OSDBAまたは OSOPERロールが必要です。

構文構文構文構文

ALTER SYSTEM

archive_log_clause

CHECKPOINT

GLOBAL

LOCAL

CHECK DATAFILES

GLOBAL

LOCAL

ENABLE

DISABLEDISTRIBUTED RECOVERY

ENABLE

DISABLERESTRICTED SESSION

FLUSH SHARED_POOL

end_session_clauses

SWITCH LOGFILE

SUSPEND

RESUME

SHUTDOWNIMMEDIATE

dispatcher_name

set_clause

;

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-123

Page 436: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

archive_log_clause::=

end_session_clauses::=

set_clause::=

キーワードとパラメータキーワードとパラメータキーワードとパラメータキーワードとパラメータ

archive_log_clausearchive_log_clauseは、REDOログ・ファイルを手動でアーカイブするか、または自動アーカイブを使用可能または使用禁止にします。この句を使用する場合、インスタンスでデータベースをマウントする必要があります。特に指定がない限り、データベースはオープンまたはクローズできます。

ARCHIVE LOGTHREAD integer

SEQUENCE integer

CHANGE integer

CURRENT

GROUP integer

LOGFILE ’ filename ’

NEXT

ALL

START

TO ’ location ’

STOP

DISCONNECT SESSION ’ integer1 , integer2 ’POST_TRANSACTION

KILL SESSION ’ integer1 , integer2 ’

IMMEDIATE

SET parameter_name = parameter_value

7-124 Oracle8i SQLリファレンス Vol.1

Page 437: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

注意注意注意注意 :

� SQL*Plus文 ARCHIVE LOGを使用すると、REDOログ・ファイル・グループを手動でアーカイブすることもできます。

� REDOログ・ファイル・グループの自動アーカイブもできます。自動アーカイブが使用可能かどうかにかかわらず、REDOログ・ファイルはいつでも手動でアーカイブできます。

参照参照参照参照 :

� 自動アーカイブの詳細は、『Oracle8i 管理者ガイド』を参照してください。

� ARCHIVE LOG文の詳細は、『Oracle8i SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。

THREAD integer

THREADを指定すると、アーカイブする REDOログ・ファイル・グループを含むスレッドを指定できます。

制限事項制限事項制限事項制限事項 : パラレル・モードの Parallel Serverで Oracleを使用している場合にのみ、このパラメータを設定します。

SEQUENCE integer

SEQUENCEを指定すると、指定したスレッド内のログ順序番号 integerによって識別されるオンライン REDOログ・ファイル・グループを手動でアーカイブできます。THREADパラメータを指定しなかった場合、自インスタンスに割り当てられているスレッドから、指定したグループがアーカイブされます。

CHANGE integer

CHANGEを指定すると、オンライン REDOログ・ファイル・グループを、手動でアーカイブできます。このグループには、指定したスレッド内の integerによって識別されるシステム変更番号(SCN)を持つREDOログ・エントリが含まれます。この SCNが現行の REDOログ・ファイル・グループ内にある場合、ログ・スイッチが実行されます。THREADパラメータを指定しない場合、使用可能な状態にあるすべてのスレッドから、この SCNを含むグループがアーカイブされます。

制限事項制限事項制限事項制限事項 : 自インスタンスでデータベースをオープンしている場合にのみ、この句を使用できます。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-125

Page 438: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

CURRENT CURRENTを指定すると、ログ・スイッチを強制的に発生させ、指定したスレッドの現行の REDOログ・ファイル・グループを手動でアーカイブできます。THREADパラメータを指定しない場合、すべての使用可能なスレッドから、現行のログ以前のログも含むすべての REDOログ・ファイル・グループがアーカイブされます。

制限事項制限事項制限事項制限事項 : 自インスタンスでデータベースをオープンしている場合にのみ、この句を使用できます。

注意注意注意注意 : CHANGEまたは CURRENT句を使用して、REDOログ・ファイル・グループのアーカイブを指定した場合、それ以前の REDOログ・ファイル・グループがアーカイブされていないと、指定したグループとアーカイブされていないグループがすべてアーカイブされます。

GROUP integer GROUPを指定すると、オンライン REDOログ・ファイル・グループを手動でアーカイブできます。このグループには、integerによって識別される GROUP値が含まれます。この REDOログ・ファイル・グループのGROUP値は、データ・ディクショナリ・ビュー DBA_LOG_FILESに問い合せて確認できます。THREADパラメータと GROUPパラメータの両方を指定する場合は、指定する REDOログ・ファイル・グループが、指定するスレッド内に含まれている必要があります。

LOGFILE 'filename'

LOGFILEを指定すると、オンライン REDOログ・ファイル・グループを手動でアーカイブできます。このグループには、'filename'によって識別される REDOログ・ファイル・メンバーが含まれます。THREADパラメータと LOGFILEパラメータの両方を指定する場合は、指定するREDOログ・ファイル・グループが、指定するスレッド内に含まれている必要があります。

制限事項制限事項制限事項制限事項 : REDOログ・ファイル・グループは、一杯になった順にアーカイブする必要があります。LOGFILEパラメータを使用して REDOログ・ファイル・グループのアーカイブを指定した場合、それ以前のREDOログ・ファイル・グループがアーカイブされていないとエラー・メッセージが戻ります。

NEXT NEXTを指定すると、一杯になってもアーカイブされていない次のオンライン REDOログ・ファイルを、指定したスレッドから手動でアーカイブできます。THREADパラメータを指定しない場合、使用可能な任意のスレッド上の、アーカイブされていない最初の REDOログ・ファイル・グループがアーカイブされます。

注意注意注意注意 :パラメータ SEQUENCE、CHANGE、CURRENT、GROUP、LOGFILEおよび NEXT

は、1つの REDOログ・ファイルまたはグループを暗黙的に参照します。ただし、強制システム変更番号(SCN)は維持されます。Oracleでは、アーカイブ時には、必ず強制SCN以下の SCNですべての REDOログ・ファイルをアーカイブします。そのため、これらのパラメータを指定すると、複数の REDOログ・ファイルまたはグループがアーカイブされる場合があります。

7-126 Oracle8i SQLリファレンス Vol.1

Page 439: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

CHECKPOINTCHECKPOINTを指定すると、チェックポイントを明示的に強制処理させ、コミット済のトランザクションによる変更をディスク上のデータ・ファイルに書き込みます。自インスタンスでデータベースがオープンしている場合にのみ、この句を指定できます。チェックポイントが完了するまで、ユーザーに制御は戻りません。

ALL ALLを指定すると、一杯になってもアーカイブされていないすべてのオンライン REDOログ・ファイルを、指定したスレッドから手動でアーカイブできます。THREADパラメータを指定しない場合、使用可能なすべてのスレッドから、一杯でアーカイブされていないすべての REDOログ・ファイル・グループがアーカイブされます。

START STARTを指定すると、REDOログ・ファイル・グループの自動アーカイブを使用可能にできます。

制限事項制限事項制限事項制限事項 :自インスタンスに割り当てられているスレッドについてのみ、自動アーカイブを使用可能にできます。

TO 'location' TO 'location'を指定すると、REDOログ・ファイル・グループがアーカイブされる位置を指定できます。このパラメータの値は、オペレーティング・システムの規則に従って、ファイルの位置を完全に指定する必要があります。このパラメータを指定しない場合、REDOログ・ファイル・グループは初期化パラメータ LOG_ARCHIVE_DESTまたはLOG_ARCHIVE_DEST_nに指定された場所に格納されます。

注意注意注意注意 :関連するアーカイブ・パラメータ LOG_ARCHIVE_DEST_DUPLEX

および LOG_ARCHIVE_MIN_SUCCEED_DESTを設定した場合、リカバリの信頼性が向上します。

STOP REDOログ・ファイル・グループの自動アーカイブを使用禁止にします。自インスタンスに割り当てられているスレッドについてのみ、自動アーカイブを使用禁止にできます。

GLOBAL Oracle Parallel Server環境では、データベースをオープンしているすべてのインスタンスに対してチェックポイントを実行します。これはデフォルト値です。

LOCAL Oracle Parallel Server環境では、自インスタンスの REDOログ・ファイル・グループのスレッドに対してのみチェックポイントを実行します。

参照参照参照参照 : チェックポイントの詳細は、『Oracle8i概要』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-127

Page 440: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

CHECK DATAFILESOracle Parallel Server環境などの分散データベース・システムでは、データベース・コントロール・ファイルからインスタンスの SGAを更新し、すべてのオンライン・データ・ファイルに情報を反映します。

インスタンスでデータベースをオープンしておく必要があります。

end_session_clauses

GLOBAL GLOBALを指定すると、データベースをオープンしているすべてのインスタンスに対して、この同期化を実行します。これはデフォルト値です。

LOCAL LOCALを指定すると、ローカル・インスタンスに対してのみこの同期化を実行します。

参照参照参照参照 : 『Oracle8i Parallel Serverセットアップおよび構成ガイド』を参照してください。

DISCONNECT SESSION

DISCONNECT SESSION句を使用すると、専用サーバー・プロセス(接続がマルチスレッド・サーバー経由の場合は、仮想回路)を破棄することによって、現行セッションを切断します。この句を使用する場合、インスタンスでデータベースをオープンする必要があります。次の両方の値を V$SESSIONビューで指定して、このセッションを識別する必要があります。

integer1 1つ目の整数は、SID列の値です。

integer2 2つ目の整数は、SERIAL#列の値です。

システム・パラメータを適切に設定した場合、アプリケーション・フェイルオーバーが有効になります。

参照参照参照参照 : アプリケーション・フェイルオーバーの詳細は、『Oracle8i Parallel Serverセットアップおよび構成ガイド』を参照してください。

POST_TRANSACTION

POST_TRANSACTIONを設定すると、セッションが切断される前に、実行中のトランザクションを完了します。セッションに実行中のトランザクションがない場合、この句は、後述の KILL SESSIONと同様に動作します。

7-128 Oracle8i SQLリファレンス Vol.1

Page 441: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

IMMEDIATE IMMEDIATEを設定すると、セッションを切断し、実行中のトランザクションの完了を待たずに、すぐにセッションのすべての状態をリカバリします。

� POST_TRANSACTIONを指定した場合、セッションに実行中のトランザクションがあれば、IMMEDIATEキーワードは無視されます。

� POST_TRANSACTIONを指定しない場合、またはPOST_TRANSACTIONを指定していてもセッションに実行中のトランザクションがない場合、この句は、後述の KILL SESSION IMMEDIATEと同様の効果があります。

KILL SESSION KILL SESSIONは、セッションを使用不能にし、実行中のトランザクションをロールバックして、すべてのセッション・ロックを解放し、セッション・リソースを一部リカバリします。この句を使用するには、インスタンスでデータベースをオープンしている必要があります。また、自セッションおよび中断されるセッションは、同じインスタンスにある必要があります。次の両方の値を V$SESSIONビューで指定して、このセッションを識別する必要があります。

integer1 1つ目の整数は、SID列の値です。

integer2 2つ目の整数は、SERIAL#列の値です。

リモート・データベースからの応答を待つ、トランザクションをロールバックするなどの、最後まで完了する必要があるアクティビティをセッションが実行している場合、このアクティビティが完了してからセッションが中断され、その後、ユーザーに制御が戻されます。待ち時間が1分以上続く場合は、中断されるセッションにマークが付けられ、マークが付けられたセッションが中断されることを示すメッセージとともにユーザーに制御が戻されます。アクティビティが完了すると、PMONバックグラウンド・プロセスは、セッションに中断されたことを示すマークを付けます。

セッションに実行中のトランザクションがあるかどうかにかかわらず、セッション・ユーザーがセッションに要求を発行してセッションが中断されたことを示すメッセージを受け取るまで、Oracleは、すべてのセッション状態をリカバリしません。

IMMEDIATE IMMEDIATEを指定すると、実行中のトランザクションをロールバックしてすべてのセッション・ロックを解放し、すべてのセッション状態をリカバリしてから、ユーザーに制御を戻します。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-129

Page 442: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

DISTRIBUTED RECOVERYDISTRIBUTED RECOVERY句によって、分散リカバリを使用可能まはた使用禁止にします。この句を使用する場合、インスタンスでデータベースをオープンする必要があります。

RESTRICTED SESSIONRESTRICTED SESSIONを指定すると、Oracleにログインできるユーザーを制限できます。

インスタンスでデータベースがマウントされていてもディスマウン卜されていても、またはオープン状態でもクローズ状態でも、この句を使用できます。

FLUSH SHARED_POOLFLUSH SHARED POOL句を指定すると、システム・グローバル領域(SGA)の共有プール上のすべてのデータが消去されます。共有プールは次のものを格納します。

� キャッシュされたデータ・ディクショナリ情報

� SQL文の共有 SQL領域、共有 PL/SQL領域、ストアド・プロシージャ、ファンクション、パッケージおよびトリガー

ENABLE ENABLEを指定すると、分散リカバリが使用可能になります。シングルプロセス環境では、分散リカバリを開始する場合にこの句を使用する必要があります。

トランザクションに関係があるリモート・ノードにアクセスできない場合、インダウト・トランザクションをリカバリするには、ENABLE DISTRIBUTED RECOVERY文を複数回発行する必要がある場合もあります。インダウト・トランザクションは、データ・ディクショナリ・ビュー DBA_2PC_PENDINGに表示されます。

参照参照参照参照 : 分散トランザクションと分散リカバリの詳細は、『Oracle8i分散システム』を参照してください。

DISABLE DISABLEを指定すると、分散リカバリが使用禁止になります。

ENABLE ENABLEを指定すると、RESTRICTED SESSIONシステム権限が付与されているユーザーのみが Oracleにログインできます。既存のセッションは終了しません。

DISABLE DISABLEを指定すると、ENABLE RESTRICTED SESSION句とは逆の動作をします。つまり、CREATE SESSIONシステム権限が付与されているすべてのユーザーが Oracleにログインできます。これはデフォルト値です。

7-130 Oracle8i SQLリファレンス Vol.1

Page 443: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

この文は、現在実行中の項目に対する共有 SQL領域および共有 PL/SQL領域を消去しません。インスタンスでデータベースがマウントされていてもディスマウン卜されていても、またはオープン状態でもクローズ状態でも、この句を使用できます。

SWITCH LOGFILESWITCH LOGFILE句を指定すると、現行の REDOログ・ファイル・グループのファイルが一杯であるかどうかにかかわらず、新しい REDOログ・ファイル・グループへの書込みを明示的に強制開始させます。ログ・スイッチを強制的に発生させると、Oracleによってチェックポイントが実行されます。制御は、チェックポイントの完了時ではなく、実行直後にユーザーに戻されます。この句を使用する場合、インスタンスでデータベースをオープンする必要があります。

SUSPEND | RESUME

SHUTDOWNSHUTDOWN句は、システムに Oracleのマルチスレッド・サーバー・アーキテクチャを使用している場合にのみ関連します。dispatcher_nameで識別されたディスパッチャを停止します。dispatcher_nameは、'Dxxx'という形式の文字列である必要があります。xxxはディスパッチャの数です(ディスパッチャ名のリストを取得するには、V$DISPATCHER動的パフォーマンス・ビューの NAME列を問い合せます)。

� IMMEDIATEを指定した場合、ディスパッチャは新しい接続の受入れをすぐに中止し、そのディスパッチャによる既存の接続はすべて終了されます。すべてのセッションがクリーン・アップされてから、ディスパッチャ・プロセスは停止します。

SUSPEND SUSPEND句を指定すると、すべての I/O(データ・ファイル、制御ファイルおよびファイル・ヘッダー)を停止し、すべてのインスタンスで実行中のトランザクションを処理せずにデータベースのコピーを作成可能にします。

制限事項制限事項制限事項制限事項 :

� ホット・バックアップ・モードでデータベースの表領域を確保するまで、この句は使用できません。

� システムが停止中に新しいインスタンスを起動する場合、この新しいインスタンスは停止しません。

RESUME RESUME句を指定すると、問合せおよび I/Oに対して、再度、データベースを使用可能にします。

参照参照参照参照 : SUSPENDおよび RESUME句の詳細は、『Oracle8iバックアップおよびリカバリ・ガイド』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-131

Page 444: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

� IMMEDIATEを指定しない場合、ディスパッチャは新しい接続の受入れをすぐに中止しますが、すべてのユーザーが切断し、すべてのデータベース・リンクが終了されるのを待ちます。その後、ディスパッチャは停止されます。

set_clauseset_clauseにはシステム・パラメータを設定します。同じ set_clauseで複数のパラメータに対する値を設定できます。

AQ_TM_PROCESSES = integer

AQ_TM_PROCESSESは、キュー・モニター・プロセスを作成するかどうかを指定するアドバンスト・キューイング・パラメータです。1(1つのキュー・モニター・プロセスを作成して、メッセージを監視する)または 0(既存のキュー・モニター・プロセスが、初期化パラメータを使用して作成されているか、他の ALTER SYSTEM文を使用して作成されているかにかかわらず、すべてのプロセスを停止する)を指定します。初期化パラメータ・ファイルでこのパラメータを使用すると、最大 10個のキュー・モニター・プロセスを作成できます。

BACKGROUND_DUMP_DEST = 'text'

BACKGROUND_DUMP_DESTパラメータは、Oracle操作中にバックグラウンド・プロセス用のデバッグ・トレース・ファイルが書き込まれるディレクトリのパス名を指定します。

参照参照参照参照 : ディスパッチャおよびマルチスレッド・サーバー・アーキテクチャの詳細は、『Oracle8i 管理者ガイド』、『Oracle8i Net8管理者ガイド』および『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

注意注意注意注意 : DEFERREDキーワードは、データベースに接続するその後のセッションに対して、パラメータの値を設定または変更します。

注意注意注意注意 : 特に指定がない限り、ここで説明するパラメータは初期化パラメータを示し、一般的な特徴のみを説明します。初期化パラメータの値を変更する前に、『Oracle8iリファレンス・マニュアル』および『Oracle8i NLSガイド』を参照してください。

7-132 Oracle8i SQLリファレンス Vol.1

Page 445: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

BACKUP_TAPE_IO_SLAVES = {TRUE | FALSE} DEFERRED

BACKUP_TAPE_IO_SLAVESパラメータは、I/Oスレーブを使用して、Recovery Managerをバックアップするか、コピーするか、またはデータをテープにリストアするかを指定します。

CONTROL_FILE_RECORD_KEEP_TIME = integer

CONTROL_FILE_RECORD_KEEP_TIMEパラメータは、制御ファイルの再使用可能なレコードが再使用できるようになるまでの日数の最小値を指定します。

CORE_DUMP_DEST = 'text'

CORE_DUMP_DESTパラメータは、コア・ファイルをダンプするディレクトリを指定します。

CREATE_STORED_OUTLINES = { true | false | 'category_name' } [nooverride]

CREATE_STORED_OUTLINESパラメータは、セッション中に発行された問合せごとに、自動的にアウトラインを作成および格納するかどうかを決定します。CREATE_STORED_OUTLINESは、初期化パラメータではありません。

� trueを設定した場合、システム内で後続の問合せに対するアウトラインは、自動的に作成可能になります。このアウトラインは、一意のシステム生成名を受け取り、DEFAULTカテゴリに格納されます。すでに特定の問合せに定義したアウトラインがDEFAULTカテゴリに存在する場合は、そのアウトラインが保持され、新しいアウトラインは作成されません。

� falseを設定した場合、システムのアウトラインは作成禁止になります。これはデフォルト値です。

� category_nameを設定した場合、trueと同じ動作をしますが、システム内に作成されたすべてのアウトラインは、category_nameカテゴリに格納されます。

� nooverrideを設定した場合、パラメータが明示的に設定されたすべてのセッションの設定はオーバーライドされません。nooverrideに設定しない場合、この設定は、すべてのセッションで有効になります。

CURSOR_SHARING = {force | exact}

CURSOR_SHARINGパラメータは、カーソルを共有できる SQL文の種類を決定します。

� exactは、同じ SQL文のみをカーソル共有させます。

� forceは、リテラルが異なる文(その他は同じ文)について、文の意味に影響しない場合に限り、カーソルを共有させます。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-133

Page 446: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

DB_BLOCK_CHECKING = {true | false} deferred

DB_BLOCK_CHECKINGパラメータは、データ・ブロック・チェックを終了するかどうかを制御します。デフォルト値は falseで、ブロック・チェックがデフォルトで使用禁止になっている以前のリリースとの互換性を維持しています。

DB_BLOCK_CHECKSUM = {true | false}

DB_BLOCK_CHECKSUMパラメータは、データベース・ライター・プロセスおよびダイレクト・ローダーがチェックサムを計算し、ディスクへ書き込むときに、すべてのデータ・ロックのキャッシュ・ヘッダーに計算結果を格納するかどうかを指定します。

DB_BLOCK_MAX_DIRTY_TARGET = integer

DB_BLOCK_MAX_DIRTY_TARGETパラメータは、キャッシュ内の使用済バッファの数をintegerに制限し、クラッシュまたはインスタンス・リカバリ中に読み込むバッファの数を削減します。このパラメータは、メディア・リカバリとは関係ありません。値 0は、このパラメータを使用禁止にします。このパラメータを使用可能にするために指定できる最小値は 1000です。

DB_FILE_DIRECT_IO_COUNT = integer deferred

DB_FILE_DIRECT_IO_COUNTパラメータは、バックアップ、リストアまたはダイレクト・パス読取り /書込み処理中に I/Oに使用するブロック数を決定します。

参照参照参照参照 : このパラメータの設定方法については、『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

注意注意注意注意 : 以前のリリースで増分チェックポイントを使用していたEnterprise Editionユーザーは、Oracle8iのファースト・スタート・チェックポイントを使用することをお薦めします。ファースト・スタート・チェックポイントでは、FAST_START_IO_TARGETパラメータがDB_FILE_MAX_DIRTY_TARGETのかわりになります。次のFAST_START_IO_TARGETを参照してください。

参照参照参照参照 :

� ファスト・スタート・チェックポイントの詳細は、『Oracle8iバックアップおよびリカバリ・ガイド』を参照してください。

� 新規のパラメータについては、『Oracle8iリファレンス・マニュアル』を参照してください。

7-134 Oracle8i SQLリファレンス Vol.1

Page 447: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

DB_FILE_MULTIBLOCK_READ_COUNT = integer

DB_FILE_MULTIBLOCK_READ_COUNTパラメータは、順次操作中に、1回の I/O操作で読み込まれるブロックの最大数を決定します。

FAST_START_IO_TARGET = integer

FAST_START_IO_TARGETは、クラッシュまたはインスタンス・リカバリ時に、Oracleが行う必要があるバッファ・キャッシュに対する I/O(読取りおよび書込み)のターゲット数を決定します。Oracleは、リカバリに必要な I/Oの実際の数を継続的に計算し、ターゲットと比較します。実際の数がターゲットより大きい場合、Oracleはチェックポイントを拡張するために追加の使用済バッファを書き込み、パフォーマンスへの影響を最小限にします。

FAST_START_PARALLEL_ROLLBACK = { false | low | high}

FAST_START_PARALLEL_ROLLBACKパラメータは、パラレル・リカバリを実行するためのプロセス数を決定します。

� falseを設定した場合、パラレル・リカバリは実行されません。SMONが、使用不能トランザクションをシリアルでリカバリします。

� lowを設定した場合、リカバリ・サーバーの数が CPU_COUNTパラメータの値の 2倍を超えないことを示します。

� highを設定した場合、リカバリ・サーバーの数が CPU_COUNTパラメータの値の 4倍を超えないことを示します。

FIXED_DATE = { 'DD_MM_YY' | 'YYYY_MI_DD_HH24_MI-SS' }

FIXED_DATEは、現在の日付ではなく、SYSDATEの日付定数を指定します。

GC_DEFER_TIME = integer

GC_DEFER_TIMEパラメータは、他のインスタンスからの強制書込み要求に応答する前にOracleが待機する時間を 100分の 1秒単位で指定します。

参照参照参照参照 : パラメータのチューニング方法については、『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-135

Page 448: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

GLOBAL_NAMES = {true | false}

インスタンスを起動した場合、初期化パラメータ GLOBAL_NAMESの値に基づいて、SQL文でアクセスされるリモート・オブジェクトに対する、グローバル・ネーム解決の適用の可否が Oracleによって決定されます。このシステム・パラメータによって、インスタンスの実行中にグローバル・ネーム解決を使用可能または使用禁止にします。trueに設定した場合、グローバル名の適用が使用可能になります。falseに設定した場合、グローバル名の適用が使用禁止になります。さらに、ALTER SESSION文の GLOBAL_NAMESパラメータを使用したセッションに対して、グローバル・ネーム解決を使用可能または使用禁止にできます。

分散処理を使用または計画している場合は、グローバル・ネーム解決を使用可能にしてください。

HASH_MULTIBLOCK_IO_COUNT = integer

HASH_MULTIBLOCK_IO_COUNTパラメータは、ハッシュ結合処理中に、Oracleが読取りおよび書込みを行うデータ・ブロック数を決定します。このパラメータの値に初期化パラメータ DB_BLOCK_SIZEの値を掛けた値が、64KB以下になるようにしてください。このパラメータのデフォルト値は 1です。マルチスレッド・サーバーを使用している場合、値は常に1になり、それ以外の値を指定しても無視されます。

HS_AUTOREGISTER = {true | false}

HS_AUTOREGISTERは、異機種間サービス・エージェントによって、Oracle Serverのデータ・ディクショナリに Oracle以外のシステム特性の自動自己登録を使用可能または使用禁止にします。

JOB_QUEUE_PROCESSES = integer

JOB_QUEUE_PROCESSESは、インスタンスごとにジョブ・キュー・プロセスの数を決定します(SNPn、nは 0~ 9の後に A~ Zを付けた値です)。スナップショットを自動的に更新する場合は、このパラメータを 1以上に設定します。同時に多数のスナップショットをリフレッシュする場合を除いて、通常は、ジョブ・キューは 1つで十分です。

Oracleでは、DBMS_JOBパッケージによって作成された要求を処理する場合もジョブ・キュー・プロセスを使用します。

参照参照参照参照 : グローバル・ネーム解決またはその適用方法の詳細は、2-88ページの「リモート・データベース内のオブジェクトの参照」および『Oracle8i分散システム』を参照してください。

参照参照参照参照 : 異機種間サービスを介して非 Oracleシステムへアクセスする場合の詳細は、『Oracle8i分散システム』を参照してください。

参照参照参照参照 : 表スナップショットの管理の詳細は、『Oracle8iレプリケーション・ガイド』を参照してください。

7-136 Oracle8i SQLリファレンス Vol.1

Page 449: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

LICENSE_MAX_SESSIONS = integer

LICENSE_MAX_SESSIONSパラメータは、初期化パラメータ LICENSE_MAX_SESSIONSの数を(現行のインスタンスに対して)リセットし、同時使用ライセンス制限(同時セッションの最大数)を設定します。この最大数に達した場合、RESTRICTED SESSIONシステム権限を持つユーザーしか接続できなくなります。値 0は、この制限を使用禁止にします。

現行のセッション数を下回る数に最大数を減らした場合でも、Oracleは、新しい最大数を適用するために既存のセッションを終了しません。ただし、RESTRICTED SESSIONシステム権限のないユーザーは、セッション数が新しい最大数を超えない場合にのみ、新しいセッションを開始できます。

LICENSE_MAX_USERS = integer

LICENSE_MAX_SESSIONSパラメータは、初期化パラメータ LICENSE_MAX_USERSの値を(現行のインスタンスに対して)リセットし、データベースへ接続するユーザーの最大数を設定します。この最大数に達した場合、これを超える数の接続はできません。値 0は、この制限を使用禁止にします。

制限事項制限事項制限事項制限事項 :ユーザー数の最大値はデータベースに登録されたユーザー数より小さくできません。

LICENSE_SESSIONS_WARNING = integer

LICENSE_SESSIONS_WARNINGパラメータは、初期化パラメータLICENSE_SESSIONS_WARNINGの値を(現行のインスタンスに対して)リセットし、同時使用に関する警告しきい値を設定します。このしきい値に達した場合、後続の各セッションの ALERTデータベース・ファイルに警告メッセージが書き込まれます。RESTICTED SESSIONシステム権限を持つユーザーも、後続セッションを開始する場合に、警告メッセージを受け取ります。値 0は、この警告しきい値を使用禁止にします。

セッションの警告しきい値を現行のセッション数より小さくした場合、後続のすべてのセッションのたびにメッセージが ALERTファイルに書き込まれます。

注意注意注意注意 : Oracleライセンスを適切にアップグレードしていない場合は、セッションの最大数を変更したり使用禁止にしないでください。詳細は、オラクル社カスタマ・サポート・センターに問い合せてください。

注意注意注意注意 : Oracleライセンスを適切にアップグレードしていない場合には、ユーザーの最大数を変更も使用禁止にもしないでください。詳細は、オラクル社カスタマ・サポート・センターに問い合せてください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-137

Page 450: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

LOG_ARCHIVE_DEST = string

LOG_ARCHIVE_DESTパラメータは、有効なオペレーティング・システムのパス名をすべてのアーカイブ REDOログ・ファイル・グループの主な宛先に指定します。

制限事項制限事項制限事項制限事項 :このパラメータの値を設定するには、次の制限があります。

� 初期化パラメータ・ファイルの LOG_ARCHIVE_DEST_nの値は設定できません。また、ALTER SESSIONまたは ALTER SYSTEM文を使用して、このパラメータの値は設定できません。

� ALTER SESSION文を使用して、LOG_ARCHIVE_MIN_SUCCEED_DESTパラメータの値を設定することはできません。

LOG_ARCHIVE_DEST_n

LOG_ARCHIVE_DEST_n = {null_string | {LOCATION=local_pathname | SERVICE=tnsnames_service}

[MANDATORY | OPTIONAL] [REOPEN[=integer]]}

LOG_ARCHIVE_DEST_nパラメータは、有効なオペレーティング・システムのパス名またはOracleサービス名(関連するその他のオプションを含む)を、最大 5つまでアーカイブREDOログ・ファイル・グループに対する宛先として指定します(nは、1~ 5までの整数)。オプションについては、『Oracle8iリファレンス・マニュアル』を参照してください。

制限事項制限事項制限事項制限事項 :このパラメータの値を設定するには、次の制限があります。

� 初期化パラメータ・ファイルの LOG_ARCHIVE_DESTまたはLOG_ARCHIVE_DUPLEX_DESTのパラメータを定義することはできません。また、ALTER SYSTEM文を使用して、これらのパラメータの値を設定することはできません。

� ALTER SYSTEM ARCHIVE LOG TO location文を使用して、固有の場所にアーカイブを開始することはできません。

LOG_ARCHIVE_DEST_STATE_n = {enable | defer}

LOG_ARCHIVE_DEST_STATE_nパラメータは、対応する LOG_ARCHIVE_DEST_nパラメータに関連する状態を指定できます。

� enableを設定した場合、対応するすべての有効な宛先がアーカイブに使用されます。これはデフォルト値です。

参照参照参照参照 : 文字列を指定する詳細については、『Oracle8iリファレンス・マニュアル』の LOG_ARCHIVE_DESTパラメータを参照してください。

参照参照参照参照 : パス名を指定する詳細については、『Oracle8iリファレンス・マニュアル』の LOG_ARCHIVE_DEST_nパラメータを参照してください。

7-138 Oracle8i SQLリファレンス Vol.1

Page 451: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

� deferを設定した場合、Oracleは、対応する LOG_ARCHIVE_DEST_nパラメータに関連付けられているすべての宛先をアーカイブで使用できるとはみなしません。

LOG_ARCHIVE_DUPLEX_DEST = string

LOG_ARCHIVE_DUPLEX_DESTパラメータは、有効なオペレーティング・システムのパス名をすべてのアーカイブ REDOログ・ファイル・グループの 2次の宛先に指定します。

制限事項制限事項制限事項制限事項 :このパラメータの値を設定するには、次の制限があります。

� LOG_ARCHIVE_DESTを定義しておく必要があります。

� 初期化パラメータ・ファイルの LOG_ARCHIVE_DEST_nの値を設定することはできません。また、ALTER SYSTEMまたは ALTER SESSION文を使用して、このパラメータの値を設定することはできません。

� ALTER SESSION文を使用して、LOG_ARCHIVE_MIN_SUCCEED_DESTパラメータの値を設定することはできません。

LOG_ARCHIVE_MAX_PROCESSES = integer

LOG_ARCHIVE_MAX_PROCESSESは、起動するアーカイバ・プロセスの数を指定します。指定できる数は 1~ 10の整数です。デフォルト値は 1です。

LOG_ARCHIVE_MIN_SUCCEED_DEST = integer

LOG_ARCHIVE_MIN_SUCCEED_DESTパラメータは、オンライン・ログ・ファイルを再使用するために成功する必要がある宛先の最小数を指定します。

LOG_ARCHIVE_TRACE = integer

LOG_ARCHIVE_TRACEパラメータは、アーカイブログ・プロセスによって生成される出力情報のタイプを制御します。

LOG_CHECKPOINT_INTERVAL = integer

LOG_CHECKPOINT_INTERVALを指定すると、増分チェックポイントと REDOログに書き込まれた最後のブロックとの間に存在できる、REDOブロックの数を integerに指定した数に制限します。

参照参照参照参照 :

� このパラメータの詳細は、『Oracle8iバックアップおよびリカバリ・ガイド』を参照してください。

� 有効な値のリストは、『Oracle8iリファレンス・マニュアル』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-139

Page 452: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

LOG_CHECKPOINT_TIMEOUT = integer

LOG_CHECKPOINT_TIMEOUTパラメータは、REDOログへの最後の書込みが integer秒前に存在した場所に、増分チェックポイントが存在するように制限します。また、このパラメータは、すべてのバッファが integer秒より長い間、使用済のままにならないことを指定します。デフォルト値は 1800秒です。

MAX_DUMP_FILE_SIZE = { size | 'unlimited'} [deferred]

MAX_DUMP_FILE_SIZEは、すべてのユーザー・セッションについて、トレース・ダンプ・ファイルのサイズの上限を指定します。最大 sizeには、ブロック数を表す負以外の整数、または 'unlimited'を指定します。'unlimited'を指定した場合、上限は設定されません。

マルチスレッド・サーバー・パラメータマルチスレッド・サーバー・パラメータマルチスレッド・サーバー・パラメータマルチスレッド・サーバー・パラメータインスタンスを起動した場合、Oracleは、初期化パラメータ MTS_SERVERSおよびMTS_DISPATCHERSの値に基づくマルチスレッド・サーバー・アーキテクチャに対して共有サーバー・プロセスおよびディスパッチャ・プロセスを作成します。セッション・パラメータ MTS_SERVERSおよび MTS_DISPATCHERSを設定して、インスタンスの実行中に、次の操作を実行します。

� 共有サーバー・プロセスの最小値を増やして、追加の共有サーバー・プロセスを作成します。

� 現行のコールが処理を終了した後、既存の共有サーバー・プロセスを終了します。

� 特定のプロトコルに対するディスパッチャ・プロセスを、初期化パラメータMTS_MAX_DISPATCHERSに指定されているすべてのプロトコルの最大数まで追加できます。

� カレント・ユーザー・プロセスがインスタンスから切断した後、特定のプロトコルに対する既存のディスパッチャ・プロセスを終了します。

参照参照参照参照 : 詳細は、次のマニュアルを参照してください。

� 『Oracle8i概要』

� 『Oracle8iパフォーマンスのための設計およびチューニング』

� 『Oracle8i Parallel Server概要』

7-140 Oracle8i SQLリファレンス Vol.1

Page 453: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

MTS_DISPATCHERS = 'dispatch_clause'

dispatch_clause::=

(PROTOCOL = protocol) |( ADDRESS = address) | (DESCRIPTION = description )[options_clause]

options_clause::=

(DISPATCHERS = integer | SESSIONS = integer | CONNECTIONS = integer | TICKS = seconds | POOL = { 1 | on | yes | true | both | ({in|out} = ticks) | 0 | off | no | false | ticks} | MULTIPLEX = {1 | on | yes | true | 0 | off | no | false | both | in | out} | LISTENER = tnsname | SERVICE = service | INDEX = integer)

MTS_DISPATCHERSパラメータは、ディスパッチャ・プロセスの構成を変更または作成します。パラメータの説明は、『Oracle8iリファレンス・マニュアル』を参照してください。

なお、複数のネットワーク・プロトコルに対して、単一の文で複数の MTS_DISPATCHERSパラメータを指定できます。

MTS_SERVERS = integer

MTS_SERVERSパラメータは、共有サーバー・プロセスの新しい最小数を指定します。

OBJECT_CACHE_MAX_SIZE_PERCENT = integer deferred

OBJECT_CACHE_MAX_SIZE_PERCENTパラメータは、セッション・オブジェクト・キャッシュが、最適なサイズを超えることができる割合を指定します。

OBJECT_CACHE_OPTIMAL_SIZE = integer deferred

OBJECT_CACHE_OPTIMAL_SIZEパラメータは、セッション・オブジェクト・キャッシュが最大サイズを超えた場合に、このキャッシュを縮小するサイズを KB単位で指定します。

参照参照参照参照 : このパラメータの詳細は、『Oracle8i 管理者ガイド』および『Oracle8i Net8管理者ガイド』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-141

Page 454: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

OPTIMIZER_MAX_PERMUTATIONS = integer nooverride

OPTIMIZER_MAX_PERMUTATIONSパラメータは、オプティマイザが大きい結合で問合せを最適化する際に使用する機能を制限可能にします。integerの値は、オプティマイザが大きい結合で考慮する表の順列数です。

nooverrideに設定した場合、パラメータが明示的に設定されたすべてのセッションの設定はオーバーライドされません。

PARALLEL_ADAPTIVE_MULTI_USER = {true | false}

PARALLEL_ADAPTIVE_MULTI_USERパラメータは、システム上の感知ロードの合計に基づいて並列度が変更されるように指定します。

PARALLEL_INSTANCE_GROUP = 'text'

PARALLEL_INSTANCE_GROUPパラメータは、Oracle Parallel Serverインスタンス・グループの名前が、パラレル問合せスレーブを発生させるために使用されるように指定します。

PARALLEL_THREADS_PER_CPU = integer

PARALLEL_THREADS_PER_CPUパラメータは、並列度が設定されていないパラレル操作の並列度を計算します。デフォルト値はオペレーティング・システムによって異なります。

PLSQL_V2_COMPATIBILITY = {true | false} [deferred]

PLSQL_V2_COMPATIBILITYパラメータは、コンパイル時の PL/SQLプログラムの動作を変更して、Oracle7(PL/SQL V2)の言語構造では有効で、Oracle8および Oracle8i(PL/SQL V3)では無効な言語構造を使用可能にします。

� trueを設定した場合は、Oracle8i PL/SQL V3のプログラムが、Oracle7 PL/SQL V2の構造体を実行できるようにします。

� falseを設定した場合は、Oracle7 PL/SQL V2では無効な構造体を使用禁止にします。これはデフォルト値です。

参照参照参照参照 : このシステム・パラメータの詳細は、『Oracle8i PL/SQLユーザーズ・ガイドおよびリファレンス』および『Oracle8iリファレンス・マニュアル』を参照してください。

7-142 Oracle8i SQLリファレンス Vol.1

Page 455: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

QUERY_REWRITE_ENABLED = { true | false } [deferred | nooverride]

QUERY_REWRITE_ENABLEDパラメータは、明示的に使用禁止にされていないすべてのマテリアライズド・ビューに対して、問合せのリライトを使用可能または使用禁止にします。デフォルト値は trueで、すべてのセッションに対して問合せのリライトをすぐに使用可能にします。問合せのリライトは、ルールベースの最適化によって停止および使用禁止にされます(OPTIMIZER_MODEパラメータを ruleに設定した場合)。また、マテリアライズド・ビューに定義したファンクション索引を使用可能または使用禁止にします。

� deferredを設定した場合、問合せのリライトは後続のセッションに対してのみ使用可能または使用禁止になります。

� nooverrideを設定した場合、ALTER SESSIONを使用してこのパラメータを明示的に設定していないすべてのセッションに対して、使用可能または使用禁止になります。

� 問合せのリライトを使用可能または使用禁止にした場合、問合せのリライトが再発行された場合でも、コンパイル済の問合せに影響しません。

� 問合せのリライトを使用可能または使用禁止にしても、降順の索引には影響しません。

� trueを設定しても、すべてまたは一部をビューから作成されるマテリアライズド・ビューなど、ENABLE QUERY REWRITE句で作成されないマテリアライズド・ビューには影響しません。

QUERY_REWRITE_INTEGRITY

QUERY_REWRITE_INTEGRITY = { enforced | trusted | stale_tolerated }

QUERY_REWRITE_INTEGRITYパラメータは、インスタンスの存続期間中、問合せのリライトの一貫性レベルを最小値に設定します。次の値を使用できます。

� enforcedは、最も安全なレベルです。システムに適用された関係のみを使用し、データの整合性および正確性を保証します。このレベルでは、問合せのリライトは、ファンクション索引またはユーザー定義ファンクションなどのマテリアライズド・ビューを使用しません。

さらに、問合せのリライトは、ディメンション情報または RELYキーワードで使用可能にされた制約を使用しません。

� trustedを設定した場合、ON PREBUILT TABLE句で作成されたマテリアライズド・ビューがサポートされ、信頼できますが、適用されていない結合関係を受け入れます。問合せのリライトを使用すると、ディメンションからの結合情報を使用し、適用されていない制約を RELYキーワードで使用可能にします。

参照参照参照参照 : 問合せのリライトの詳細は、『Oracle8iデータ・ウェアハウス』を参照してください。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-143

Page 456: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

� stale_toleratedを設定した場合、使用可能なすべてのマテリアライズド・ビューを使用できます。

このパラメータは、降順の索引には影響しません。

REMOTE_DEPENDENCIES_MODE = {timestamp | signature}

REMOTE_DEPENDENCIES_MODEパラメータは、リモートのストアド・プロシージャの依存性が、サーバーによってどのように扱われるかを指定します。

RESOURCE_LIMIT = {true | false}

インスタンスを起動した場合、初期化パラメータ RESOURCE_LIMITの値に基づいてユーザーにこのリソース制限が強制的に割り当てられます。このシステム・パラメータによって、後続のセッションに対するリソース制限を使用可能または使用禁止にします。trueを設定した場合、リソース制限を使用可能にし、falseを設定した場合、リソース制限を使用禁止にします。

リソース制限を使用可能にした場合、ユーザーに、このリソース制限が強制的に割り当てられます。リソース制限の値を選択する場合、プロファイルを作成してから、ユーザーにこのプロファイルを割り当てる必要があります。

RESOURCE_MANAGER_PLAN = plan_name

RESOURCE_MANAGER_PLANパラメータは、リソース・コンシューマ・グループにシステム・リソースを割り当てるための、リソース・プランの名前を指定します。

参照参照参照参照 :

� 問合せのリライトの整合性レベルの詳細は、『Oracle8iデータ・ウェアハウス』を参照してください。

� ディメンションの詳細は、9-34ページの「CREATE DIMENSION」を参照してください。

� RELYキーワードで使用可能にされた制約の詳細は、8-134ページの「constraint_clause」を参照してください。

参照参照参照参照 : 『Oracle8iアプリケーション開発者ガイド 基礎編』を参照してください。

参照参照参照参照 : 詳細は、9-134ページの「CREATE PROFILE」および 10-99ページの「CREATE USER」を参照してください。

参照参照参照参照 : リソース・コンシューマ・グループおよびリソース・プランの詳細は、『Oracle8i 管理者ガイド』を参照してください。

7-144 Oracle8i SQLリファレンス Vol.1

Page 457: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

SORT_AREA_RETAINED_SIZE = integer deferred

SORT_AREA_RETAINED_SIZEパラメータは、最初のフェッチが完了してからカーソルが終了するまでに、各ソート操作が保持する最大メモリー量をバイト単位で指定します。このパラメータを、初期化パラメータ・ファイルで明示的に設定しない場合、または動的に設定しない場合、SORT_AREA_SIZEパラメータ値が使用されます。

SORT_AREA_SIZE = integer deferred

SORT_AREA_SIZEパラメータは、各ソート操作に使用する最大メモリー量をバイト単位で指定します。デフォルト値はオペレーティング・システムによって異なります。

SORT_MULTIBLOCK_READ_COUNT = integer deferred

SORT_MULTIBLOCK_READ_COUNTパラメータは、ソートが一時セグメントから読取りを行うたびに読み込むデータベース・ブロック数を指定します。デフォルト値は 2です。

STANDBY_ARCHIVE_DEST = string

STANDBY_ARCHIVE_DESTパラメータは、有効なオペレーティング・システムのパス名をアーカイブ REDOログ・ファイルのスタンバイ・データベースの宛先に指定します。

TIMED_STATISTICS = {true | false}

TIMED_STATISTICSパラメータは、時間関連の統計を生成する場合に、サーバーが、オペレーティング・システムから時間を要求するかどうかを指定します。デフォルト値は falseです。

TIMED_OS_STATISTICS = integer

TIMED_OS_STATISTICSは、クライアントからサーバーへ要求した場合、または要求が終了した場合に、オペレーティング・システムの統計を収集するように指定します。

TRANSACTION_AUDITING = {true | false} deferred

TRANSACTION_AUDITINGパラメータは、トランザクション・レイヤーが、セッション情報およびユーザー情報を含む特別な REDOレコードを作成するかどうかを指定します。

USE_STORED_OUTLINES = { true | false | 'category_name' } [nooverride]USE_STORED_OUTLINESパラメータは、オプティマイザが、ストアド・アウトラインを使用して実行計画を生成するかどうかを決定します。USE_STORED_OUTLINESは、初期化パラメータではありません。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-145

Page 458: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

� trueを設定した場合、要求をコンパイルするときに、オプティマイザが DEFAULTカテゴリに格納されたアウトラインを使用します。

� falseを設定した場合、オプティマイザはストアド・アウトラインを使用しません。これはデフォルト値です。

� category_nameを設定した場合、要求をコンパイルする場合に、オプティマイザがcategory_nameカテゴリに格納されたアウトラインを使用します。

� nooverrideを設定した場合、パラメータが明示的に設定されたすべてのセッションの設定はオーバーライドされません。nooverrideを設定しない場合、この設定は、すべてのセッションで有効になります。

USER_DUMP_DEST = 'directory_name'

USER_DUMP_DESTパラメータは、ユーザー・プロセスのかわりに、Oracleがデバッグ・トレース・ファイルを書き込むパス名を指定します。

例例例例

REDOログの手動アーカイブの例ログの手動アーカイブの例ログの手動アーカイブの例ログの手動アーカイブの例 次の文は、スレッド番号 3、ログ順序番号 4の REDOログ・ファイル・グループを手動でアーカイブします。

ALTER SYSTEM ARCHIVE LOG THREAD 3 SEQUENCE 4;

次の文は、SCN 9356083の REDOログ・エントリを含む REDOログ・ファイル・グループを手動でアーカイブします。

ALTER SYSTEM ARCHIVE LOG CHANGE 9356083;

次の文は、メンバー 'diskl:log6.log'を含む REDOログ・ファイル・グループを、'diska:[arch$]'という場所にあるアーカイブ REDOログ・ファイルにアーカイブします。

ALTER SYSTEM ARCHIVE LOG LOGFILE 'diskl:log6.log' TO 'diska:[arch$]';

注意注意注意注意 : 実行計画にマテリアライズド・ビューを含める場合は、マテリアライズド・ビューをアウトラインに指定する必要があります。問合せのリライトが使用可能であっても、アウトラインがマテリアライズド・ビューを使用しない場合、そのアウトラインを使用する問合せは、マテリアライズド・ビューを使用しません。

7-146 Oracle8i SQLリファレンス Vol.1

Page 459: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

問合せのリライトを使用可能にする例問合せのリライトを使用可能にする例問合せのリライトを使用可能にする例問合せのリライトを使用可能にする例 次の文は、明示的に使用禁止にされていないすべてのマテリアライズド・ビューに対するすべてのセッションにおける問合せのリライトを使用可能にします。

ALTER SYSTEM SET QUERY_REWRITE_ENABLED = TRUE;

セッションへのログインを制限する例セッションへのログインを制限する例セッションへのログインを制限する例セッションへのログインを制限する例 たとえば、アプリケーションのメンテナンス中は、RESTRICTED SESSIONシステム権限が付与されているアプリケーション開発者のみがログインできるように制限できます。このためには、次の文を発行します。

ALTER SYSTEM ENABLE RESTRICTED SESSION;

次に、ALTER SYSTEM文の KILL SESSION句を使用すると、既存のセッションをどれでも終了できます。

アプリケーションのメンテナンスが終了した後で、次の文を発行することによって、CREATE SESSIONシステム権限が付与されているユーザーもログインできるようになります。

ALTER SYSTEM DISABLE RESTRICTED SESSION;

共有プールの消去例共有プールの消去例共有プールの消去例共有プールの消去例 共有プールを消去してから、パフォーマンス分析を開始します。共有プールを消去する場合、次の文を発行します。

ALTER SYSTEM FLUSH SHARED_POOL;

チェックポイントの発生例チェックポイントの発生例チェックポイントの発生例チェックポイントの発生例 次の文は、チェックポイントを強制的に発生させます。

ALTER SYSTEM CHECKPOINT;

リソース制限を使用可能にする例リソース制限を使用可能にする例リソース制限を使用可能にする例リソース制限を使用可能にする例 次の ALTER SYSTEM文は、リソース制限を動的に使用可能にします。

ALTER SYSTEM SET RESOURCE_LIMIT = TRUE;

マルチスレッド・サーバーの例マルチスレッド・サーバーの例マルチスレッド・サーバーの例マルチスレッド・サーバーの例 次の文は、共有サーバー・プロセスの最小数を 25に変更します。

ALTER SYSTEM SET MTS_SERVERS = 25;

共有サーバー・プロセスの数が 25より少ない場合は追加作成されます。共有サーバー・プロセスが 25より多く、25あれば負荷を管理できる場合は、現行のコールによる処理が終了した時点で、25を超える分の共有サーバー・プロセスは終了します。

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-147

Page 460: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

次の文は、TCP/IPプロトコルのディスパッチャ・プロセス数を 5に、DECNetプロトコルのディスパッチャ・プロセス数を 10に動的に変更します。

ALTER SYSTEM SET MTS_DISPATCHERS = '(INDEX=0)(PROTOCOL=TCP)(DISPATCHERS=5)', '(INDEX=1)(PROTOCOL=DECNet)(DISPATCHERS=10)';

TCPのディスパッチャ・プロセスの数が 5より少ない場合、ディスパッチャ・プロセスが新しく作成されます。5より多い場合は、接続されているユーザーが接続を切断した後に、5を超える分のディスパッチャ・プロセスは終了します。

DECNetのディスパッチャ・プロセスの数が 10より少ない場合は、ディスパッチャ・プロセスが新しく作成されます。10より多い場合は、接続されているユーザーが接続を切断した後に、ディスパッチャ・プロセスは終了します。

これ以外のプロトコル用として既存ディスパッチャがある場合、この文は、そのディスパッチャの数に影響しません。

ライセンス・パラメータの変更例ライセンス・パラメータの変更例ライセンス・パラメータの変更例ライセンス・パラメータの変更例 次の文は、自インスタンスにおけるセッションの最大数を 64に、セッションの警告しきい値を 54に動的に変更します。

ALTER SYSTEM SET LICENSE_MAX_SESSIONS = 64 LICENSE_SESSIONS_WARNING = 54;

セッション数が 54に達した場合、後続の各セッションの ALERTファイルに警告メッセージが書き込まれます。RESTICTED SESSIONシステム権限を持つユーザーも、後続セッションを開始する場合に、警告メッセージを受け取ります。

セッション数が 64に達した場合、セッション数が再び 64を下回るまでは、RESTRICTED SESSIONシステム権限を持つユーザーしか新しいセッションを開始できません。

次の文は、自インスタンスのセッションの最大数を動的に使用禁止にします。この文の実行後は、インスタンスのセッション数に制限がなくなります。

ALTER SYSTEM SET LICENSE_MAX_SESSIONS = 0;

次の文は、データベースのユーザー数の制限を 200に動的に変更します。この文の実行後は、データベース・ユーザー数が 200を超えることはありません。

ALTER SYSTEM SET LICENSE_MAX_USERS = 200;

7-148 Oracle8i SQLリファレンス Vol.1

Page 461: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

ログ・スイッチの発生例ログ・スイッチの発生例ログ・スイッチの発生例ログ・スイッチの発生例 書込み中のファイルの削除および改名はできません。ただし、ログ・スイッチを強制的に発生させることによって、現行の REDOログ・ファイル・グループまたはそのメンバーの 1つは削除または改名できます。強制的に発生したログ・スイッチは、自インスタンスの REDOログ・スレッドのみに影響します。次の文は、ログ・スイッチを強制的に発生させます。

ALTER SYSTEM SWITCH LOGFILE;

分散リカバリを使用可能にする例分散リカバリを使用可能にする例分散リカバリを使用可能にする例分散リカバリを使用可能にする例 次の文は、分散リカバリを使用可能にします。

ALTER SYSTEM ENABLE DISTRIBUTED RECOVERY;

デモンストレーションまたはテストの目的で、分散リカバリを使用禁止にする場合があります。次の文を使用すると、シングルプロセス・モードまたはマルチプロセス・モードのどちらの分散リカバリでも使用禁止にできます。

ALTER SYSTEM DISABLE DISTRIBUTED RECOVERY;

デモンストレーションまたはテストが終了した場合、ALTER SYSTEM文に ENABLE DISTRIBUTED RECOVERY句を指定して実行すれば、分散リカバリを再び使用可能にできます。

セッションの中断例セッションの中断例セッションの中断例セッションの中断例 あるユーザーのセッションで、他のユーザーが必要とするリソースを使用している場合、そのユーザーのセッションを中断させる必要があります。このユーザーは、セッションが中断したことを示すエラー・メッセージを受け取ります。このユーザーは、新しいセッションを開始しない限り、このデータベースをコールできません。次のV$SESSION動的パフォーマンス表のデータについて考えます。

SELECT sid, serial#, usernameFROM v$session

SID SERIAL# USERNAME----- --------- ---------------- 1 1 2 1 3 1 4 1 5 1 7 1 8 28 OPS$BQUIGLEY 10 211 OPS$SWIFT 11 39 OPS$OBRIEN 12 13 SYSTEM 13 8 SCOTT

SQL文 : ALTER CLUSTER~ ALTER SYSTEM 7-149

Page 462: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER SYSTEM

次の例では、V$SESSIONの SID値と SERIAL#値を使用して、ユーザー scottのセッションを中断します。

ALTER SYSTEM KILL SESSION '13, 8';

セッションの切断例セッションの切断例セッションの切断例セッションの切断例 次の文は、V$SESSIONの SIDと SERIAL#の値を使用して、ユーザー scottのセッションを切断します。

ALTER SYSTEM DISCONNECT SESSION '13, 8' POST_TRANSACTION;

参照参照参照参照 : アプリケーション・フェイルオーバーの詳細は、『Oracle8i Parallel Server概要』および『Oracle8iパフォーマンスのための設計およびチューニング』を参照してください。

7-150 Oracle8i SQLリファレンス Vol.1

Page 463: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

索引索引索引索引

記号記号記号記号$数値書式要素,2-42%(パーセント)LIKE演算子で使用,3-7+(演算子),3-16,(カンマ)数値書式要素,2-42日付書式要素,2-47

:(コロン)日付書式要素,2-47;(セミコロン)日付書式要素,2-47–(ダッシュ)日付書式要素,2-47/(スラッシュ)日付書式要素,2-47.(ピリオド)数値書式要素,2-42日付書式要素,2-47

数字数字数字数字0数値書式要素,2-4216進数値戻す,2-44

20世紀,2-48,2-50指定,2-50

21世紀,2-48,2-50指定,2-50

8数値書式要素,2-429数値書式要素,2-42

AABS関数,4-14ACOS関数,4-15ACTIVATE STANDBY DATABASE句

ALTER DATABASE,7-25AD(A.D.)日付書式要素,2-47,2-49

ADD LOGFILE GROUP句ALTER DATABASE,7-20

ADD LOGFILE MEMBER句ALTER DATABASE,7-11,7-21

ADD LOGFILE THREAD句ALTER DATABASE,7-20

ADD LOGFILE句ALTER DATABASE,7-11

ADD PRIMARY KEY句ALTER MATERIALIZED VIEW LOG,7-77

ADD ROWID句ALTER MATERIALIZED VIEW LOG,7-77

ADD_MONTHS関数,4-15ADD ROWID句

ALTER MATERIALIZED VIEW,7-77ADD句

ALTER DIMENSION,7-35ADVISE句

ALTER SESSION,7-102ALL_ROWSヒント,2-66ALLOCATE EXTENT句

ALTER CLUSTER,7-4ALTER INDEX,7-40,7-44

ALL演算子,3-6ALTER CLUSTER文,7-3ALTER DATABASE文,7-7

ALTER DIMENSION文,7-33ALTER FUNCTION文,7-36ALTER INDEX文,7-38ALTER JAVA CLASS文,7-56ALTER JAVA SOURCE文,7-56ALTER MATERIALIZED VIEW LOG文,7-73ALTER MATERIALIZED VIEW文,7-59ALTER OUTLINE文,7-79

索引索引索引索引 -1

Page 464: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ALTER PACKAGE文,7-81ALTER PROCEDURE文,7-84ALTER PROFILE文,7-87

ALTER RESOURCE COST文,7-91

ALTER ROLE文,7-94ALTER ROLLBACK SEGMENT文,7-96

ALTER SEQUENCE文,7-99ALTER SESSION文,7-101

ALTER SNAPSHOT「ALTER MATERIALIZED VIEW」を参照

ALTER SNAPSHOT LOG「ALTER MATERIALIZED VIEW LOG」を参照

ALTER SYSTEM文,7-123

AM(A.M.)日付書式要素,2-47,2-49AND_EQUALヒント,2-67AND演算子,3-11,3-12ANSI規格,ix,1-2サポートしているデータ型,2-4データ型,2-20

Oracleデータ型への変換,2-20ANY演算子,3-6APPENDヒント,2-71AQ_TM_PROCESSESパラメータ

ALTER SYSTEM,7-132ARCHIVE LOG句

ALTER SYSTEM,7-124ARCHIVELOG句

ALTER DATABASE,7-11,7-20ASCIIキャラクタ・セット,2-27

ASCII関数,4-16ASIN関数,4-16ATAN2関数,4-17ATAN関数,4-17ATTRIBUTE句

ALTER DIMENSION,7-34AUTHID CURRENT_USER句

ALTER JAVA,7-57AUTHID DEFINER句

ALTER JAVA,7-57

AUTOEXTEND句ALTER DATABASE,7-11データ・ファイル,7-19

AVG関数,4-18AY日付書式要素,2-47

BBACKGROUND_DUMP_DESTパラメータ

ALTER SYSTEM,7-132BACKUP CONTROLFILE句

ALTER DATABASE,7-12,7-23BACKUP_TAPE_IO_SLAVESパラメータ

ALTER SYSTEM,7-133BC(B.C.)日付書式要素,2-47,2-49BFILEデータ型,2-17ロケータ,2-17

BFILENAME関数,4-19BITAND関数,4-20BLOBデータ型,2-18トランザクションのサポート,2-18

BODY句ALTER PACKAGE,7-82

CCACHE句

ALTER MATERIALIZED VIEW,7-65ALTER MATERIALIZED VIEW LOG,7-77ALTER SEQUENCE「CREATE SEQUENCE」を参照,7-99

CACHEヒント,2-75CASE式,5-14CAST式,5-9CC日付書式要素,2-47CEIL関数,4-21CHANGE CATEGORY句

ALTER OUTLINE,7-79CHAR VARYINGデータ型、ANSI,2-21CHARACTER SETパラメータ

ALTER DATABASE,7-28CHARACTER VARYINGデータ型

ANSI,2-21CHARACTERデータ型

ANSI,2-21DB2,2-22

索引索引索引索引 -2

Page 465: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

SQL/DS,2-22CHARTOROWID関数,2-30,4-21CHARデータ型,2-7

ANSI,2-21VARCHAR2への変換,2-41

CHECK DATAFILES句ALTER SYSTEM,7-128

CHECKPOINT句ALTER SYSTEM,7-127

CHOOSEヒント,2-66CHR関数,4-22CLEAR LOGFILE句

ALTER DATABASE,7-11,7-22CLOBデータ型,2-18トランザクションのサポート,2-18

CLOSE DATABASE LINK句ALTER SESSION,7-102

CLUSTERヒント,2-67COALESCE句

ALTER INDEX,7-51COMMIT IN PROCEDURE句

ALTER SESSION,7-102COMPILE句

ALTER DIMENSION,7-35ALTER FUNCTION,7-37ALTER JAVA SOURCE,7-57ALTER MATERIALIZED VIEW,7-70ALTER PACKAGE,7-82ALTER PROCEDURE,7-85

COMPOSITE_LIMITパラメータALTER PROFILE,7-88

COMPRESS句ALTER INDEX,7-41

CONCAT関数,4-23CONNECT BY句

SELECT,5-22CONNECT_TIMEパラメータ

ALTER PROFILE,7-88ALTER RESOURCE COST,7-92

CONSIDER FRESH句ALTER MATERIALIZED VIEW,7-70

CONSTRAINT(S)パラメータALTER SESSION,7-105

CONTROL_FILE_RECORD_KEEP_TIMEパラメータALTER SYSTEM,7-133

controlfile句ALTER DATABASE,7-12

CONVERT関数,4-24CONVERT句

ALTER DATABASE,7-24CORE_DUMP_DESTパラメータ

ALTER SYSTEM,7-133CORR関数,4-25COSH関数,4-27COS関数,4-26COUNT関数,4-27CPU_PER_CALLパラメータ

ALTER PROFILE,7-88CPU_PER_SESSIONパラメータ

ALTER PROFILE,7-88ALTER RESOURCE COST,7-92

CREATE DATAFILE句ALTER DATABASE,7-10,7-18

CREATE STANDBY CONTROLFILE句ALTER DATABASE,7-12,7-23

CREATE_STORED_OUTLINESパラメータALTER SESSION,7-106ALTER SYSTEM,7-133

CUME_DIST関数,4-33CURRENT_SCHEMAパラメータ

ALTER SESSION,7-106CURRVAL疑似列,2-57CURSOR_SHARINGパラメータ

ALTER SESSION,7-107,7-133CURSOR式,5-11CYCLE句

ALTER SEQUENCE「CREATE SEQUENCE」を参照,7-99

C数値書式要素,2-42

DDATAFILE END BACKUP句

ALTER DATABASE,7-19DATAFILE OFFLINE句

ALTER DATABASE,7-18DATAFILE ONLINE句

ALTER DATABASE,7-18DATAFILE RESIZE句

ALTER DATABASE,7-18DATAFILE句

ALTER DATABASE,7-10,7-18DATEデータ型,2-13文字値や数値からの変換,2-13

索引索引索引索引 -3

Page 466: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

DAY日付書式要素,2-49DB_BLOCK_CHECKINGパラメータ

ALTER SESSION,7-107ALTER SYSTEM,7-134

DB_BLOCK_CHECKSUMパラメータALTER SYSTEM,7-134

DB_BLOCK_MAX_DIRTY_TARGETパラメータALTER SYSTEM,7-134

DB_FILE_MULTIBLOCK_READ_COUNTパラメータALTER SESSION,7-107ALTER SYSTEM,7-135

DB2データ型,2-20Oracleデータ型への変換,2-22制限,2-23

DBA_2PC_PENDINGビュー,7-102DBMS_ROWIDパッケージ拡張 ROWID,2-19

DDD日付書式要素,2-47DDL「データ定義言語」を参照

DDL文排他的アクセスの必要性,6-2

DD日付書式要素,2-47DEALLOCATE UNUSED句

ALTER CLUSTER,7-5ALTER INDEX,7-39

DEBUG句ALTER FUNCTION,7-37ALTER PACKAGE,7-83ALTER PROCEDURE,7-85

DECIMALデータ型ANSI,2-21DB2,2-22SQL/DS,2-22

DECODE式,5-13DENSE_RANK関数,4-34DEREF関数,4-35DISABLE DISTRIBUTED RECOVERY句

ALTER SYSTEM,7-130DISABLE PARALLEL DML句

ALTER SESSION,7-103DISABLE QUERY REWRITE句

ALTER MATERIALIZED VIEW,7-69DISABLE RESTRICTED SESSION句

ALTER SYSTEM,7-130DISABLE THREAD句

ALTER DATABASE,7-27

DISABLE句ALTER INDEX,7-51

DISCONNECT SESSION句ALTER SYSTEM,7-128

DML「データ操作言語」を参照

DOUBLE PRECISIONデータ型ANSI,2-21

DRIVING_SITEヒント,2-70DROP LOGFILE MEMBER句

ALTER DATABASE,7-11,7-22DROP LOGFILE句

ALTER DATABASE,7-11,7-21DROP PARTITION句

ALTER INDEX,7-53DROP句

ALTER DIMENSION,7-35DUALダミー表,2-82,5-27DUMP関数,4-36DY日付書式要素,2-47,2-49D数値書式要素,2-42D日付書式要素,2-47

EEBCDICキャラクタ・セット,2-27EE日付書式要素,2-47EMPTY_BLOB関数,4-37EMPTY_CLOB関数,4-37ENABLE DISTRIBUTED RECOVERY句

ALTER SYSTEM,7-130ENABLE PARALLEL DML句

ALTER SESSION,7-103ENABLE QUERY REWRITE句

ALTER MATERIALIZED VIEW,7-69ENABLE RESTRICTED SESSION句

ALTER SYSTEM,7-130ENABLE THREAD句

ALTER DATABASE,7-27ENABLE句

ALTER INDEX,7-50,7-51EXCLUDING NEW VALUES句

ALTER MATERIALIZED VIEW LOG,7-78EXISTS演算子,3-7条件,5-19

EXP関数,4-38

索引索引索引索引 -4

Page 467: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

E数値書式要素,2-42E日付書式要素,2-47

FFAILED_LOGIN_ATTEMPTSパラメータ

ALTER PROFILE,7-88FAST_START_IO_TARGETパラメータ

ALTER SESSION,7-107,7-135FAST_START_PARALLEL_ROLLBACKパラメータ

ALTER SYSTEM,7-135FIPSのフラグ使用,7-107FIRST_ROWSヒント,2-67FIRST_VALUE関数,4-38FIXED_DATEパラメータ

ALTER SYSTEM,7-135FLAGGERパラメータ

ALTER SESSION,7-107FLOATデータ型,2-11

ANSI,2-21DB2,2-22SQL/DS,2-22

FLOOR関数,4-40FLUSH SHARED POOL句

ALTER SYSTEM,7-130FM書式モデル修飾子,2-52FM数値書式要素,2-42FORCE PARALLEL DML句

ALTER SESSION,7-103FROM句問合せ,5-24

FULLヒント,2-67FX書式モデル修飾子,2-53

GGC_DEFER_TIMEパラメータ

ALTER SYSTEM,7-135GLOBAL_NAMESパラメータ

ALTER SESSION,7-108ALTER SYSTEM,7-136

GRAPHICデータ型(SQL/DSまたは DB2),2-23GREATEST関数,4-41GROUPING関数,4-41G数値書式要素,2-42

HHASH_AJヒント,2-70HASH_AREA_SIZEパラメータ

ALTER SESSION,7-108HASH_JOIN_ENABLEDパラメータ

ALTER SESSION,7-108HASH_MULTIBLOCK_IO_COUNTパラメータ

ALTER SESSION,7-108ALTER SYSTEM,7-136

HASHヒント,2-68HEXTORAW関数,2-30,4-43HH12日付書式要素,2-47HH24日付書式要素,2-47HH日付書式要素,2-47HIERARCHY句

ALTER DIMENSION,7-34HS_AUTOREGISTERパラメータ

ALTER SYSTEM,7-136

IIDENTIFIED BY句

ALTER ROLE「CREATE ROLE」を参照,7-94

IDENTIFIED EXTERNALLY句ALTER ROLE「CREATE ROLE」を参照

IDENTIFIED GLOBALLY句ALTER ROLE「CREATE ROLE」を参照,7-94

IDLE_TIMEパラメータALTER PROFILE,7-88

INCLUDING NEW VALUES句ALTER MATERIALIZED VIEW LOG,7-78

INCREMENT BY句ALTER SEQUENCE「CREATE SEQUENCE」を参照

INDEX_ASCヒント,2-68INDEX_DESCヒント,2-68INDEXヒント,2-68INITCAP関数,4-43INITRANSパラメータ

ALTER CLUSTER,7-4ALTER INDEX,7-40,7-46ALTER MATERIALIZED VIEW,7-63ALTER MATERIALIZED VIEW LOG,7-74

索引索引索引索引 -5

Page 468: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

INSERT文append,2-71

INSTANCEパラメータALTER SESSION,7-109

INSTRB関数,4-45INSTR関数,4-44INTEGERデータ型

ANSI,2-21DB2,2-22SQL/DS,2-22

INTERSECT演算子,3-13INTERSECT集合演算子,3-13INTデータ型 (ANSI),2-21INリスト,2-75IS NOT NULL演算子,3-7IS NULL演算子,3-7ISO規格,ix,1-2

ISOLATION_LEVELパラメータALTER SESSION,7-109

IW日付書式要素,2-47IYYY日付書式要素,2-47IYY日付書式要素,2-47IY日付書式要素,2-47I日付書式要素,2-47

JJavaクラス・スキーマ・オブジェクトコンパイル,7-56変換,7-56

JOB_QUEUE_PROCESSESパラメータALTER SYSTEM,7-136

JOIN KEY句ALTER DIMENSION,7-34

J日付書式要素,2-47

KKILL SESSION句

ALTER SYSTEM,7-129

LLAG関数,4-45LAST_DAY関数,4-46LAST_VALUE関数,4-47

LEAD関数,4-49LEAST関数,4-51LENGTHB関数,4-52LENGTH関数,4-51LEVEL疑似列,2-60階層問合せ,2-60

LEVEL句ALTER DIMENSION,7-34

LICENSE_MAX_SESSIONSパラメータALTER SYSTEM,7-137

LICENSE_MAX_USERSパラメータALTER SYSTEM,7-137

LICENSE_SESSIONS_WARNINGパラメータALTER SYSTEM,7-137

LIKE演算子,3-8LIKE条件,5-19LN関数,4-52LOB外部,2-15属性初期化,2-16

内部,2-15列

LONGと LONG RAWの違い,2-16移入,2-16

ロケータ,2-16LOB記憶域句

ALTER MATERIALIZED VIEW,7-61,7-63LOBデータ型,2-15LOG_ARCHIVE_DEST_nパラメータ

ALTER SESSION,7-109,7-138ALTER SYSTEM,7-138

LOG_ARCHIVE_DEST_STATE_nパラメータALTER SESSION,7-110ALTER SYSTEM,7-138

LOG_ARCHIVE_DESTパラメータALTER SYSTEM,7-138

LOG_ARCHIVE_DUPLEX_DESTパラメータALTER SYSTEM,7-139

LOG_ARCHIVE_MAX_PROCESSESパラメータALTER SYSTEM,7-139

LOG_ARCHIVE_MIN_SUCCEED_DESTパラメータALTER SESSION,7-110ALTER SYSTEM,7-139

LOG_ARCHIVE_TRACEパラメータALTER SYSTEM,7-139

索引索引索引索引 -6

Page 469: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

LOG_CHECKPOINT_INTERVALパラメータALTER SYSTEM,7-139

LOG_CHECKPOINT_TIMEOUTパラメータALTER SYSTEM,7-140

LOGGING句ALTER INDEX,7-46ALTER MATERIALIZED VIEW,7-65ALTER MATERIALIZED VIEW LOG,7-77

LOGICAL_READS_PER_CALLパラメータALTER PROFILE,7-88

LOGICAL_READS_PER_SESSIONパラメータALTER PROFILE,7-88ALTER RESOURCE COST,7-92

LOG関数,4-53LONG RAWデータ

CHARデータからの変換,2-15データ型,2-15

LONG VARCHARデータ型DB2,2-22SQL/DS,2-22

LONG VARGRAPHICデータ型(SQL/DSまたはDB2),2-23

LONGデータ型,2-11トリガー内,2-13

LONG列参照先,2-12制限,2-12テキスト列の格納,2-11ビュー定義の格納,2-11

LOWER関数,4-53LPAD関数,4-54LTRIM関数,4-54L数値書式要素,2-42

MMAKE_REF関数,4-55MANAGED STANDBY RECOVERY句

ALTER DATABASE,7-16MAX_DUMP_FILE_SIZEパラメータ

ALTER SESSION,7-110ALTER SYSTEM,7-140

MAXSIZE句ALTER DATABASE,7-12

MAXTRANSパラメータALTER CLUSTER,7-4

ALTER INDEX,7-40,7-46ALTER MATERIALIZED VIEW,7-63ALTER MATERIALIZED VIEW LOG,7-74

MAXVALUEパラメータALTER SEQUENCE「CREATE SEQUENCE」を参照,7-99

MAX関数,4-56MERGE_AJヒント,2-70MERGEヒント,2-73MINUS演算子,3-13MINUS集合演算子,3-13MINVALUE

ALTER SEQUENCE「CREATE SEQUENCE」を参照,7-99

MIN関数,4-58MI数値書式要素,2-42MI日付書式要素,2-47MM日付書式要素,2-47MODIFY DEFAULT ATTRIBUTES句

ALTER INDEX,7-42,7-52MODIFY LOB記憶域句

ALTER MATERIALIZED VIEW,7-61,7-64MODIFY PARTITION句

ALTER INDEX,7-42,7-52ALTER MATERIALIZED VIEW,7-64

MODIFY SUBPARTITION句ALTER INDEX,7-43,7-53

MOD関数,4-59MONTHS_BETWEEN関数,4-60MONTH日付書式要素,2-47,2-49MON日付書式要素,2-47,2-49MOUNT句

ALTER DATABASE,7-24MTS_DISPATCHERSパラメータ

ALTER SYSTEM,7-141MTS_SERVERSパラメータ

ALTER SYSTEM,7-141

NNATIONAL CHAR VARYINGデータ型 (ANSI),2-21NATIONAL CHARACTER SETパラメータ

ALTER DATABASE,7-28NATIONAL CHARACTER VARYINGデータ型

ANSI,2-21NATIONAL CHARACTERデータ型(ANSI),2-21NATIONAL CHARデータ型(ANSI),2-21

索引索引索引索引 -7

Page 470: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NCHAR VARYINGデータ型(ANSI),2-21NCHARデータ型,2-7

ANSI,2-21NCLOBデータ型,2-18トランザクションのサポート,2-18

NEW_TIME関数,4-61NEXT_DAY関数,4-62NEXTVAL疑似列,2-57NEXT句

ALTER MATERIALIZED VIEW...REFRESH,7-68NLS_CALENDARパラメータ

ALTER SESSION,7-110NLS_CHARSET_DECL_LEN関数,4-62NLS_CHARSET_ID関数,4-63NLS_CHARSET_NAME関数,4-64NLS_COMPパラメータ

ALTER SESSION,7-111NLS_CURRENCYパラメータ

ALTER SESSION,7-111NLS_DATE_FORMATパラメータ

ALTER SESSION,7-111NLS_DATE_LANGUAGEパラメータ,2-50

ALTER SESSION,7-111NLS_INITCAP関数,4-64NLS_ISO_CURRENCYパラメータ

ALTER SESSION,7-111NLS_LANGUAGEパラメータ,2-50,5-23

ALTER SESSION,7-111NLS_LOWER関数,4-65NLS_NUMERIC_CHARACTERSパラメータ

ALTER SESSION,7-112NLS_SORTパラメータ,5-23

ALTER SESSION,7-112NLS_TERRITORYパラメータ,2-50

ALTER SESSION,7-112NLS_UNION_CURRENCYパラメータ

ALTER SESSION,7-111NLS_UPPER関数,4-67NLSSORT関数,4-66NLSパラメータ,7-110NO_EXPANDヒント,2-74NO_INDEXヒント,2-69NO_MERGEヒント,2-74NO_PUSH_PREDヒント,2-76NOAPPENDヒント,2-72NOARCHIVELOG句

ALTER DATABASE,7-11,7-20

NOCACHE句ALTER MATERIALIZED VIEW,7-65ALTER MATERIALIZED VIEW LOG,7-77ALTER SEQUENCE「CREATE SEQUENCE」を参照

NOCACHEヒント,2-75NOCYCLE句

ALTER SEQUENCE「CREATE SEQUENCE」を参照,7-99

NOLOGGING句ALTER INDEX,7-46ALTER MATERIALIZED VIEW,7-65ALTER MATERIALIZED VIEW LOG,7-77

NOMAXVALUEパラメータALTER SEQUENCE「CREATE SEQUENCE」を参照

NOMINVALUE句ALTER SEQUENCE「CREATE SEQUENCE」を参照,7-99

NOORDER句ALTER SEQUENCE「CREATE SEQUENCE」を参照,7-99

NOPARALLEL_INDEXヒント,2-73NOPARALLEL句

CREATE INDEX,7-6,7-17,7-45,7-65,7-76NOPARALLELヒント,2-72NOREWRITEヒント,2-74NOT IDENTIFIED句

ALTER ROLE「CREATE ROLE」を参照

NOT IN演算子,3-7NOT演算子,3-11,3-12NTILE関数,4-67NULL,2-55

0(ゼロ)との違い,2-55関数,2-56条件,2-56表,2-57

比較演算子,2-56NULL条件,5-19NUMBERデータ型,2-9

VARCHAR2への変換,2-41位取り,2-9精度,2-9

NUMERICデータ型 (ANSI),2-21NUMTODSINTERVAL関数,4-69NUMTOYMINTERVAL関数,4-70

索引索引索引索引 -8

Page 471: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

NVARCHAR2データ型,2-8NVL2関数,4-72NVL関数,4-71

OOBJECT_CACHE_MAX_SIZE_PERCENTパラメータ

ALTER SESSION,7-113ALTER SYSTEM,7-141

OBJECT_CACHE_OPTIMAL_SIZEパラメータALTER SESSION,7-113ALTER SYSTEM,7-141

OFFLINE句ALTER ROLLBACK SEGMENT,7-97

OID「オブジェクト識別子」を参照,2-24

ONLINE句ALTER ROLLBACK SEGMENT,7-97

OPEN NORESETLOGS句ALTER DATABASE,7-26

OPEN READ ONLY句ALTER DATABASE,7-25

OPEN READ WRITE句ALTER DATABASE,7-25

OPEN RESETLOGS句ALTER DATABASE,7-26

OPTIMIZER_INDEX_CACHINGパラメータALTER SESSION,7-113

OPTIMIZER_INDEX_COST_ADJパラメータALTER SESSION,7-113

OPTIMIZER_MAX_PERMUTATIONSパラメータALTER SESSION,7-113

OPTIMIZER_MODEパラメータALTER SESSION,7-113

OPTIMIZER_PERCENT_PARALLELパラメータALTER SESSION,7-114

Oracle ToolsSQLのサポート,1-5

Oracle8iEnterprise Edition特徴および機能,x

特徴および機能,x新機能,x

ORDER BY句SELECT,5-22

ROWNUM,2-63問合せ,5-22

ORDERED_PREDICATESヒント,2-76ORDEREDヒント,2-69ORDER句

ALTER SEQUENCE「CREATE SEQUENCE」を参照,7-99

OR演算子,3-11,3-12OVERFLOW句

ALTER INDEX,7-43

PPACKAGE句

ALTER PACKAGE,7-82PARALLEL_ADAPTIVE_MULTI_USERパラメータ

ALTER SYSTEM,7-142PARALLEL_BROADCAST_ENABLEDパラメータ

ALTER SESSION,7-114parallel_clause

ALTER INDEX,7-45PARALLEL_INSTANCE_GROUPパラメータ

ALTER SESSION,7-114ALTER SYSTEM,7-142

PARALLEL_MIN_PERCENTパラメータALTER SESSIONパラメータ,7-114

PARALLEL_THREADS_PER_CPUパラメータALTER SYSTEM,7-142

PARALLEL句ALTER CLUSTER,7-5ALTER DATABASE,7-17ALTER INDEX,7-40ALTER MATERIALIZED VIEW,7-62,7-64ALTER MATERIALIZED VIEW LOG,7-75,7-76

PARALLELヒント,2-72PARTITION_VIEW_ENABLEDパラメータ

ALTER SESSION,7-114PASSWORD_GRACE_TIMEパラメータ

ALTER PROFILE,7-88PASSWORD_LIFE_TIMEパラメータ

ALTER PROFILE,7-88PASSWORD_LOCK_TIMEパラメータ

ALTER PROFILE,7-88PASSWORD_REUSE_MAXパラメータ

ALTER PROFILE,7-88PASSWORD_REUSE_TIMEパラメータ

ALTER PROFILE,7-88PASSWORD_VERIFY_FUNCTIONパラメータ

ALTER PROFILE,7-88

索引索引索引索引 -9

Page 472: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

PCTFREEパラメータALTER CLUSTER,7-4ALTER INDEX,7-40,7-46ALTER MATERIALIZED VIEW,7-63ALTER MATERIALIZED VIEW LOG,7-74

PCTUSEDパラメータALTER INDEX,7-40,7-46ALTER MATERIALIZED VIEW,7-63ALTER MATERIALIZED VIEW LOG,7-74ALTER CLUSTER,7-4

PERCENT_RANK関数,4-73PL/SQL,ix前回のリリースとの互換性,7-115,7-142ブロック構文,xvi

PLSQL_V2_COMPATIBILITYパラメータALTER SESSION,7-115ALTER SYSTEM,7-142

PM(P.M.)日付書式要素,2-47,2-49POWER関数,4-74PQ_DISTRIBUTEヒント,2-73PRIOR演算子,3-16PRIVATE_SGAパラメータ

ALTER PROFILE,7-88ALTER RESOURCE COST,7-92

PR数値書式要素,2-42PUSH_PREDヒント,2-76

QQUERY_REWRITE_ENABLEDパラメータ

ALTER SESSION,7-115ALTER SYSTEM,7-143

QUERY_REWRITE_INTEGRITYパラメータALTER SESSION,7-115ALTER SYSTEM,7-143

Q日付書式要素,2-47

RRANK関数,4-74RATIO_TO_REPORT関数,4-75RAWTOHEX関数,2-30,4-76RAWデータ

CHARデータからの変換,2-15RAWデータ型,2-15

REALデータ型ANSI,2-21

REBUILD COMPRESS句ALTER INDEX,7-49

REBUILD COMPUTE STATISTICS句ALTER INDEX,7-49

REBUILD LOGGING句ALTER INDEX,7-50

REBUILD NOCOMPRESS句ALTER INDEX,7-49

REBUILD NOLOGGING句ALTER INDEX,7-50

REBUILD NOREVERSE句ALTER INDEX,7-48

REBUILD ONLINE句ALTER INDEX,7-49

REBUILD PARAMETERS句ALTER INDEX,7-50

REBUILD PARTITION句ALTER INDEX,7-48

REBUILD REVERSE句ALTER INDEX,7-48

REBUILD SUBPARTITION句ALTER INDEX,7-48

REBUILD TABLESPACE句ALTER INDEX,7-49

REBUILD句ALTER INDEX,7-41,7-47ALTER OUTLINE,7-79

RECOVER AUTOMATIC句ALTER DATABASE,7-14

RECOVER CANCEL句ALTER DATABASE,7-9,7-16

RECOVER CONTINUE句ALTER DATABASE,7-9,7-15

RECOVER DATABASE句ALTER DATABASE,7-9,7-14

RECOVER DATAFILE句ALTER DATABASE,7-9,7-15

RECOVER LOGFILE句ALTER DATABASE,7-9,7-15

RECOVER MANAGED STANDBY DATABASE句ALTER DATABASE,7-10

RECOVER STANDBY DATAFILE句ALTER DATABASE,7-15

RECOVER STANDBY TABLESPACE句ALTER DATABASE,7-15

索引索引索引索引 -10

Page 473: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

RECOVER TABLESPACE句ALTER DATABASE,7-9,7-15

RECOVERABLE,7-47「LOGGING句」を参照

RECOVER句ALTER DATABASE,7-9,7-13

REDOログParallel Serverの指定スレッドを使用可能にする,

7-27Parallel Serverの指定スレッドを使用禁止にする,

7-27グループの切替え,7-131削除,7-21指定メディア・リカバリ用,7-15

自動アーカイブ,7-124自動名前生成,7-14追加,7-20メンバー改名,7-26既存のグループへの追加,7-21削除,7-22

REF,2-24OIDのコンテナ,2-24

REFRESH COMPLETE句ALTER MATERIALIZED VIEW,7-67

REFRESH FAST句ALTER MATERIALIZED VIEW,7-66

REFRESH FORCE句ALTER MATERIALIZED VIEW,7-67

REFRESH ON COMMIT句ALTER MATERIALIZED VIEW,7-67

REFRESH ON DEMAND句ALTER MATERIALIZED VIEW,7-67

REFRESH句ALTER MATERIALIZED VIEW,7-62,7-66

REFTOHEX関数,4-78REF関数,4-77REGR_AVGX関数,4-78REGR_AVGY関数,4-78REGR_COUNT関数,4-78REGR_INTERCEPT関数,4-78REGR_R2関数,4-78REGR_SLOPE関数,4-78REGR_SXX関数,4-78REGR_SXY関数,4-78REGR_SYY関数,4-78

REMOTE_DEPENDENCIES_MODEパラメータALTER SESSION,7-116ALTER SYSTEM,7-144

RENAME FILE句ALTER DATABASE,7-8,7-26

RENAME GLOBAL_NAME句ALTER DATABASE,7-26

RENAME PARTITION句ALTER INDEX,7-42,7-52

RENAME SUBPARTITION句ALTER INDEX,7-42,7-52

RENAME句ALTER INDEX,7-51ALTER OUTLINE,7-79

REPLACE関数,4-85RESET COMPATIBILITY句

ALTER DATABASE,7-27RESOLVER句

ALTER JAVA CLASS,7-57ALTER JAVA SOURCE,7-57

RESOLVE句ALTER JAVA CLASS,7-57

RESOURCE_LIMITパラメータALTER SYSTEM,7-144

RESOURCE_MANAGER_PLANパラメータALTER SYSTEM,7-144

RESUME句ALTER SYSTEM,7-131

REWRITEヒント,2-74RM日付書式要素,2-47RN数値書式要素,2-42ROUND関数書式モデル,4-127数値関数,4-86日付関数,4-87

ROW_NUMBER関数,4-87ROWID

ROW部分,2-19外部キー表,2-20拡張,2-19基本,2-19直接利用できない,2-19

索引構成表,2-20使用方法,2-62制限,2-19互換性と移行,2-20

説明,2-18

索引索引索引索引 -11

Page 474: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

非物理,2-20ファイル部分,2-19ブロック部分,2-19

ROWIDTOCHAR関数,2-30,4-89ROWID疑似列,2-18,2-20,2-61ROWIDデータ型,2-18ROWIDヒント,2-69ROWNUM疑似列,2-62使用方法,2-63

RPAD関数,4-89RRRR日付書式要素,2-47RR日付書式要素,2-47,2-50解析,2-50

RTRIM関数,4-90RULEヒント,2-67

SSALESサンプル表,4-3SCC日付書式要素,2-47SELECT構文のリスト,5-20順序付け,5-22

SELECT文,5-20SESSION_CACHED_CURSORSパラメータ

ALTER SESSION,7-116SESSIONS_PER_USERパラメータ

ALTER PROFILE,7-88SET句

ALTER SESSION,7-105ALTER SYSTEM,7-132

SGA「システム・グローバル領域」を参照

SHRINK句ALTER ROLLBACK SEGMENT,7-98

SHUTDOWN句ALTER SYSTEM,7-131

SIGN関数,4-90SINH関数,4-91SIN関数,4-91SIZE句

ALTER CLUSTER,7-4SKIP_UNUSABLE_INDEXESパラメータ

ALTER SESSION,7-117SMALLINTデータ型

ANSI,2-21DB2,2-22SQL/DS,2-22

SOME演算子,3-6SORT_AREA_RETAINED_SIZEパラメータ

ALTER SESSION,7-117ALTER SYSTEM,7-145

SORT_AREA_SIZEパラメータALTER SESSION,7-117ALTER SYSTEM,7-145

SORT_MULTIBLOCK_READ_COUNTパラメータALTER SESSION,7-117ALTER SYSTEM,7-145

SOUNDEX関数,4-92SPECIFICATION句

ALTER PACKAGE,7-82SPLIT PARTITION句

ALTER INDEX,7-43,7-53SPTH日付書式要素の接尾辞,2-52SP日付書式要素の接尾辞,2-52SQL

Oracle Toolsのサポート,1-5埋込み,1-4関数,4-2規格,1-2構文,7-1説明,1-3

SQL_TRACEパラメータALTER SESSION,7-117

SQL92,1-2SQL/DSデータ型,2-20

Oracleデータ型への変換,2-22制限,2-23

SQL関数ABS,4-14ACOS,4-15ADD_MONTHS,4-15ASCII,4-16ASIN,4-16ATAN,4-17ATAN2,4-17AVG,4-18BFILENAME,4-19BITAND,4-20CEIL,4-21CHARTOROWID,4-21CHR,4-22CONCAT,4-23CONVERT,4-24CORR,4-25

索引索引索引索引 -12

Page 475: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

COS,4-26COSH,4-27COUNT,4-27CUME_DIST,4-33DENSE_RANK,4-34DEREF,4-35DUMP,4-36EMPTY_BLOB,4-37EMPTY_CLOB,4-37EXP,4-38FIRST_VALUE,4-38FLOOR,4-40GREATEST,4-41GROUPING,4-41HEXTORAW,4-43INITCAP,4-43INSTR,4-44INSTRB,4-45LAG,4-45LAST_DAY,4-46LAST_VALUE,4-47LEAD,4-49LEAST,4-51LENGTH,4-51LENGTHB,4-52LN,4-52LOG,4-53LOWER,4-53LPAD,4-54LTRIM,4-54MAKE_REF,4-55MAX,4-56MIN,4-58MOD,4-59MONTHS_BETWEEN,4-60NEW_TIME,4-61NEXT_DAY,4-62NLS_CHARSET_DECL_LEN,4-62NLS_CHARSET_ID,4-63NLS_CHARSET_NAME,4-64NLS_INITCAP,4-64NLS_LOWER,4-65NLS_UPPER,4-67NLSSORT,4-66NLV2,4-72NTILE,4-67NUMTODSINTERVAL,4-69

NUMTOYMINTERVAL,4-70NVL,4-71PERCENT_RANK,4-73POWER,4-74RANK,4-74RATIO_TO_REPORT,4-75RAWTOHEX,4-76REF型,4-77REFTOHEX,4-78REGR_AVGX,4-78REGR_AVGY,4-78REGR_COUNT,4-78REGR_INTERCEPT,4-78REGR_R2,4-78REGR_SLOPE,4-78REGR_SXX,4-78REGR_SXY,4-78REGR_SYY,4-78REPLACE,4-85ROUND(数値),4-86ROUND(日付),4-87ROW_NUMBER,4-87ROWIDTOCHAR,4-89RPAD,4-89RTRIM,4-90SIGN,4-90SIN,4-91SINH,4-91SOUNDEX,4-92SQRT,4-93STDDEV,4-93STDDEVP,4-95STDDEVS,4-96SUBSTR,4-98SUBSTRB,4-99SUM,4-99SYS_CONTEXT,4-101SYS_GUID,4-105SYSDATE,4-106TAN,4-107TANH,4-107TO_CHAR(数値),4-109TO_CHAR(日付),4-108TO_DATE,4-110TO_LOB,4-111TO_MULTI_BYTE,4-112TO_NUMBER,4-112

索引索引索引索引 -13

Page 476: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

TO_SINGLE_BYTE,4-113TRANSLATE,4-113TRANSLATE...USING,4-114TRIM,4-116TRUNC(数値),4-117TRUNC(日付),4-117UID,4-118UPPER,4-118USER,4-119USERENV,4-120VALUE,4-121VARIANCE,4-125VARP,4-122VARS,4-123VSIZE,4-126オブジェクト参照,4-14集計,4-6数値,4-4線形リグレッション,4-78単一行,4-4その他,4-6

日付,4-5分析,4-8変換,4-5文字数値,4-5文字値,4-4

SQL文DDL,6-2DML,6-4システム制御,6-5セッション制御,6-5トランザクション制御,6-4

SQRT関数,4-93SSSSS日付書式要素,2-47SS日付書式要素,2-47STANDBY_ARCHIVE_DESTパラメータ

ALTER SYSTEM,7-145STAR_TRANSFORMATION_ENABLEDパラメータ

ALTER SESSION,7-118STAR_TRANSFORMATIONヒント,2-74START WITH句

ALTER MATERIALIZED VIEW...REFRESH,7-68STDDEVP関数,4-95STDDEVS関数,4-96STDDEV関数,4-93

STORAGE句ALTER CLUSTER,7-4ALTER INDEX,7-40,7-41,7-46ALTER MATERIALIZED VIEW,7-63ALTER MATERIALIZED VIEW LOG,7-74ALTER ROLLBACK SEGMENT,7-96,7-97

SUBSTRB関数,4-99SUBSTR関数,4-98SUM関数,4-99SUSPEND句

ALTER SYSTEM,7-131SWITCH LOGFILE句

ALTER SYSTEM,7-131SYEAR日付書式要素,2-47SYS_CONTEXT関数,4-101SYS_GUID関数,4-105SYSDATE関数,4-106SYYYY日付書式要素,2-47S数値書式要素,2-42

TTANH関数,4-107TAN関数,4-107TEMPFILE句

ALTER DATABASE,7-10,7-19THSP日付書式要素の接尾辞,2-52TH日付書式要素の接尾辞,2-52TIMED_OS_STATISTICSパラメータ

ALTER SYSTEM,7-145TIMED_STATISTICSパラメータ

ALTER SESSION,7-118ALTER SYSTEM,7-145

TIMESTAMPデータ型(SQL/DSまたは DB2),2-23TIMEデータ型(SQL/DSまたは DB2),2-23TM数値書式要素,2-42TO_CHAR数値変換関数,4-109日付変換関数,4-108

TO_CHAR関数,2-30,2-41,2-46,2-52TO_DATE関数,2-30,2-46,2-50,2-53,4-110TO_LOB関数,2-30,4-111TO_MULTI_BYTE関数,4-112TO_NUMBER関数,2-30,2-41,4-112TO_SINGLE_BYTE関数,4-113top-N query,2-63

索引索引索引索引 -14

Page 477: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

TRANSACTION_AUDITINGパラメータALTER SYSTEM,7-145

TRANSLATE ...USING関数,4-114TRANSLATE関数,4-113TRIM関数,4-116TRUNC関数書式モデル,4-127数値関数,4-117日付関数,4-117

Trusted Oracle,1-5

UUID関数,4-118UNION ALL演算子,3-13UNION ALL集合演算子,3-13UNION演算子,3-13UNION集合演算子,3-13UNNEST_SUBQUERYパラメータ,2-77UNRECOVERABLE,7-47「NOLOGGING句」を参照

UNUSABLE LOCAL INDEXES句ALTER MATERIALIZED VIEW,7-64

UNUSABLE句ALTER INDEX,7-51

UPPER関数,4-118UROWID外部キー表,2-20索引構成表,2-20説明,2-20

UROWIDデータ型,2-20USE_CONCATヒント,2-75USE_MERGEヒント,2-71USE_NLヒント,2-71USE_STORED_OUTLINESパラメータ

ALTER SESSION,7-118ALTER SYSTEM,7-145

USER_DUMP_DESTパラメータALTER SYSTEM,7-146

USERENV関数,4-120USER関数,4-119USING INDEX句

ALTER MATERIALIZED VIEW,7-66USING ROLLBACK SEGMENT句

ALTER MATERIALIZED VIEW...REFRESH,7-68U数値書式要素,2-42

VV$NLS_PARAMETERSビュー,7-110VALUE関数,4-121VARCHAR2データ型,2-8

NUMBERへの変換,2-41VARCHARデータ型,2-9

DB2,2-22SQL/DS,2-22

VARGRAPHICデータ型(SQL/DSまたは DB2),2-23VARIANCE関数,4-125VARP関数,4-122VARRAY,2-24ネストした表との比較,2-28比較規則,2-28ライン外での格納,2-25

VARS関数,4-123VARYING配列「VARRAY」を参照

VSIZE関数,4-126V数値書式要素,2-42

WWHERE句

SELECT,5-21WITH PRIMARY KEY句

ALTER MATERIALIZED VIEW,7-68WW日付書式要素,2-47W日付書式要素,2-47

XX数値書式要素,2-42

YYEAR日付書式要素,2-47YYYY日付書式要素,2-47YYY日付書式要素,2-47YY日付書式要素,2-47Y日付書式要素,2-47

ああああアーカイブ REDOログ位置,7-14

索引索引索引索引 -15

Page 478: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

格納場所,7-109,7-138アウトラインインスタンスへの格納,7-145オプティマイザによる使用,7-145,7-118改名,7-79,7-81異なるカテゴリへの割当て,7-79,7-81再構築,7-79,7-81自動作成および自動格納,7-133セッション中のリストア,7-106

暗黙的なデータ変換,2-29,2-31

いいいい以上 /以下のテスト,3-6一般リカバリ句

ALTER DATABASE,7-9,7-13インスタンスグローバル・ネーム解決,7-136パラメータの設定,7-132

引用符データベース・オブジェクト名での使用,2-84

インライン・ビュー,5-25

うううう埋込み SQL,ix,1-4,6-5プリコンパイラ・サポート,6-5

ええええ英大文字または英小文字の区別スキーマ・オブジェクト名,2-84

エクステントインスタンスを使用したアクセス制限,7-44

演算子,3-1設定,3-13算術,3-3単項,3-2バイナリ,3-2比較,3-5ユーザー定義,3-16優先順位,3-2連結,3-4論理,3-11

演算子の引数,3-1

おおおお応答時間最適化,2-67

オブジェクト・アクセス式,5-12オブジェクト型,2-23構成要素,2-23属性,2-91比較規則,2-28

MAPファンクション,2-28ORDERファンクション,2-28

メソッド,2-91オブジェクト・キャッシュ,7-113,7-141オブジェクト参照関数,4-14オブジェクト識別子

REFに含まれる,2-24オブジェクトの参照「REF」を参照オペランド,3-1オンライン REDOログ初期化し直し,7-22

かかかかカーソルセッションごとのキャッシュ数,7-116

階層ディメンションからの削除,7-35ディメンションの追加,7-35

階層問合せ,2-60,5-21親である行,5-21親ノード,2-60子である行,5-21子ノード,2-60説明,2-61リーフ・ノード,2-60

外部 LOB,2-15外部キー表

ROWID,2-20外部結合,5-24制限事項,5-24

科学表記法,2-43拡張 ROWID,2-19基本,2-19直接利用できない,2-19

拡張サブパーティション表名,2-80DML文,2-80

索引索引索引索引 -16

Page 479: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

構文,2-80制限,2-81

拡張パーティション表名,2-80DML文,2-80構文,2-80制限,2-81

数SQL構文内,2-33構文,2-33精度,2-34比較規則,2-25浮動小数点,2-9,2-11フルスペルでの表記,2-52丸め,2-10

型コンストラクタ式,5-7各国語キャラクタ・セット可変長文字列,2-8固定幅と可変幅,2-7,2-8マルチバイト・キャラクタ・セット,2-8マルチバイト・キャラクタ・データ,2-18

各国語サポート「NLS」を参照関数

COMMITまたは ROLLBACK文の発行,7-102「SQL関数」を参照式,5-6実行時のコンパイルの防止,7-36ネーミング規則,2-84無効の再コンパイル,7-36ユーザー定義,4-128

関数式組込み,5-6

管理リカバリデータベース,7-10

ききききキー圧縮,7-49索引,7-49使用禁止,7-49

使用禁止,7-49キーワード,2-82構文図,xvi

疑似列,2-57CURRVAL,2-57LEVEL,2-60NEXTVAL,2-57

ROWID,2-61ROWNUM,2-62使用方法,2-63

機能新規,x

キャラクタ・セット共通,2-27マルチバイト・キャラクタ,2-82

キャラクタ・ラージ・オブジェクト「CLOBデータ型」を参照行階層順序の選択,5-21

共有サーバー・プロセス終了,7-140追加プロセスの作成,7-140

くくくく空白埋め書式モデルへの指定,2-52抑制,2-52

空白埋め比較,2-26位取り

NUMBERデータ型,2-9精度より大きい,2-11負,2-10

クラスタ変更,7-3

クラスタ・キーの領域の修正,7-4グループ比較条件,5-18クローン・データベースマウント,7-24

けけけけ結合,5-23外部,5-24制限事項,5-24

結合条件のない,5-24条件定義,5-23

等価結合,5-24内部,5-24パラレルおよび PQ_DISTRIBUTEヒント,2-73

索引索引索引索引 -17

Page 480: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ここここ構造化問合せ言語「SQL」を参照構文図キーワード,xvi説明,xvパラメータ,xvi

コード例説明,xvi

国際標準化機構「ISO」を参照,1-2コメント,2-64

SQL文,2-64指定方法,2-64スキーマ・オブジェクト,2-65

ささささ最高水位標クラスタ,7-5索引,7-44

最適化セッション・パラメータの設定,7-113

索引UNUSABLEのマーク付け,7-51オンラインの場合の再構築,7-49改名,7-51キー圧縮,7-49逆,7-48再構築,7-47再構築操作のログの記録,7-50再構築の統計,7-49索引ブロックの内容のマージ,7-51新規エクステントの割当て,7-44属性の変更,7-46パーティション,2-79

UNUSABLEのマーク付け,7-53新規の追加,7-53

表領域の指定,7-49未使用領域の解放,7-44

索引構成表ROWID,2-20

索引サブパーティションUNUSABLEのマーク付け,7-53エクステントの割当て,7-53改名,7-52

再構築,7-47表領域の指定,7-49物理属性の変更,7-46未使用領域の解放,7-44,7-53

索引パーティション改名,7-52再構築,7-47削除,7-53実特性の変更,7-52表領域の指定,7-49物理属性の変更,7-46分割,7-53未使用領域の解放,7-44

算術演算子,3-3

しししし式

CASE,5-14CAST,5-9CURSOR,5-11DECODE,5-13DUAL表の計算,5-27SQL構文内,5-2オブジェクト・アクセス,5-12型コンストラクタ,5-7関数,5-6組込み関数,5-6スカラー副問合せ,5-26単純,5-4複合,5-5変数,5-5リスト,5-15

システム・グローバル領域更新,7-128フラッシュ,7-130

システム制御文,6-5PL/SQLサポート,6-5

システムの日付変更,7-135

実行時の再コンパイル回避,7-84

実行者権限句ALTER JAVA,7-57

集計関数,4-6集合

VARRAY,2-24

索引索引索引索引 -18

Page 481: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

ネストした表,2-25集合演算子,3-13

INTERSECT,3-13MINUS,3-13UNION,3-13UNION ALL,3-13

順序,2-57値の順序付け,7-99値のリサイクル,7-99再起動異なる番号,7-100

最小値設定または変更,7-99

最大値設定または変更,7-99

使用場所,2-58使用方法,2-59変更キャッシュ値の数,7-99増分値,7-99

条件EXISTS,5-19LIKE,5-19NULL,5-19SQL構文内,5-15グループ比較,5-18単純比較,5-17複合,5-20メンバーシップ,5-18レンジ,5-19

小数点文字,2-34指定,2-42

小のテスト,3-6書式データベースからの戻り値,2-39データベースに格納された値,2-39日付および数値「書式モデル」を参照

書式モデル,2-39指定,2-41修飾子,2-52数値,2-41数値、要素,2-42日付,2-46日付、最大長,2-46日付、変更,2-46日付、書式要素,2-46

日付、デフォルト書式,2-46戻り値の書式の変更,2-40

序数指定,2-52フルスペルでの表記,2-52

新機能,x

すすすす数値関数,4-4数値書式モデル,2-41スカラー副問合せ,5-26スキーマセッションの変更,7-106定義,2-77

スキーマ・オブジェクト,2-77オブジェクト型,2-23再コンパイル,6-2再認可,6-2参照,2-86,7-106名前解決,2-87ネーミング規則,2-81計画,2-85例,2-85

ネームスペース,2-83パーティション索引,2-79パーティション表,2-79部分,2-79他のスキーマ内,2-88リスト,2-77リモート・データベース,2-88

スター型変換,2-74スタンバイ制御ファイル作成,7-23

スタンバイ・データベースアクティブ,7-25マウント,7-24メディア・リカバリの設計,7-13リカバリ,7-15

スループット最適化,2-66

せせせせ世紀指定,2-48

索引索引索引索引 -19

Page 482: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

制御ファイルバックアップ,7-23

制限 ROWID,2-19互換性と移行,2-20

整数SQL構文内,2-33構文,2-33指定,2-10精度,2-33

精度NUMBERデータ型,2-9桁数,2-34

制約遅延可能適用,7-105

セッションオブジェクト・キャッシュ,7-113グローバル・ネーム解決,7-108終了,7-129制限,7-130切断,7-128同時セッションの数,7-137特性の変更,7-105リソース・コスト制限の計算,7-91リソース・コスト制限の変更,7-91リソース・コストの制限,7-91

セッション制御文,6-5PL/SQLサポート,6-5

セッション・ロック解放,7-129

線形リグレッション関数,4-78

そそそそ相関副問合せ,5-26属性ディメンションからの削除,7-35ディメンションの追加,7-35

たたたた大のテスト,3-6単一行関数,4-4その他,4-6

単項演算子,3-2単純式,5-4単純比較条件,5-17

ちちちちチェックポイント強制実行,7-127

長期スタンバイ・リカバリ・モード,7-16終了,7-16タイムアウト周期,7-16

直積演算,5-24

つつつつ通貨記号

ISO,2-42連合,2-44ローカル,2-43

てててて定数値「リテラル」を参照ディスパッチャ・プロセス終了,7-140追加プロセスの作成,7-140

ディメンション階層削除,7-35追加,7-35

階層関係の変更,7-33属性削除,7-35追加,7-35変更,7-33

無効のコンパイル,7-35レベル削除,7-35追加,7-35

データ検索,5-20入力に対する整合性チェック,2-10

データ・オブジェクト番号拡張 ROWID,2-19

データ型,2-2ANSIのサポート,2-4BFILE,2-6,2-17BLOB,2-6,2-18CHAR,2-5,2-7CLOB,2-6,2-18

索引索引索引索引 -20

Page 483: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

DATE,2-5,2-13LONG,2-5,2-11LONG RAW,2-5,2-15NCHAR,2-5,2-7NCLOB,2-6,2-18NUMBER,2-5,2-9NVARCHAR2,2-5,2-8RAW,2-5,2-15ROWID,2-5,2-18UROWID,2-5,2-20VARCHAR,2-9VARCHAR2,2-5,2-8組込み,2-5構文,2-3

比較規則,2-25変換表,2-30

文字,2-6データ操作言語文,6-4

PL/SQLサポート,6-4データ定義言語文,6-2

PL/SQLサポート,6-2再コンパイルの原因,6-2暗黙的コミット,6-2

データ・ファイル失われたファイルの再作成,7-18オフライン化,7-18オンライン化,7-18改名,7-26サイズの再変更,7-18自動拡張を使用可能にする,7-19自動拡張を使用禁止にする,7-19新規作成,7-18メディア・リカバリの設計,7-13リカバリ,7-15

データベースOracle7のデータ・ディクショナリからの変換,

7-24REDOログ生成を可能にする,7-25アクティビティの再開,7-131アクティビティの停止,7-131オープン,7-25メディア・リカバリ後,7-26

管理リカバリ,7-10グローバル名の変更,7-26

時間ベースのリカバリ,7-15接続文字列,2-89取消しベースのリカバリ,7-15終了,7-16

ネーミング,7-13変更,7-7変更ベースのリカバリ,7-15マウント,7-24メディア・リカバリの設計,7-13ユーザーへの読取り専用トランザクションの制限,

7-25リカバリ,7-14バックアップ制御ファイルの使用,7-15

リセット現行のログ順序,7-26前回のバージョン,7-27

リモートアクセス,5-28

データベース・オブジェクトスキーマ,2-77非スキーマ,2-78

データベース・リンク,5-28クローズ,7-102構文,2-89作成,2-88参照,2-89ネーミング,2-88ユーザー名およびパスワード,2-89

データ変換,2-29暗黙的デメリット,2-31

暗黙的と明示的,2-31暗黙的に行う場合,2-29明示的に行う場合,2-30

テキスト日付書式要素,2-47テンポラリ・ファイルオフライン化,7-19オンライン化,7-19サイズの再変更,7-19削除,7-19自動拡張を使用可能にする,7-19自動拡張を使用禁止にする,7-19

とととと問合せ,5-20

SELECT構文のリスト,5-20

索引索引索引索引 -21

Page 484: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

top-N,2-63階層「階層問合せ」を参照結果のソート,5-22結合,5-23構文,5-20コメント,5-21定義済,5-20トップレベル,5-20ヒント,5-21複合,5-22複数表の参照,5-23分散,5-28

問合せのリライト一貫性のレベル,7-115,7-143使用可能,7-115,7-143使用禁止,7-115,7-143ファンクション索引,7-115ルールベースの最適化,7-115

等価結合,5-24等価性のテスト,3-5,3-6ドメイン・インデックス文字列変更の指定,7-50

トランザクション暗黙的コミット,6-2,6-4,6-5完了,7-128分散トランザクションの強制実行,7-102ロールバック,7-129

トランザクション制御文,6-4PL/SQLサポート,6-4

なななな内部 LOB,2-15内部結合,5-24名前スキーマ・オブジェクト,2-81

ねねねねネームスペースオブジェクトのネーミング規則,2-83スキーマ・オブジェクト,2-83非スキーマ・オブジェクト,2-83

ネストした表VARRAYとの比較,2-28

ネストした表型,2-25

比較規則,2-28ネストした副問合せ,5-25

ははははパーティションエクステント新規の割当て,7-44

コンポジット,2-79ハッシュ,2-79レンジ,2-79

パーティション化句

ALTER INDEX,7-41ALTER MATERIALIZED VIEW,7-61,7-64ALTER MATERIALIZED VIEW LOG,7-75,

7-76パーティション索引,2-79パーティション表,2-79バイナリ演算子,3-2バイナリ・ラージ・オブジェクト「BLOB」を参照配布ヒント,2-73

パラメータ構文図,xvi

パラレル結合PQ_DISTRIBUTEヒント,2-73

パラレル実行DDL文,7-103DML文,7-103ヒント,2-72

範囲条件,5-19

ひひひひ比較演算子,3-5比較方法空白埋め,2-26非空白埋め,2-26文字列,2-26

非空白埋め比較,2-26非スキーマ・オブジェクトネームスペース,2-83リスト,2-78

日付算術での使用,2-14

索引索引索引索引 -22

Page 485: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

デフォルト以外の書式を指定,2-13比較規則,2-25日付値の文字列への変換,2-13文字値や数値からの変換,2-13ユリウス,2-14

日付関数,4-5日付書式モデル,2-46句読点,2-46テキスト,2-46

日付書式要素,2-46RR,2-50ISO規格,2-50NLS,2-49大文字化,2-46接尾辞,2-52

表使用禁止の索引,7-117パーティション,2-79別名,2-91

表領域メディア・リカバリの設計,7-13リカバリ,7-15

ヒント,5-21ALL_ROWSヒント,2-66AND_EQUALヒント,2-67CACHEヒント,2-75CLUSTERヒント,2-67FIRST_ROWSヒント,2-67FULLヒント,2-67HASHヒント,2-68INDEX_ASCヒント,2-68INDEX_DESCヒント,2-68INDEXヒント,2-68NO_EXPANDヒント,2-74NO_MERGEヒント,2-74NO_PUSH_PREDヒント,2-76NOCACHEヒント,2-75NOPARALLELヒント,2-72NOREWRITEヒント,2-74ORDEREDヒント,2-69PARALLELヒント,2-72PQ_DISTRIBUTEヒント,2-73PUSH_PREDヒント,2-76PUSH_SUBQヒント,2-76REWRITEヒント,2-74ROWIDヒント,2-69RULEヒント,2-67

SQL文,2-65USE_CONCATヒント,2-75USE_MERGEヒント,2-71USE_NLヒント,2-71構文,2-66

ふふふふファンクション索引使用可能,7-47,7-50,7-51,7-143使用禁止,7-143問合せのリライト,7-115

複合式,5-5複合条件,5-20副問合せ,5-20,5-25インライン・ビュー,5-25拡張された副問合せのネスト解除,5-27式のかわりに使用,5-26スカラー,5-26相関,5-26定義済,5-20ネストした,5-25ネスト解除,5-27副問合せを含む,5-25

副問合せのネスト解除,5-27物理属性句

ALTER INDEX,7-40,7-46ALTER MATERIALIZED VIEW,7-63ALTER MATERIALIZED VIEW LOG,7-74

不等価性のテスト,3-6浮動小数点数,2-11不等性のテスト,3-5負の位取り,2-10プリコンパイラ

Oracle,1-4フルスペルで表した数指定,2-52

プロシージャCOMMITまたは ROLLBACK文の発行,7-102再コンパイル,7-84ネーミング規則,2-84

プロファイル変更の例,7-89

分散問合せ,5-28制限,5-28

分析関数,4-8CUME_DIST,4-33

索引索引索引索引 -23

Page 486: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

FIRST_VALUE,4-38LAG,4-45LAST_VALUE,4-47LEAD,4-49NTILE,4-67PERCENT_RANK,4-73RANK,4-74RATIO_TO_REPORT,4-75ROW_NUMBER,4-87

へへへへ米国規格協会「ANSI」を参照別名列,5-20

変換文字列から日付への規則,2-55

変換関数,4-5表,2-30

変数式,5-5

ほほほほ本文

CHARおよび VARCHAR2データ型のプロパティ,2-32

SQL構文内,2-32規則,xv構文,2-32日付および数値書式,2-39

ままままマテリアライズド・ビュー

LOB記憶特性,7-63ROWIDの値マスター表への記録,7-77

完全リフレッシュ,7-67キャッシュへのブロックの保存,7-65強制リフレッシュ,7-67高速リフレッシュ,7-66再検証,7-70索引特性変更,7-64

主キーマスター表の値の記録,7-77

次の COMMITでのリフレッシュ,7-67問合せのリライト使用可能および使用禁止,7-69

パーティション,7-64物理属性および記憶域属性変更,7-63

並列度,7-64,7-76マスター表の DML後でのリフレッシュ,7-67リフレッシュ時刻変更,7-66

リフレッシュ中に再作成,7-67リフレッシュ・モード変更,7-66

ロギングの変更,7-65マテリアライズド・ビュー・ログ新しい値の除外,7-78新しい値の保存,7-78パーティション属性変更,7-76

物理属性変更,7-75

ロギングの変更,7-77マルチスレッド・サーバーシステム・パラメータ,7-140

めめめめ明示的なデータ変換,2-30,2-31メディア・リカバリ使用禁止,7-19スタンバイ・データベース,7-13制限事項,7-13長期スタンバイ・リカバリ,7-16データ・ファイル,7-13データベース,7-13パラレル化,7-17表領域,7-13

メンバーシップ条件,5-18

もももも文字単一文字の比較規則,2-26

文字関数,4-4,4-5文字リテラル「Text」を参照

索引索引索引索引 -24

Page 487: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

文字列各国語キャラクタ・セット,2-7可変長,2-8,2-11完全一致,2-53固定長,2-7長さが 0(ゼロ),2-7比較規則,2-26

ゆゆゆゆユーザー最大同時ユーザー数,7-137

ユーザー定義演算子,3-16ユーザー定義型カテゴリ,2-23

ユーザー定義ファンクション,4-128名前の優先順位,4-129ネーミング規則,4-130

優先順位演算子,3-2

ユニバーサル ROWID「UROWID」を参照ユリウス暦、指定,2-48

よよよよ予約語,2-82

ららららラージ・オブジェクト「LOB」を参照ライブラリ・ユニット「Javaスキーマ・オブジェクト」を参照

りりりりリカバリデータベース,7-9分散、可能,7-130

リテラルSQL構文内,2-31SQL文および関数,2-31

れれれれ列修飾名,5-20別名,5-20

レベルディメンションからの削除,7-35ディメンションの追加,7-35

連結演算子,3-4

ろろろろロール認可変更,7-94

ロールバック・セグメントオフライン化,7-96オンライン化,7-96記憶特性の変更,7-96サイズの縮小,7-96

ログ・ファイル句ALTER DATABASE,7-11

論理演算子,3-11

索引索引索引索引 -25

Page 488: Oracle8i SQLリファレンス Vol.1, リリース8 · 2019. 11. 25. · Oracle8i SQL リファレンス Vol.1, リリース8.1 部品番号: J02326-01 原本名:SQL Reference,

索引索引索引索引 -26