オラクルの データベース互換性とは、アプリケーションが
Oracle環境だけでなく、
EDB Postgres Advanced Server(Advanced Server)環境で動作し、アプリケーションコードをほとんど変更しないか、またはまったく変更しないことを意味します。
Advanced Server でOracleデータベースと互換性の ある アプリケーションを 開発するには、アプリケーションの構築にどの機能が使用されているかを特に注意する必要があります。たとえば、
互換性のあるアプリケーションを開発するとは、
Advanced Server 11を作成するために 、
Advanced Server 10に 以下の Oracle機能の
データベース互換性が追加されました
。
以下の説明では、 用語は、言語キーワード、ユーザ提供値、リテラルなどの任意の単語または単語群を指す。用語の正確な意味は、それが使用される文脈に依存する。
• |
固定幅(単間隔)フォント は、 SQL コマンド、例で使用されている特定のテーブルとカラム名、プログラミング言語キーワード など、文字通り与えなければならない用語に使用され ます 。たとえば、 SELECT * FROM emp; |
• |
イタリック固定幅フォント は、ユーザーが実際の使用で値を置き換える必要がある用語に使用されます。たとえば、 DELETE FROM table_name ; |
以下のセクションでは、 Oracleデータベースと互換性の
ある Advanced Server SQL言語の
サブセットについて説明します。次の
SQL構文、コマンド、データ型、および関数は、EDB Postgres
Advanced Serverと
Oracleの両方で機能し
ます 。
• |
Advanced Serverの SQL構文と言語要素の 一般的な説明 |
SQL入力は一連のコマンドで構成されています。
コマンドは、一連の
トークンで構成され、セミコロン(;)で終了します。入力ストリームの終わりもコマンドを終了します。有効なトークンは、特定のコマンドの構文に依存します。
トークンは、 キーワード 、
識別子 、
引用符で囲まれた識別子 、
リテラル (
定数 )、または特殊文字シンボルです。トークンは通常、
空白 (スペース、タブ、
改行 )で区切られ
ますが、あいまいさがない場合(通常、特殊文字が他のトークンタイプに隣接している場合のみです)にする必要はありません。
さらに、 SQL入力
で コメントが発生する可能性があり
ます 。それらはトークンではなく、空白と事実上同等です。
SQL構文は、トークンがコマンドを識別し、オペランドまたはパラメータである何に関して非常に一貫していません。最初の数個のトークンは一般にコマンド名です。したがって、上記の例では、通常、
SELECT 、
UPDATE 、および
INSERTコマンドについて説明します。しかし、例えば、
UPDATEコマンドは常に
SETトークンを特定の位置に表示する必要があります。この特定の
INSERTバリエーションには、
VALUESトークンが必要です。各コマンドの正確な構文規則については、
2.3節で説明します。
上の例の
SELECT 、
UPDATE 、
VALUES などのトークンは
キーワードの例です。つまり、
SQL言語で固定された意味を持つ単語です。トークン
MY_TABLEと
Aは
識別子の例です。それらは、使用されているコマンドに応じて、テーブル、列、または他のデータベースオブジェクトの名前を識別します。したがって、単に「
名前 」と呼ばれることもあります。キーワードと識別子は同じ
字句構造を持ちます。つまり、言語を知らなくてもトークンが識別子かキーワードかどうかを知ることはできません。
SQLの識別子とキーワードは、文字(
azまたは
AZ )で始まる必要があります。識別子またはキーワードの後続の文字は、文字、アンダースコア、数字(
0-9 )、ドル記号(
$ )、または数字記号(
# )です。
第2の種類の識別子: 区切られた識別子または
引用された識別子 。二重引用符(
")で任意の文字の並びを囲むことによって形成される。区切り識別子は常に識別子、キーワードではありません。だから
、『『選択 』という名前の列やテーブルを参照するために使用できる
』 を選択し 、引用符で囲まれていないselectはキーワードとして扱われるため、テーブルやカラムの名前が必要な場所で使用すると解析エラーが発生します。
識別子をクォートすると、大文字と小文字が区別されますが、引用されていない名前は常に小文字に変換されます。たとえば、識別子 FOO 、
foo 、および
"foo"は、
Advanced Serverでは同じと見なされ
ますが、
"Foo"と
"FOO"はこれらの3つのものと異なります。引用符のない名前を小文字に変換することは、Oracleデータベースと互換性がありません。
Oracleの構文では、引用符で囲まれていない名前は大文字
に変換されます。たとえば、
fooは
"foo" ではなく
" FOO"に相当し
ます 。ポータブルアプリケーションを作成する場合は、常に特定の名前を引用するか、引用しないことをお勧めします。
Advanced Server の暗黙的に型指定された定数の種類は、 文字列と
数値です。明示的な型で定数を指定することもできます。これにより、より正確な表現とシステムによる効率的な処理が可能になります。これらの選択肢については、次のサブセクションで説明します。
SQL の 文字列定数は、一重引用符(
' )で囲まれた文字の任意のシーケンスです(たとえば、
' This is a string ') 。文字列定数の中に一重引用符を含めるには、二つの隣接する一重引用符(例えば、
'Dianne'の馬 ' )を書いてください。これは二重引用符( ")と同じではないことに注意してください。
ここで、 数字は、一つ以上の桁(0〜9)です。少なくとも1桁は、小数点が使用されている場合は、小数点の前または後にする必要があります。指数マーカー(
e )が存在する場合は、少なくとも1桁は指数マーカーに従わなければなりません。定数にはスペースやその他の文字が埋め込まれていないことがあります。先頭のプラス記号またはマイナス記号は、実際には定数の一部とはみなされないことに注意してください。定数に適用される演算子です。
小数点も指数も含まない数値定数は 、その値が
INTEGER型(32ビット)に収まる場合
は、最初は INTEGER 型であると推定されます 。そうでない場合は、その値が型
BIGINT(64ビット)に収まる場合にタイプ
BIGINTであると推定されます。それ以外の場合は
NUMBER型になります。小数点および/または指数を含む定数は、常に最初は
NUMBER型と
みなされます。
CASTは、任意の式の実行時の型変換を指定するためにも使用できます。
あるいは、 Cスタイルのブロックコメントを使用することもできます。
タイプ INTEGERは 、-2,147,483,648と+2,147,483,647の値の間に(小数成分なしの)整数を格納します。許容範囲外の値を格納しようとすると、エラーが発生します。
ROWID型の
列は、レコードの物理アドレスを記述する固定長バイナリ・データを保持します。
ROWIDは、0と4,294,967,295の値の間に(小数成分なしの)整数を格納する、符号なしの4バイトの
INTEGERです。許容範囲外の値を格納しようとすると、エラーが発生します。
タイプ NUMBERは 、実質的に無制限の精度の桁数を格納し、正確に計算を実行できます。金額や正確さが必要な場合は他の数量を保管する場合に特にお勧めします。ただし、 NUMBER型は、次のセクションで説明する浮動小数点型に比べて非常に遅いです。
以下では、これらの用語を使用します 。NUMBER の 位取りは、小数点以下の小数点以下の小数点以下の桁数です。
NUMBERの
精度は、整数の有効数字の合計数、つまり小数点の両側の桁数です。したがって、23.5141の数値は6の精度と4のスケールを持ちます。整数は0のスケールを持つとみなすことができます。
スケール0を選択し ます。精度または位取りを 指定し ないで NUMBER を 指定 すると、任意の精度および位取りの数値を精度の実装限界まで格納できる列が作成されます。このような列は入力値を特定のスケールに強制しません が、宣言されたスケールの NUMBER 列は入力値をそのスケールに強制します。 ( SQL標準では、デフォルトスケール0、すなわち整数精度への強制が必要です。移植性を最大限に高めるには、精度と位取りを明示的に指定することをお勧めします)。
データ型 REAL と DOUBLE PRECISION は、 不正確 で可変長の数値型です。実際には、これらのタイプは、通常 、基底のプロセッサ、オペレーティングシステム、およびコンパイラがサポートする範囲で、バイナリ浮動小数点演算(それぞれ単精度および倍精度) の IEEE 標準754の 実装です 。
ほとんどのプラットフォームでは、 REAL型は少なくとも1E-37〜1E + 37の範囲を持ち、精度は少なくとも6桁です。
DOUBLE PRECISIONタイプは通常、1E-307〜1E + 308の範囲で、少なくとも15桁の精度を持ちます。値が大きすぎたり小さすぎたりすると、エラーが発生します。入力番号の精度が高すぎる場合は、丸めが行われることがあります。 0に近い数値は、ゼロとは区別されて表現できないため、アンダーフローエラーが発生します。
Advanced Server は、 不正確な数値型を指定するため の SQL 標準表記 FLOAT および FLOAT( p ) もサポートしてい ます 。ここで、 p は最小許容精度を2進数で指定します。 Advanced Server は 、 REAL タイプ を選択する場合 は FLOAT(1) から FLOAT(24) を、 DOUBLE PRECISION を選択する場合は FLOAT(25) から FLOAT(53) を 受け入れ ます 。 許容範囲外 の pの 値は エラーを引き起こします。 精度が指定されていない FLOAT は、 DOUBLE PRECISION を意味し ます。
次の表に、
Advanced Serverで使用可能な汎用文字の種類を示し
ます 。
ここで、 n は正の整数です。これらの型は 長さ が n 文字までの文字列を格納できます 。 余分な文字がすべて空白でない限り、 n の長さを超える値を代入 するとエラーになります。この場合、文字列は最大長に切り捨てられます。
値を指定しない場合 n 、 n はデフォルトで 1に なります 。割り当てられる文字列が n よりも短い場合 、 CHAR 型の値は指定された幅(
n )に
スペースが埋め込まれ、そのように格納されて表示されます。
割り当てられる文字列が n より短い場合 、 VARCHAR 、 VARCHAR2 、
NVARCHARおよび
NVARCHAR2 型の値は 、パディングなしで短い文字列を格納します。
VARCHAR型に
明示的に値をキャストすると 、
SQL標準で指定されているように、エラーを発生させることなく長さの値が
n文字に切り捨てられ
ます 。
CLOB型
で大きな文字列を格納できます。長さの制限が指定されていないことを除いて、
CLOBは
VARCHAR2と意味的に同等です。通常、最大文字列長がわからない場合は、
CLOB型を使用する必要があります。
注意: CLOBデータ型は、実際にはPostgreSQLの
TEXTデータ型に基づく
DOMAINです。
DOMAINの詳細については、PostgreSQLのコアドキュメントを参照してください。
したがって、 CLOBタイプの
使用は、約1GBの最大サイズなどの
TEXTに対して実行できる処理によって制限されます。
大量のデータを使用する場合は、 CLOBデータ型
を使用する代わりに、
pg_largeobjectシステムカタログに依存するPostgreSQL
ラージオブジェクト機能を使用してください。ラージオブジェクトの詳細については、PostgreSQLのコアドキュメントを参照してください。
場合 DATEは、 データ定義言語(DDL)コマンドの列のデータ・タイプとして表示され、 表を作成する か、 表を ALTER、それは、テーブル定義はデータベースに格納された時点で
タイムスタンプ に変換されます 。したがって、時間成分も日付とともに列に格納されます。
とき DATEは、SPL宣言セクション、または
SPLプロシージャの仮パラメータまたは
SPL関数のデータ型、または
SPL関数の戻り値の型で変数のデータ型として表示され、それは常に
TIMESTAMPに変換されるので、存在する場合、時間成分を扱うことができる。
TIMESTAMP は 、秒フィールドに保持される小数点以下桁数を指定 するオプションの精度値 p を 受け入れ ます。 p の許容範囲は 0〜6で、デフォルトは6です。
場合 TIMESTAMP値は、倍精度浮動小数点数(現在のデフォルト)として保存され、精度の有効限界未満6
TIMESTAMP値は真夜中2000-01-01前または後秒として保存されてもよいです。マイクロ秒の精度は、2000年1月1日から数年以内の日付で達成されますが、日付の精度が低下します。
TIMESTAMP値が8バイト整数(コンパイル時のオプション)として格納される場合、マイクロ秒の精度がすべての値域にわたって使用可能です。ただし、8バイト整数のタイムスタンプの日付範囲は上記のものよりも限られています。紀元前4713年から294276年までです。
TIMESTAMP ( p )WITH TIME ZONEは
TIMESTAMP ( p )に似てい
ますが、タイムゾーンも含みます。
INTERVAL値は期間を指定します。
INTERVAL型の値は、データの値を記述するフィールドで構成されます。次の表は、
INTERVAL型で許可されるフィールドの一覧です。
p は 2番目の フィールドの 精度を指定し ます。
日付と時刻の入力は、ISO 8601の SQL 互換形式、 Oracleの デフォルトのdd-MON-yy形式、その他の形式 で受け入れられ ます。ただし、年、月、日のいずれのコンポーネントがあいまいでないかは不明です。ただし、あいまいさを避けるため
に、 TO_DATE関数の
使用を強くお勧めします。
type は DATE または TIMESTAMPの いずれか です。
日付値は、 DATE または TIMESTAMP 列または変数に 割り当てることができ ます。日付値に時間値が付加されていない場合、時、分、および秒フィールドはゼロに設定されます。
日付/時刻タイプのデフォルトの出力形式は、 Oracleデータベースと互換性の ある Redwood日付スタイル と呼ばれる(dd-MON-yy) か、ISO 8601フォーマットと呼ばれる(yyyy-mm-dd) データベース へ のアプリケーションインターフェイス上で実行さ れ ます。 SQL Interactive などのJDBCを使用するアプリケーションでは 、常に日付がISO 8601形式で表示されます。 PSQL などの他のアプリケーションでは、Redwood形式で日付が表示されます。
Advanced Server では、すべての日付/時刻の計算にユリウス日付が使用されます。ユリウス暦の日付は、年の長さが365.2425日であるという前提に基づいて、4713年以降の任意の日付を正しく予測または計算します。
Advanced Server は、標準 SQL タイプ BOOLEANを 提供し ます 。 BOOLEAN は、 TRUE または FALSEの 2つの状態のうちの1つを持つことができ ます 。第3の状態 UNKNOWN は、 SQL NULL 値。
XMLType データ型は、XMLデータを格納するために使用されます。 XMLデータを文字フィールドに格納することの利点は、整形式の入力値をチェックして、タイプセーフな操作を実行するためのサポート関数があることです。
注意: Oracleでは、 XMLTYPE 列の コンテンツ・フラグメントの格納はサポートされていません 。
この節では、 Advanced ServerでサポートされているOracleデータベースと互換性
のある SQLコマンドの
概要を示し ます 。このセクションの
SQLコマンドは、
Oracleデータベースと
Advanced Serverデータベースの両方で動作します。
• |
Advanced Serverは、ここに記載されていない他のコマンドもサポートしています。これらのコマンドには、 Oracleと同等の機能がないか、 Oracle SQLコマンドと同様の機能を提供する可能性があり ますが、構文は異なります。 |
• |
このセクション の SQLコマンドは、各コマンドで使用できる完全な構文、オプション、および機能を必ずしも表すものではありません。ほとんどの場合、 Oracleデータベースと互換性のない構文、オプション、および機能は、コマンドの説明および構文から省略されています。 |
• |
Advanced Serverのマニュアルセットのドキュメントには、Oracleデータベースと互換性がない可能性が機能を命じます。 |
ALTER INDEXは、既存の索引の定義を変更します。
RENAME句は、索引の名前を変更します。
REBUILD句は、索引の古いコピーを索引の表に基づく更新版に置き換えて、索引を再構成します。
REBUILD句はPostgreSQLのREINDEXコマンドを起動します。 REBUILD句の使用の詳細については、PostgreSQLのコアドキュメントを参照してください。
ALTER INDEXは、格納されたデータには影響しません。
ALTERを 使用する プロシージャーが セキュリティーである ことを指定する PROCEDURE ステートメント 招待者 または セキュリティ DEFINER 。
SECURITY DEFINERを
指定して 、プロシージャーを作成したユーザーの特権でプロシージャーを実行するようにサーバーに指示します。
EXTERNALキーワードは互換性のために受け入れられ
ますが、無視されます。
SECURITY INVOKERを
指定して 、プロシージャーを呼び出すユーザーの特権でプロシージャーを実行するようにサーバーに指示します。
EXTERNALキーワードは互換性のために受け入れられ
ますが、無視されます。
RESTRICT キーワードは、互換性のために受け入れたが、無視されます。
次のコマンドは、 update _
balanceプロシージャを、プロシージャを呼び出すユーザーの権限で実行するように
指定します。
ユーザー定義プロファイルを変更
するには、 ALTER PROFILEコマンドを
使用します。 Advanced Serverは、次の2つの形式のコマンドをサポートしています。
•
|
ALTER PROFILE ... RENAME TOを 使用して 、プロファイルの名前を変更します。 |
• |
ALTER PROFILE ... LIMITを 使用して、プロファイルに関連付けられた制限を変更します。 |
Advanced Serverによって実行されるルールを指定するには 、 LIMIT 句と1つ以上のスペース区切り パラメータ / 値の ペアを 含める か、 ALTER PROFILE ...
RENAME TOを使用してプロファイルの名前を変更します。
パラメータ は、プロファイルによって制限される属性を指定します。
FAILED_LOGIN_ATTEMPTSは、サーバーが
PASSWORD_LOCK_TIMEで指定された時間、アカウントからユーザーをロックする前に、ユーザーが失敗したログイン試行の回数を指定します。サポートされる値は次のとおりです。
•
|
DEFAULT - DEFAULT プロファイルで 指定された FAILED_LOGIN_ATTEMPTS の値 。 |
• |
無制限 - 接続しているユーザーは、失敗したログイン試行回数を無制限にすることがあります。 |
PASSWORD_LOCK_TIME は、サーバーが FAILED_LOGIN_ATTEMPTSの ためにロックされたアカウントのロックを解除するまでの時間を指定します 。サポートされる値は次のとおりです。
• |
0以上 の 数値 。 1日の小数部分を指定するには、小数値を指定します。たとえば、値 4.5を使用して 4日 12時間を指定します。 |
• |
DEFAULT - DEFAULTプロファイルで指定された PASSWORD_LOCK_TIMEの値。 |
• |
無制限 -アカウントはデータベーススーパーユーザーによって手動でロック解除されるまでロックされます。 |
PASSWORD_LIFE_TIMEは、ユーザーに新しいパスワードを入力する前に現在のパスワードを使用する日数を指定します。
PASSWORD _
LIFE _
TIME句を使用する場合は、
PASSWORD _
GRACE _
TIME句を含めて、ロールによる接続が拒否されるまでにパスワードが期限切れになってから経過する日数を指定します。
PASSWORD _
GRACE _
TIMEが指定されていない場合、パスワードは
PASSWORD _
GRACE _
TIMEのデフォルト値で指定された日に期限切れになり、ユーザーは新しいパスワードが提供されるまでコマンドを実行できなくなります。サポートされる値は次のとおりです。
• |
0 以上 の 数値 。 1日の小数部分を指定するには、小数値を指定します。たとえば、値 4.5を使用して 4日 12時間を指定します。 |
• |
DEFAULT - DEFAULT プロファイルで 指定された PASSWORD_LIFE_TIME の値 。 |
PASSWORD_GRACE_TIME パスワードが期限切れになった後、ユーザがパスワードを変更するまでの猶予期間の長さを示します。猶予期間が切れると、ユーザーは接続を許可されますが、期限切れのパスワードを更新するまでコマンドを実行することはできません 。サポートされる値は次のとおりです。
• |
0 以上 の 数値 。 1日の小数部分を指定するには、小数値を指定します。たとえば、値 4.5を使用して 4日 12時間を指定します。 |
• |
DEFAULT - DEFAULT プロファイルで 指定された PASSWORD_GRACE_TIME の値 。 |
PASSWORD_REUSE_TIMEは
、ユーザーがパスワードを
再使用する
まで待機する日数を指定
します。
PASSWORD _
REUSE _
TIMEと
PASSWORD _
REUSE _
MAXパラメーターは、一緒に使用するためのものです。これらのパラメータの1つに有限値を指定し、他のパラメータを
無制限に指定すると 、古いパスワードを決して再利用することはできません。両方のパラメータが
UNLIMITEDに設定されている場合は、パスワードの再利用に制限はありません。サポートされる値は次のとおりです。
• |
0 以上 の 数値 。 1日の小数部分を指定するには、小数値を指定します。たとえば、値 4.5を使用して 4日 12時間を指定します。 |
• |
DEFAULT - DEFAULT プロファイルで 指定された PASSWORD_REUSE_TIME の値 。 |
• |
無制限 - パスワードは制限なしで再利用できます。 |
PASSWORD_REUSE_MAXは
、パスワードを再利用できるようにするために必要なパスワードの変更回数を指定
します。 PASSWORD _
REUSE _
TIMEと
PASSWORD _
REUSE _
MAXパラメーターは、一緒に使用するためのものです。これらのパラメータの1つに有限値を指定し、他のパラメータを
無制限に指定すると 、古いパスワードを決して再利用することはできません。両方のパラメータが
UNLIMITEDに設定されている場合は、パスワードの再利用に制限はありません。サポートされる値は次のとおりです。
• |
DEFAULT - DEFAULT プロファイルで 指定された PASSWORD_REUSE_MAX の値 。 |
• |
無制限 - パスワードは制限なしで再利用できます。 |
• |
DEFAULT - DEFAULT プロファイルで 指定された PASSWORD_VERIFY_FUNCTION の値 。 |
ログインロールがサーバへの接続を試みると、
acctg_profileは失敗した接続試行回数をカウントします。このプロファイルでは、ユーザーが3回の試行で正しいパスワードで認証されなかった場合、そのアカウントは1日ロックされるように指定されています。
ALTER QUEUE - スーパーユーザーまたは aq _ administrator _ ロール 特権を 持つユーザーが キューの属性を変更できるようにします。
RENAMEを 含める TO 句と、キューの名前を変更するキューの新しい名前。
2番目の形式の ALTER QUEUEコマンドは、キューの属性を変更します。
ALTER QUEUE キュー _ 名 SET [({ オプション _ 名 オプション _ 値 } [、 SET オプション _ 名前
SET句と
オプション _
name /
option _
valueのペアを
含めて 、キューの属性を変更します。
• |
場合は オプション _ 名です 再試行では、デキューを 試行できる 回数を表す整数を提供します。 |
• |
オプション _ nameが retrydelayの 場合 、秒単位の遅延を表す倍精度値を指定します。 |
• |
場合は オプション _ 名が 保持され 、秒単位で保持時間を表し、倍精度値を提供します。 |
ALTER QUEUEコマンド
の3番目の形式を使用して、特定のキューでエンキューおよび/またはデキューを有効または無効にします。
ALTER QUEUE キュー _ 名 ACCESS {START | STOP} [FOR {エンキュー|デキュー}] [NOWAIT]
特定のキューでエンキューおよび/またはデキューを有効または無効にするに
は、 ACCESSキーワードを
含めます。
STARTおよび
STOPキーワードを
使用して 、キューの希望の状態を示します。
FOR句を
使用して、指定されたキューのエンキューまたはデキューの状態を指定するかどうかを指定します。
キューの状態を変更する前に、未処理のトランザクションの完了をサーバーが待たないように指定するに は、 NOWAIT キーワードを 組み込み ます。 STOP の アクセス値 を 指定するときに NOWAIT キーワード にのみ使用することができます 。 NOWAIT が ACCESS 値 STARTで 指定されている 場合、サーバーはエラーを戻します 。
ALTER QUEUE キュー _ 名 {ADD | DROP} CALL TO location _ name [WITH コールバック _ オプション ]
キューのコールバックの詳細を追加または削除するに
は、 ADDキーワードまたは
DROPキーワードを
含めます。
コールバック _ オプション コンテキストとすることができ
ます。この句を含めるときは
RAW値を指定してください。
ALTER QUEUE TABLEを
使用して 、既存のキュー表の名前を変更します。
CREATEROLE権限の
ないロールは、このコマンドを使用して自分のパスワードを変更できます。特権のないロールには、
PASSWORD _
VERIFY _
FUNCTIONがそのプロファイルで
NULL でなければ 、
REPLACE句と以前のパスワードを含める必要があり
ます 。
REPLACE句を非スーパーユーザーが使用すると、サーバーは既存のパスワードと比較し、パスワードが一致しない場合はエラーを発生させます。
パスワードが変更される ロールにSUPERUSER属性がある場合、スーパーユーザーはこのコマンドを発行する必要があります。
CREATEROLE属性を
持つロールは、このコマンドを使用して、スーパーユーザーではないロールに関連付けられたパスワードを変更できます。
保持しているユーザー CREATE DATABASE LINK 権限は、プライベート・データベース・リンクを作成することができます。次の
ALTER ROLEコマンドは、指定されたロールがプライベート・データベース・リンクを作成できるようにAdvanced Serverロールに権限を付与します。
ALTER ROLE role _ name
WITH [CREATEDBLINK | CREATE DATABASE LINK]をクリックします。
ALTER ROLE role _ name
WITH [NOCREATEDBLINK | NO CREATE DATABASE LINK]
ご注意: CREATEDBLINKと
NOCREATEDBLINKキーワードは廃止予定の構文と考えるべきです。
CREATE DATABASE LINKおよび
NO CREATE DATABASE LINK構文オプションを使用することをお勧めします。
保持しているユーザー CREATE PUBLIC DATABASE LINK 権限は、パブリック・データベース・リンクを作成することができます。次の
ALTER ROLEコマンドは、指定されたロールがパブリック・データベース・リンクを作成できるようにするAdvanced Serverロールに権限を付与します。
ALTER ROLE role _ name
WITH [CREATEPUBLICDBLINK |パブリックデータベースリンクの作成]
ALTER ROLE role _ name
WITH [NOCREATEPUBLICDBLINK | NO PUBLIC DATABASEの リンクを 作成しません ]
ご注意: CREATEPUBLICDBLINKと
NOCREATEPUBLICDBLINKキーワードは廃止予定の構文と考えるべきです。私たちは
、PUBLIC DATABASE LINKの構文オプションを
CREATE PUBLIC DATABASEの リンクを 作成し
、NO使用をお勧めします。
保持しているユーザー DROP PUBLIC DATABASE LINK 権限は、パブリック・データベース・リンクをドロップすることがあります。次の
ALTER ROLEコマンドは、指定されたロールがパブリック・データベース・リンクを削除できるようにするAdvanced Serverロールに権限を付与します。
ALTER ROLE role _ name
WITH [DROPPUBLICDBLINK | DROP PUBLIC DATABASE LINK]
ALTER ROLE role _ name
WITH [NODROPPUBLICDBLINK | NO DROP PUBLIC DATABASEの LINKません]
ご注意: DROPPUBLICDBLINKと
NODROPPUBLICDBLINKキーワードは廃止予定の構文と考えるべきです。私たちは
、DROP PUBLIC DATABASEの LINKと
NO DROP PUBLIC DATABASE LINKの構文オプションを使用することをお勧めします。
保持しているユーザー EXEMPT ACCESS POLICY 権限は、ファイングレイン・アクセス・コントロール
(DBMS_RLS)ポリシーを免除されています。これらの権限を持つユーザーは、
DBMS_RLSポリシーで制約された表の行をすべて表示または変更できます。次の
ALTER ROLEコマンドは、指定された
DBMS_RLSポリシーから指定されたロールを
除外する Advanced Serverロールに権限を付与します。
ご注意: POLICYEXEMPTと
NOPOLICYEXEMPTキーワードは廃止予定の構文と考えるべきです。我々は
EXEMPTアクセスポリシーと
NO EXEMPTアクセスポリシーの構文オプションを使用することをお勧めします。
ALTER SEQUENCEは、既存のシーケンスジェネレータのパラメータを変更します。
ALTER SEQUENCEコマンドで特に設定されていないパラメータは、その前の設定を保持します。
句の 増分 BY INCREMENTはオプションです。正の値は昇順のシーケンスを、負の値は降順のシーケンスを作成します。指定されていない場合は、古い増分値が維持されます。
オプションの節 MINVALUE minvalue は、シーケンスが生成できる最小値を決定します。指定しない場合、現在の最小値は維持されます。キーワード NO MINVALUEを 使用して、この動作を それぞれ昇順および降順 のデフォルトの1および-2 63 -1に 戻すこと ができ ます が、この用語は Oracleデータベースと互換性 がありません 。
オプション節 MAXVALUE maxvalue は、シーケンスの最大値を決定します。指定しない場合、現在の最大値は維持されます。キーワード NO MAXVALUEを 使用して 、昇順および降順のそれぞれに対して この動作をデフォルトの2 63 -1および-1に 戻すこと ができ ます が、この用語は Oracleデータベースと互換性 がありません 。
オプションの CACHE 節 キャッシュ は、より早くアクセスできるように、事前割り当てされ、メモリに格納されるシーケンス番号の数を指定します。最小値は1です(一度に生成できる値は1つのみ、つまり NOCACHE )。未指定の場合、古いキャッシュ値が維持されます。
MAXVALUE または MINVALUEが 昇順で到達したか、それぞれ降順された 際に CYCLE オプションは、シーケンスがラップアラウンドすることができます 。 限界に達した場合、生成された次の番号は、それぞれ、MINVALUE または MAXVALUE であろう 。指定しなかった場合、古いサイクルの動作は維持されます。キーワードNO CYCLEを使用してシーケンスを変更してリサイクルしないようにすることもできますが、この用語はOracleデータベースと互換性がありません。
ALTER SEQUENCEは、事前割り振り済み(キャッシュされた)順序値を持つバックエンド(現行のもの以外)の
NEXTVAL結果に直ちに影響を与えません。変更されたシーケンスパラメータに気づく前に、すべてのキャッシュされた値を使い切ります。現在のバックエンドはすぐに影響を受けます。
ALTER SESSIONコマンドは実行時設定パラメータを変更します。 ALTER SESSIONは、現在のセッションで使用されている値にのみ影響します。これらのパラメータの一部は、 Oracle構文との互換性のためにのみ提供されており、 Advanced Serverのランタイム動作には何の影響も与えません。他のユーザーは、対応するAdvanced Serverデータベース・サーバーのランタイム構成パラメーターを変更します。
有効な値は BYTEおよび
CHARです。デフォルトは
BYTEです。このパラメータは、構文の互換性のためにのみ提供され
、Advanced Serverでは無効です。
クエリのデフォルト最適化モードを設定します。有効な値は、 ALL_ROWS 、
CHOOSE 、
FIRST_ROWS 、
FIRST_ROWS_10 、
FIRST_ROWS_100 、および
FIRST_ROWS_1000です。デフォルトは
CHOOSEです。このパラメータは、
Advanced Serverで実装されてい
ます 。
有効な値は、 TRUE 、
FALSE 、および
FORCEです。デフォルトは
FALSEです。このパラメータは、構文の互換性のためにのみ提供され、
Advanced Serverでは無効です。
有効な値は ENFORCED 、
TRUSTED 、および
STALE_TOLERATEDです。デフォルトは
ENFORCEDです。このパラメータは、構文の互換性のためにのみ提供され、
Advanced Serverでは無効です。
RENAME形態は、テーブルの名前(またはインデックス、シーケンス、またはビュー)または表の個々の列の名前を変更します。保存されたデータには何の影響もありません。
ADD COLUMN を呼び出すと、表の既存の行はすべて、列のデフォルト値(
DEFAULT句が指定されていない場合はNULL)で初期化されます。 NULL以外の既定値を持つ列を追加するには、テーブル全体を書き換える必要があります。これは、大きなテーブルにはかなりの時間がかかることがあります。一時的に2倍のディスク容量が必要になります。
CHECKまたは
NOT NULL制約を追加するには、既存の行が制約を満たしていることを確認するために表をスキャンする必要があります。
DROP COLUMNのフォームは、物理的に列を削除、単にSQL操作にそれが見えなくなりません。表の後続の挿入操作および更新操作では、その列にヌル値が保管されます。したがって、列を削除することは迅速ですが、削除された列が占有する領域が再利用されないため、表のディスク上のサイズはすぐには減少しません。スペースは、既存の行が更新されると時間の経過とともに再利用されます。
表領域 empspaceの 名前を
employee_spaceに変更します。
CREATEROLE権限の
ないロールは、このコマンドを使用して自分のパスワードを変更できます。特権のないロールには、
PASSWORD _
VERIFY _
FUNCTIONがそのプロファイルで
NULL でなければ 、
REPLACE句と以前のパスワードを含める必要があり
ます 。
REPLACE句を非スーパーユーザーが使用すると、サーバーは既存のパスワードと比較し、パスワードが一致しない場合はエラーを発生させます。
パスワードが変更される ロールにSUPERUSER属性がある場合、スーパーユーザーはこのコマンドを発行する必要があります。
CREATEROLE属性を
持つロールは、このコマンドを使用して、スーパーユーザーではないロールに関連付けられたパスワードを変更できます。
どこ オプションは、 次の互換性の句を指定できます。
または オプション は、次の互換性のない節に する ことができます。
Advanced Serverでサポートされている
ALTER USERコマンドまたは
ALTER ROLEコマンド
の管理句については 、次のURLにあるPostgreSQLのコアドキュメントを参照してください。
事前定義されたプロファイルを役割に関連付ける、または事前定義されたプロファイルがユーザーに関連付けられていることを変更するに
は、 PROFILE句と
profile_nameを
含めます。
ACCOUNT句と
LOCKまたは
UNLOCKキーワードを
含めて、ユーザー・アカウントをロック状態またはロック解除状態にする必要があることを指定します。
インクルードこのロールに割り当てられたプロファイルの
TIMEパラメータ _ _
LOCK指定した時刻に役割をロックする
LOCK TIME「 タイムスタンプ 」句と日付/時刻値を、および
PASSWORDで示される時点で役割のロックを解除します。
LOCK TIMEを ACCOUNT LOCK句とともに使用すると、ロールは
ACCOUNT UNLOCK句を使用してデータベースのスーパーユーザーのみがロックを解除できます
。
パスワードを 含める ATの EXPIRE 句 ' timestamp ' キーワードを使用して、ロールに関連付けられたパスワードの有効期限が切れる日時を指定します。 AT を省略すると ' timestamp ' キーワードを入力すると、パスワードはすぐに期限切れになります。
パスワードを 含める セット AT ' timestamp ' キーワードを使用して、パスワード修正日を指定された時間に設定します。
ストアを 含める 先行 パスワード { 'パスワード' 'タイムスタンプ } [、...] 新しいパスワードとパスワードが設定された時刻を追加します。
ALTER USERコマンドまたは
ALTER ROLEコマンド
のPostgres互換の節については、次のPostgreSQLコアのマニュアルを参照してください。
次のコマンドは、 ALTER USER ... PROFILEコマンドを
使用して、 acctgという名前のプロファイルを
johnという名前のユーザーに関連付けます。
次のコマンドは、 ALTER ROLE ... PROFILEコマンドを
使用して、 acctgという名前のプロファイルを
johnという名前のユーザーに関連付けます。
プロシージャーを呼び出すには
、 CALLステートメントを
使用します。
CALLステートメントを使用するには、
CALLステートメントが呼び出すプロシージャーに対して
EXECUTE特権が必要です。
argument_listは、プロシージャーで必要な引数のカンマ区切りのリストを指定します。
argument_listの各メンバーは、プロシージャーが予期する仮引数に対応することに注意してください。各仮引数は、
INパラメーター、
OUTパラメーター、または
INOUTパラメーターです。
CALL文は、プロシージャによって必要な引数に応じて、いくつかのいずれかの形式を取ることがあります。
COMMENTは、データベースオブジェクトに関するコメントを格納します。コメントを変更するには、同じオブジェクトに対して新しい
COMMENTコマンドを発行します。各オブジェクトには1つのコメント文字列しか格納されません。コメントを削除するには、
テキスト用に空の文字列(空白がない2つの連続した一重引用符)を指定し
ます 。コメントは、オブジェクトがドロップされると自動的に削除されます。
コメントを
付ける table_name 内の列の名前 。テーブル名はスキーマで修飾されていてもかまいません。
COMMITは現在のトランザクションをコミットします。トランザクションによって行われたすべての変更は、他の人にも見えるようになり、クラッシュが発生した場合でも耐久性が保証されます。
注意: plpgsqlプロシージャで
COMMITを
実行すると、ランタイム・スタックにOracleスタイルのSPLプロシージャがある場合はエラーが発生します。
「 データベースディレクトリを初期化 できませんでした」という行に沿ったエラーは、データディレクトリ、フルディスク、またはその他のファイルシステムの問題に対する不十分なアクセス許可に関連している可能性
があります。
CREATE DATABASE LINKは新しいデータベースリンクを作成します。データベース・リンクは、
DELETE 、
INSERT 、
SELECTまたは
UPDATEコマンド内のリモート・データベース内の表またはビューへの参照を可能にするオブジェクトです。データベースリンクは、
SQLコマンドで参照されるテーブルまたはビュー名に
@ dblinkを追加することによって参照され
ます。ここで、
dblinkはデータベースリンクの名前です。
データベースリンクは公開または非公開にすることができます。 パブリック・データベース・リンクは、任意のユーザーが使用することができるものです。
プライベート・データベース・リンクは、データベース・リンクの所有者のみが使用できます。
PUBLICオプションを指定すると、パブリックデータベースリンクが作成されます。省略すると、プライベートデータベースリンクが作成されます。
場合は 、CREATE DATABASE LINKコマンドは、データベース・リンク名を与えられ、与えられた接続属性は
pg_catalog.edb_dblink、名前の
Advanced Serverのシステムテーブルに格納されています。特定のデータベースリンクを使用する場合、このデータベースリンクを定義する
edb_dblinkエントリを含むデータベースを
ローカルデータベースと呼び
ます 。接続属性が
edb_dblinkエントリ内で定義されているサーバーとデータベースは、
リモートデータベースと呼ばれ
ます
ローカル・データベースに接続しながら、データベース・リンクへの参照を含むSQLコマンドを発行する必要があります。 SQLコマンドが実行されると、適切な認証と接続がリモートデータベースに対して行われ、 @ dblink参照が追加されたテーブルまたはビューにアクセスします。
注:データベース・リンクを使用して、スタンバイ・データベース・サーバー内のリモート・データベースにアクセスすることはできません。スタンバイデータベースサーバーは、高可用性、負荷分散、およびレプリケーションに使用されます。
注意: Advanced Server 10では、
CREATE DATABASE LINKコマンドは、Oracleバージョン10gリリース2(10.2)、Oracleバージョン11gリリース2(11.2)、およびOracleバージョン12cリリース1(12.1)で使用するためにテストされ、認証されています。
リモートサーバーへの接続を確立するときに、リンクを使用しているロールに関連付けられているユーザーマッピングをAdvanced Serverが使用するように指定するには、
CURRENT_USERを
インクルードします。
リモートのAdvanced Serverデータベースへの接続として
外部データラッパー postgres_fdwを
指定します。
postgres_fdwがデータベースにインストールされていない場合は、
CREATE EXTENSIONコマンドを使用して
postgres_fdwをインストールします。詳細については、PostgreSQL Coreのドキュメントの
CREATE EXTENSIONコマンドを参照してください。
Advanced Serverを実行しているLinuxホストに
libaioライブラリ(Linux固有の非同期I / O機能)がインストールされている
ことを確認してください 。
libaioのライブラリは、以下のコマンドでインストールすることができます。
どこ バージョンは libclntsh.soライブラリのバージョン番号です。例えば:
リモート
Oracleデータベースへのデータベース・リンクを参照
する SQLコマンドを
実行する場合 、Advanced ServerはOracleインスタント・クライアント・ライブラリがAdvanced Serverホスト上のどこにあるかを知る必要があります。
LD _ _ LIBRARY PATH環境変数には、libclntsh.soファイルを含むOracleクライアントのインストールディレクトリへのパスを含める必要があります。たとえば、 libclntsh.soを含むインストールディレクトリが/ tmp / instantclientであると仮定します。
注意:この
LD _ _
LIBRARY にpg_ctlユーティリティは、Advanced Serverを起動または再起動するために実行されたときに
PATH環境変数の設定が有効でなければなりません。
LD_LIBRARY_PATHは、
enterprisedbユーザーアカウントのホームディレクトリの下の
.bash_profileファイル内で
設定できます(つまり、
file〜enterprisedb / .bash_profile内に
LD_LIBRARY_PATHを設定します)。このようにして、
enterprisedbとしてログインすると、
LD_LIBRARY_PATHが設定されます。
ただし、 systemctlまたは
serviceコマンド
でLinuxサービス・スクリプトを使用して Advanced Serverを起動または再起動している場合は、サービススクリプト内で
LD_LIBRARY_PATHを設定して、スクリプトが
pg_ctlユーティリティーを呼び出すときに有効にする必要があります。
LD_LIBRARY_PATH設定
を含むように変更する必要がある特定のスクリプトファイルは 、Advanced Serverのバージョン、インストールされているLinuxシステム、およびグラフィカルインストーラまたはRPMパッケージと共にインストールされたかどうかによって異なります。
スタートアップ環境に影響を与えるサービススクリプトを調べるには
、適切なバージョンの EDB Postgres Advanced Serverインストールガイドを
参照してください 。インストールガイドは、次の場所にあります。
リモート
Oracleデータベースへのデータベース・リンクを参照
する SQLコマンドを
実行する場合 、Advanced ServerはOracleインスタント・クライアント・ライブラリがAdvanced Serverホスト上のどこにあるかを知る必要があります。
oci.dllファイルを含むOracleクライアントインストールディレクトリを含めるように
、Windows PATHシステム環境変数を
設定します。
代わりに、
postgresqlに oracle _
home構成パラメータの
値を設定できます。
confファイル。
oracle _
home構成パラメータで指定された値は、Windows
PATH環境変数よりも優先されます。
設定するには、 PostgreSQLで
のOracle _
ホーム設定
パラメータを。
confファイルを編集し、次の行を追加してファイルを編集します。
設定後 PATH環境変数または
Oracle _
家庭の構成パラメータを、変更を有効にするには、サーバーを再起動する必要があります。 Windowsサービスコンソールからサーバーを再起動します。
注: tnsnames.oraがフェイルオーバー・モードで構成され、クライアント:サーバーの障害が発生すると、セカンダリ・サーバー(通常はバックアップ・サーバー)とのクライアント接続が確立されます。その後、プライマリサーバーが再開すると、クライアントは新しいセッションが確立されるまでセカンダリサーバーへの接続を保持します。新しいクライアント接続はプライマリサーバと自動的に確立されます。プライマリ・サーバとセカンダリ・サーバが同期していない場合、セカンダリ・サーバへの接続を確立したクライアントと、後でプライマリ・サーバに接続したクライアントが異なるデータベース・ビューを参照する可能性があります。
次の例は、 CREATE DATABASE LINKコマンドを使用して、Advanced Serverのインスタンスをoci-dblink接続を介してOracleサーバーに接続するデータベース・リンク(
chicago )を作成する方法を示しています。接続情報はAdvanced Serverに対して、パスワードが
mypasswordのユーザー
adminとしてOracleにログインするように指示します。
ociオプションを含めると、これはoci-dblink接続であることがAdvanced Serverに伝えられます。接続文字列
'//127.0.0.1/acctg'は、サーバーのアドレスとデータベースの名前を指定します。
次の例は、 CREATE DATABASE LINKコマンドを使用して、
postgres_fdw外部データラッパー接続を介してAdvanced Serverのインスタンスを別のAdvanced Serverインスタンスに接続するデータベースリンク(
bedford )を作成する
方法を示しています。接続情報はAdvanced Serverにパスワードが
mypasswordのユーザー
adminとしてログインするように指示します。
postgres_fdwオプションを含めると、これはpostgres_fdw接続であることがAdvanced Serverに伝えられます。接続文字列
'host = 127.0.0.1 port = 5444 dbname = marketing'は、データベースのサーバーアドレスと名前を指定します。
データベースリンク、
oralinkを使用して、
Oracleデータベースの
empテーブル
に対して SELECTコマンドを
発行します。
ポート5444上で実行されているホスト192.168.2.22にある
edbという名前の
Advanced Serverデータベースに
、 fdwlink というプライベート・データベース・リンクを作成します。username、
enterprisedbおよびpasswordというパスワードで
Advanced Serverデータベースに接続し
ます 。
Advanced Serverデータベースの
deptテーブルを使用して、
Oracleデータベースの
empテーブルの
結合を実行します。
プッシュダウンとは、SQLステートメントが発行されたローカル・クライアントではなく、外部(すなわち、リモート)サーバーでの処理の発生を指します。プッシュダウンは、データがローカル・クライアントに戻される前にリモート・サーバーで処理されるため、パフォーマンスが向上します。
詳細については 、EXPLAINコマンドにてPostgreSQLのコアのドキュメントを参照してください。
注意:この項で説明する手順は、Oracleデータベースと互換性がありません。
• |
で指定した名前 CREATE FOREIGN TABLEコマンドの最後に サーバー句は pg_foreign_server上のクエリから SRVNAME列に表示されているように、この例で oralinkされる外部サーバの名前です。 |
• |
CREATE FOREIGN TABLEコマンドで 指定された列名は、リモート表の列名と一致する必要があります。 |
• |
一般に、 CONSTRAINT節は、リモート表で定義されていると見なされるため、外部表で受け入れられたり強制されたりしないことがあります。 |
詳細については FOREIGN CREATE TABLEコマンドを、でPostgreSQLのコアのドキュメントを参照してください。
注意:下位互換性の理由から、
USING postgres_fdwではなく、
USING libpqを書くことは可能です。しかし、
libpqコネクタには、
postgres_fdwコネクタに存在する多くの重要な最適化がありません。したがって、
postgres_fdwコネクタは可能な限り使用する必要があります。
libpqオプションは廃止され、将来のAdvanced Serverリリースでは完全に削除される可能性があります。
CREATE DIRECTORYコマンドは、ファイルシステムディレクトリのパス名のエイリアスを作成します。このコマンドを使用するには、データベースのスーパーユーザーでなければなりません。
エイリアス名で表される完全修飾ディレクトリパス。 CREATE DIRECTORYコマンドは、オペレーティングシステムのディレクトリを作成しません。物理ディレクトリは、適切なオペレーティングシステムコマンドを使用して個別に作成する必要があります。
ディレクトリを使用してファイルを作成および/または読み取るために
UTL_FILEパッケージを使用する場合は、
オペレーティング・システムのユーザーID enterprisedbに、ディレクトリに対する適切な読取り権限および/または書込み権限が
必要です。
ディレクトリエイリアスを削除するには
、 DROP DIRECTORYコマンドを使用します。ディレクトリエイリアスが削除されると、対応する物理ファイルシステムディレクトリは影響を受けません。ファイルシステムディレクトリは、適切なオペレーティングシステムコマンドを使用して削除する必要があります。
Windowsでは、
C:¥TEMP¥EMPDIRディレクトリの
別名 empdirを
作成します。
| ROWSは _ 行の 結果
| SET 構成 _ パラメーター
{TO 値 | = 値 | FROM CURRENT}
...]
{IS | AS}
CREATE FUNCTIONは新しい関数を定義します。
CREATE OR REPLACE FUNCTIONは、新しい関数を作成するか、既存の定義を置き換えます。
既存の関数の定義を更新するには、 CREATE OR REPLACE FUNCTIONを 使用します 。この方法で関数の名前や引数の型を変更することはできません(試した場合は、実際には別個の関数を作成することになります)。また、
CREATE OR REPLACE FUNCTIONでは、既存の関数の戻り値の型を変更することはできません。これを行うには、関数を削除して再作成する必要があります。また、
OUTパラメーターを使用する場合は、その関数をドロップすることを除いて、
OUTパラメーターのタイプを変更することはできません。
宣言 は、変数、カーソル、型、または副プログラムの宣言です。サブプログラム宣言が含まれている場合は、他のすべての変数宣言、カーソル宣言、および型宣言の後に宣言する必要があります。
ステートメント は SPL プログラムステートメントです( BEGIN - END ブロックには EXCEPTIONセクション
が含まれる場合があります )。
IMMUTABLE は、関数
がデータベースを変更できず、同じ引数値が与えられたときに常に同じ結果に達することを示します。データベース参照を行わず、引数リストに直接存在しない情報を使用しません。この句を含める と、すべて定数の引数を持つ関数の
呼び出しを すぐに関数の
値 に置き換えることができ ます。
STABLE は、関数
がデータベースを変更できない ことを示し 、単一の表スキャン内では、同じ引き数値に対して同じ結果を一貫して戻しますが、結果はSQLステートメント全体で変更される可能性があることを示します。これは、 データベースルックアップ、パラメータ変数(現在のタイムゾーンなど)に依存する関数
の適切な選択です 。
VOLATILE は 、単一のテーブル・スキャン内でも関数
値が変更できることを 示している ため、最適化は行えません。副作用のある関数は、呼び出しが最適化されないように、結果がかなり予測可能であっても、揮発性に分類されなければならないことに注意してください。
DETERMINISTICは
IMMUTABLEの同義語です。
DETERMINISTIC関数
はデータベースを変更することはできず、同じ引き数を指定すると常に同じ結果になります。データベース参照を行わず、引数リストに直接存在しない情報を使用しません。この句を含めると、すべて定数の引数を持つ関数の呼び出しをすぐに関数の値に置き換えることができます。
漏れ止め 関数には副作用がなく、関数の呼び出しに使用された値に関する情報は表示されません 。
呼び出される に ヌル INPUT (デフォルト)は、引数の一部が NULLの 場合にプロシージャが正常に呼び出されることを示し ます 。 必要に応じ て NULL 値 をチェックし、 適切に応答するの は作者の責任 です。
戻り値 ヌル に ヌル INPUT または STRICT は 、その引数のいずれか が NULL の場合は必ずプロシージャが NULL を返すことを示し ます 。これらの句が指定されている場合、 NULL 引数 がある場合はプロシージャは実行されません 。代わりに NULL という結果が自動的想定されます。
セキュリティ DEFINER は、関数を作成したユーザーの権限で関数が実行されることを指定します。これがデフォルトです。キーワード EXTERNAL はSQL準拠には使用できますが、オプションです。
SECURITY INVOKER 句は、関数を呼び出すユーザーの権限で関数が実行されることを示します。キーワード EXTERNAL はSQL準拠には使用できますが、オプションです。
AUTHID DEFINER 句は、 [EXTERNAL]の 同義語です 。 セキュリティ DEFINER 。 AUTHID 句が省略された 場合 、または AUTHID 場合 DEFINER が指定されている場合、関数所有者の権限を使用してデータベース・オブジェクトへのアクセス権限が決定されます。
AUTHID CURRENT_USER 句は、 [EXTERNAL]の 同義語です 。 セキュリティ INVOKER 。 AUTHIDの 場合 CURRENT_USER が指定されている場合、その関数を実行している現行ユーザーの権限を使用してアクセス特権が判別されます。
PARALLEL 句は、並列逐次走査(パラレルモード)の使用を可能にします。 並列逐次スキャンは、逐次逐次スキャンとは対照的に、クエリ中に複数のワーカーを使用してリレーションを並行してスキャンします。
UNSAFE に 設定すると 、パラレルモードでは実行できません。このような関数がSQL文に存在すると、実行計画が強制的に実行されます。これは、 PARALLEL 句が省略された 場合のデフォルト設定です 。
RESTRICTED に 設定すると 、この関数はパラレルモードで実行できますが、実行はパラレルグループリーダーに制限されます。特定の関係の資格に並行制限があるものがあれば、その関係は並列性のために選択されません。
SAFE に 設定すると 、パラレルモードで機能を制限なく実行できます。
実行 _ コスト は、 CPUの _ 演算子 _ コストの 単位で 、関数の
推定実行コストを示す正の数 です。機能
の場合 セットを返します。返される行あたりのコストです。値を大きくすると、プランナは関数の
評価を回避しようとします
必要以上に頻繁に。
result _ rows は、プランナが関数
を予想する行の推定数を示す正の数です。
復帰する。これは、関数
セットを返すように宣言されています。デフォルトの仮定は1000行です。
SET 設定 _ パラメータ {TO 値 | = 値 | FROM CURRENT}
SET 句は、場合関数指定された構成パラメータが指定された値に設定させます 関数が入力されると、その値に戻されます 終了します。 セット から CURRENT は、セッションの現在のパラメータ値を、関数の実行時に適用される値として保存します 入力されます。
場合は SET 句は、関数
、SETの後、効果 に取り付けられています。 関数
内で実行される LOCAL コマンド 同じ変数に対しては関数に
制限されています
。構成パラメータの以前の値が関数
で復元される 出口。 (LOCALなし ) 通常の SET コマンドは 、前の SET のために行うだろう限り、SET句を 上書きします 現在のトランザクションがロールバックされない限り、プロシージャの終了後にそのようなコマンドの効果が持続する LOCAL コマンド。
注: STRICT 、
LEAKPROOF 、
PARALLEL 、
COST 、
ROWSおよび
SETキーワードはAdvanced Serverの拡張機能を提供し、Oracleではサポートされていません。
関数 emp_compは、2つの数値を入力として取り、計算値を返します。
SELECTコマンドは、関数の使用方法を示します。
関数 sal_rangeは、給与が指定された範囲内にある従業員の数のカウントを返します。次の無名ブロックは、引数の最初の2つの呼び出しのデフォルト値を使用して関数を何度も呼び出します。
渡された入力パラメーターが NULLの 場合 、サーバーに NULL を戻すように指示 する STRICT キーワードを 組み込み ます 。 NULL 値 が渡された 場合 、この関数は実行されません。
DEPT _ 給与の 関数は、関数を呼び出している役割の権限で実行されます。 現在のユーザーに 、 (従業員の給与を表示 するために) emp 表を 照会する SELECT ステートメント を実行するための十分な特権がない場合、 関数はエラーを報告します。関数を定義したロールに関連付けられた権限を使用するようにサーバーに指示するには、 AUTHID AUTHIDを 持つ CURRENT _ USER 節 DEFINER 句。
CREATE INDEXは、指定された表の索引
nameを構成します。索引は主にデータベースのパフォーマンスを向上させるために使用されます(不適切な使用はパフォーマンスが低下します)。
作成 _ _ MV リフレッシュは 次 のように なります。
CREATE MATERIALIZED VIEWは、クエリでビューが参照されるたびに更新されないクエリのビューを定義します。デフォルトでは、ビューが作成されるとビューに値が設定されます。
BUILD DEFERREDキーワードを含めると、ビューの作成を遅らせることができます。
ビューの内容を指定
する SELECTステートメント。有効な照会の詳細については、
SELECTを参照してください。
含めるビューを移入する必要があるときに指定する
build_clauseを 。
BUILD IMMEDIATEまたは
BUILD DEFERREDを指定する:
• |
BUILD IMMEDIATEは、ビューに直ちにデータを設定するようにサーバーに指示します。これがデフォルト動作です。 |
• |
BUILD DEFERREDは、後で( REFRESH操作中に)ビューを移入するようにサーバーに指示します。 |
マテリアライズド・ビューの内容をいつ更新するかを指定するには
、 create_mv_refresh句を
含めます 。この節には、
REFRESHキーワードの後に
COMPLETEおよび/または
ON DEMANDが続きます。
• |
COMPLETEは、現行のコンテンツを破棄し、マテリアライズド・ビューをリフレッシュするときにビューの定義問合せを実行して、マテリアライズド・ビューをリロードするようにサーバーに指示します。 |
• |
ON DEMANDは、 DBMS _ MVIEWパッケージを呼び出すか、Postgres REFRESH MATERIALIZED VIEW文を呼び出すことによって、オンデマンドでマテリアライズド・ビューをリフレッシュするようサーバーに指示します。これがデフォルト動作です。
|
Postgres REFRESH MATERIALIZED VIEW コマンドの詳細については、以下のPostgreSQLコアドキュメントを参照してください。
CREATE PACKAGEは新しいパッケージ仕様を定義します。
CREATE OR REPLACE PACKAGEは新しいパッケージ仕様を作成するか、既存の仕様を置き換えます。
パッケージ所有者( DEFINER )の権限またはパッケージ内のプログラムを実行している現行ユーザーの権限(
CURRENT_USER )を使用して、パッケージで参照されるデータベース・オブジェクトへのアクセスが許可されているかどうかを指定します。
DEFINERがデフォルトです。
DETERMINISTICは
IMMUTABLEの同義語です
。 DETERMINISTIC プロシージャーはデータベースを変更することはできず、同じ引き数値が与えられたときに常に同じ結果になります。データベース参照を行わず、引数リストに直接存在しない情報を使用しません。この句をインクルードすると、すべて定数の引数を持つプロシージャの呼び出しをすぐにプロシージャの値に置き換えることができます。
パッケージの仕様 empinfoには、パブリック変数、パブリック・プロシージャ、パブリック関数の3つのパブリック・コンポーネントが含まれています。
CREATE PACKAGE BODYは新しいパッケージ本体を定義します。
CREATE OR REPLACE PACKAGE BODYは、新しいパッケージ本体を作成するか、既存の本体を置き換えます。
STRICTキーワードは、NULL引数で呼び出された場合、関数が実行されないことを指定します。 代わりに関数は NULL を返し ます 。
漏れ防止のキーワードは、関数が戻り値を介する以外の引数、についての情報を明らかにしないことを指定します。
PARALLEL 句は、並列逐次走査(パラレルモード)の使用を可能にします。 並列逐次スキャンは、逐次逐次スキャンとは対照的に、クエリ中に複数のワーカーを使用してリレーションを並行してスキャンします。
UNSAFE に 設定する と、プロシージャまたはファンクションをパラレルモードで実行できません。このようなプロシージャまたはファンクションが存在すると、連続した実行計画が強制されます。これは、 PARALLEL 句が省略された 場合のデフォルト設定です 。
RESTRICTED に 設定する と、プロシージャまたはファンクションはパラレル・モードで実行できますが、実行はパラレル・グループ・リーダに制限されます。特定の関係の資格に並行制限があるものがあれば、その関係は並列性のために選択されません。
SAFE に 設定されている場合 、手続きまたは関数は制限なしでパラレルモードで実行できます。
execution_costは、
cpu_operator_costの単位で関数の推定実行コストを示す正の数を指定します。関数がセットを返す場合、これは返される行あたりのコストです。デフォルトは
0.0025です。
PRAGMA AUTONOMOUS_TRANSACTIONは、機能またはプロシージャを自律型トランザクションとして設定するため
のプラグマです。
宣言には、変数、型、 REF CURSOR 、またはサブプログラム
の宣言が含まれます 。
サブプログラム宣言が含まれている場合は、他のすべての変数、型、および REF CURSOR 宣言の 後に宣言する必要があり ます 。
DETERMINISTICを
インクルードして 、同じ引数値が指定されたときに関数が常に同じ結果を返すように指定します。
DETERMINISTIC関数は、データベースを変更してはいけません。
注: DETERMINISTICキーワードは、PostgreSQLの
IMMUTABLEオプションと同等です。
注:パッケージ本体のパブリック関数に
DETERMINISTICが指定されている
場合は、パッケージ仕様の関数宣言にも指定する必要があります。プライベート関数の場合、パッケージ仕様に関数宣言はありません。
SPLプログラム文です。パッケージ初期化セクションのステートメントは、パッケージが初めて参照されたときにセッションごとに1回実行されます。
注: STRICT 、
LEAKPROOF 、
PARALLEL 、
COST 、
ROWSおよび
SETキーワードはAdvanced Serverの拡張機能を提供し、Oracleではサポートされていません。
| ROWSは _ 行の 結果
| SET 構成 _ パラメーター
{TO 値 | = 値 | FROM CURRENT}
...]
{IS | AS}
CREATE PROCEDUREは、新しいストアド・プロシージャーを定義します。
CREATE OR REPLACE PROCEDUREは、新しいプロシージャを作成するか、既存の定義を置き換えます。
既存のプロシージャーの定義を更新するには、 CREATE OR REPLACE PROCEDUREを 使用します 。このようにプロシージャの名前または引数の型を変更することはできません(試した場合は、実際には新しいプロシージャを作成することになります)。
OUTパラメーターを使用する場合は、プロシージャーをドロップすることを除いて、
OUTパラメーターのタイプを変更することはできません。
宣言 は、変数、カーソル、型、または副プログラムの宣言です。サブプログラム宣言が含まれている場合は、他のすべての変数宣言、カーソル宣言、および型宣言の後に宣言する必要があります。
ステートメント は SPL プログラムステートメントです( BEGIN - END ブロックには EXCEPTIONセクション
が含まれる場合があります )。
IMMUTABLE は、プロシージャーがデータベースを変更できず、同じ引き数値が与えられたときに常に同じ結果に達することを示します。データベース参照を行わず、引数リストに直接存在しない情報を使用しません。この句をインクルードすると、すべて定数の引数を持つプロシージャの呼び出しをすぐにプロシージャの値に置き換えることができます。
STABLE は、プロシージャーがデータベースを変更できず、単一の表スキャン内で、同じ引き数値に対して同じ結果を一貫して戻しますが、結果がSQLステートメントで変更される可能性があることを示します。これは、データベースルックアップ、パラメータ変数(現在のタイムゾーンなど)に依存するプロシージャの適切な選択です。
VOLATILE は、単一の表スキャン内でもプロシージャ値が変更可能であるため、最適化を実行できないことを示します。副作用のある関数は、呼び出しが最適化されないように、結果がかなり予測可能であっても、揮発性に分類されなければならないことに注意してください。
DETERMINISTICは
IMMUTABLEの同義語です
。 DETERMINISTIC プロシージャーはデータベースを変更することはできず、同じ引き数値が与えられたときに常に同じ結果になります。データベース参照を行わず、引数リストに直接存在しない情報を使用しません。この句をインクルードすると、すべて定数の引数を持つプロシージャの呼び出しをすぐにプロシージャの値に置き換えることができます。
漏れ防止の 手順は、副作用がなく、プロシージャを呼び出すために使用される値に関する情報を明らかにしません。
呼び出される に ヌル INPUT (デフォルト)は、引数の一部が NULLの 場合にプロシージャが正常に呼び出されることを示し ます 。 必要に応じ て NULL 値 をチェックし、 適切に応答するの は作者の責任 です。
戻り値 ヌル に ヌル INPUT または STRICT は 、その引数のいずれか が NULL の場合は必ずプロシージャが NULL を返すことを示し ます 。これらの句が指定されている場合、 NULL 引数 がある場合はプロシージャは実行されません 。代わりに NULL という結果が自動的想定されます。
セキュリティ DEFINER は、プロシージャを作成したユーザーの権限でプロシージャを実行するように指定します。これがデフォルトです。キーワード EXTERNAL はSQL準拠には使用できますが、オプションです。
SECURITY INVOKER 句は、プロシージャがそれを呼び出すユーザの権限で実行されることを示します。キーワード EXTERNAL はSQL準拠には使用できますが、オプションです。
AUTHID DEFINER 句は、 [EXTERNAL]の 同義語です 。 セキュリティ DEFINER 。 AUTHID 句が省略された 場合 、または AUTHID 場合 DEFINER が指定されている場合は、プロシージャ所有者の権限を使用してデータベース・オブジェクトへのアクセス権限が決定されます。
AUTHID CURRENT_USER 句は、 [EXTERNAL]の 同義語です 。 セキュリティ INVOKER 。 AUTHIDの 場合 CURRENT_USER が指定されている場合、プロシージャを実行している現行ユーザーの権限を使用してアクセス権限が決定されます。
PARALLEL 句は、並列逐次走査(パラレルモード)の使用を可能にします。 並列逐次スキャンは、逐次逐次スキャンとは対照的に、クエリ中に複数のワーカーを使用してリレーションを並行してスキャンします。
UNSAFE に 設定すると 、パラレルモードでは実行できません。このようなプロシージャが存在すると、シリアル実行プランが強制されます。これは、 PARALLEL 句が省略された 場合のデフォルト設定です 。
RESTRICTED に 設定する と、プロシージャはパラレルモードで実行できますが、実行はパラレルグループリーダーに制限されます。特定の関係の資格に並行制限があるものがあれば、その関係は並列性のために選択されません。
SAFE に 設定されている場合 、プロシージャは制限なしでパラレルモードで実行できます。
実行 _ コストは、CPU _ オペレータ _ コスト の単位で手順の推定実行コストを与える正の数です 。プロシージャーがセットを戻す場合、これは戻された行あたりのコストです。値を大きくすると、プランナは必要以上に機能を評価しないようにします。
result _ rows は、プランナがプロシージャが返すと予想する行の推定数を示す正の数です。これは、プロシージャがセットを返すと宣言されている場合にのみ許可されます。デフォルトの仮定は1000行です。
SET 設定 _ パラメータ {TO 値 | = 値 | FROM CURRENT}
SET 句は、指定された設定パラメータは、手順が入力されると、指定された値に設定され、その前の値場合の処理手順が終了に復帰させます。 セット から CURRENT は、プロシージャーに入ったときに適用される値として、セッションの現行のパラメーター値を 保管 します。
場合 SET の SET 句は、プロシージャに装着され、その後、効果 同じ変数のプロシージャー内で実行される LOCAL コマンドは、プロシージャーに限定されています。プロシージャ出口で構成パラメータの事前値がリストアされます。 (LOCALなし ) 通常の SET コマンドは 、前の SET のために行うだろう限り、SET句を 上書きします 現在のトランザクションがロールバックされない限り、プロシージャの終了後にそのようなコマンドの効果が持続する LOCAL コマンド。
注: STRICT 、
LEAKPROOF 、
PARALLEL 、
COST 、
ROWSおよび
SETキーワードはAdvanced Serverの拡張機能を提供し、Oracleではサポートされていません。
注: IMMUTABLE、STABLE、STRICT、 漏れ防止 、
コスト 、ROWSおよび
PARALLEL {UNSAFE |制限された| SAFE}属性は、EDB SPLプロシージャーでのみサポートされています。
注意:デフォルトでは、ストアドプロシージャは
セキュリティディレクタとして作成されます。 plpgsqlで定義されたストアド・プロシージャは、
SECURITY INVOKERSとして作成されます。
次のプロシージャは、 IN OUTおよび
OUT引数を使用して、最初に指定した従業員番号を使用した検索に基づいて従業員の番号、名前、およびジョブを戻し、見つからない場合は指定された名前を使用します。無名ブロックが手続きを呼び出します。
次の例は、プロシージャ宣言で
AUTHID DEFINERおよび
SET句
を使用する方法を示しています。
更新 _ 給与の 手順は(手順の実行中)プロシージャを呼び出している役割に手順を定義したロールの権限を伝えます :
プロシージャの検索パスを public に、ワークメモリを 1MB に設定するに は、 SET 句を 含めます 。他のプロシージャ、関数、およびオブジェクトは、これらの設定の影響を受けません。
この例では、 AUTHID DEFINER 句は、プロシージャ内の文の実行を許可されないロールに一時的に権限を付与します。プロシージャを呼び出すロールに関連付けられた権限を使用するようにサーバーに指示するには、 AUTHID AUTHIDを 持つ DEFINER 句 CURRENT _ USER 節。
CREATE PROFILE は新しいプロファイルを作成します。 Advanced Serverによって実行されるルールを指定するには 、 LIMIT 句と1つ以上のスペース区切り パラメータ / 値の ペアを 含め ます。
Advanced Serverは DEFAULT という名前のデフォルトプロファイルを作成します 。
CREATE ROLEコマンドを使用して新しいロールを作成すると、新しいロールは自動的に
DEFAULTプロファイルに関連付けられます。
以前のバージョンのAdvanced ServerからAdvanced Server 10にアップグレードすると、アップグレードプロセスによって、アップグレードされたバージョンのロールが DEFAULT プロファイルに 自動的に作成され ます。
Advanced Serverによって実行されるルールを指定するには 、 LIMIT 句と1つ以上のスペース区切り パラメータ / 値の ペアを 含め ます。
ルールによって監視されるパスワード属性。
パラメータは、 アクションの前に到達しなければならない 値は、 サーバーで使用されています。
FAILED_LOGIN_ATTEMPTSは、サーバーが
PASSWORD_LOCK_TIMEで指定された時間、アカウントからユーザーをロックする前に、ユーザーが失敗したログイン試行の回数を指定します。サポートされる値は次のとおりです。
• |
DEFAULT - DEFAULT プロファイルで 指定された FAILED_LOGIN_ATTEMPTS の値 。 |
• |
無制限 - 接続しているユーザーは、失敗したログイン試行回数を無制限にすることがあります。 |
PASSWORD_LOCK_TIME は、サーバーが FAILED_LOGIN_ATTEMPTSの ためにロックされたアカウントのロックを解除するまでの時間を指定します 。サポートされる値は次のとおりです。
• |
0以上 の 数値 。 1日の小数部分を指定するには、小数値を指定します。たとえば、値 4.5を使用して 4日 12時間を指定します。 |
• |
DEFAULT - DEFAULTプロファイルで指定された PASSWORD_LOCK_TIMEの値。 |
• |
無制限 -アカウントはデータベーススーパーユーザーによって手動でロック解除されるまでロックされます。 |
PASSWORD_LIFE_TIMEは、ユーザーに新しいパスワードを入力する前に現在のパスワードを使用する日数を指定します。
PASSWORD _
LIFE _
TIME句を使用する場合は、
PASSWORD _
GRACE _
TIME句を含めて、ロールによる接続が拒否されるまでにパスワードが期限切れになってから経過する日数を指定します。
PASSWORD _
GRACE _
TIMEが指定されていない場合、パスワードは
PASSWORD _
GRACE _
TIMEのデフォルト値で指定された日に期限切れになり、ユーザーは新しいパスワードが提供されるまでコマンドを実行できなくなります。サポートされる値は次のとおりです。
• |
0 以上 の 数値 。 1日の小数部分を指定するには、小数値を指定します。たとえば、値 4.5を使用して 4日 12時間を指定します。 |
• |
DEFAULT - DEFAULT プロファイルで 指定された PASSWORD_LIFE_TIME の値 。 |
PASSWORD_GRACE_TIME パスワードが期限切れになった後、ユーザがパスワードを変更するまでの猶予期間の長さを示します。猶予期間が切れると、ユーザーは接続を許可されますが、期限切れのパスワードを更新するまでコマンドを実行することはできません 。サポートされる値は次のとおりです。
• |
0 以上 の 数値 。 1日の小数部分を指定するには、小数値を指定します。たとえば、値 4.5を使用して 4日 12時間を指定します。 |
• |
DEFAULT - DEFAULT プロファイルで 指定された PASSWORD_GRACE_TIME の値 。 |
PASSWORD_REUSE_TIMEは
、ユーザーがパスワードを
再使用する
まで待機する日数を指定
します。
PASSWORD _
REUSE _
TIMEと
PASSWORD _
REUSE _
MAXパラメーターは、一緒に使用するためのものです。これらのパラメータの1つに有限値を指定し、他のパラメータを
無制限に指定すると 、古いパスワードを決して再利用することはできません。両方のパラメータが
UNLIMITEDに設定されている場合は、パスワードの再利用に制限はありません。サポートされる値は次のとおりです。
• |
0 以上 の 数値 。 1日の小数部分を指定するには、小数値を指定します。たとえば、値 4.5を使用して 4日 12時間を指定します。 |
• |
DEFAULT - DEFAULT プロファイルで 指定された PASSWORD_REUSE_TIME の値 。 |
• |
無制限 - パスワードは制限なしで再利用できます。 |
PASSWORD_REUSE_MAXは
、パスワードを再利用できるようにするために必要なパスワードの変更回数を指定
します。 PASSWORD _
REUSE _
TIMEと
PASSWORD _
REUSE _
MAXパラメーターは、一緒に使用するためのものです。これらのパラメータの1つに有限値を指定し、他のパラメータを
無制限に指定すると 、古いパスワードを決して再利用することはできません。両方のパラメータが
UNLIMITEDに設定されている場合は、パスワードの再利用に制限はありません。サポートされる値は次のとおりです。
• |
DEFAULT - DEFAULT プロファイルで 指定された PASSWORD_REUSE_MAX の値 。 |
•
|
無制限 - パスワードは制限なしで再利用できます。 |
• |
DEFAULT - DEFAULT プロファイルで 指定された PASSWORD_VERIFY_FUNCTION の値 。 |
プロファイルを削除するには、
DROP PROFILEコマンドを
使用します。
次のコマンドは、 accts という名前のプロファイルを作成します 。このプロファイルでは、パスワードを最後に使用してから180日以内にユーザーがパスワードを再使用できないように指定しています。パスワードを再使用する前に少なくとも5回パスワードを変更する必要があります。
CREATEを 使用 新しいキューを定義するための QUEUE :
CREATE QUEUE name QUEUE TABLE キュー _ テーブル _ 名前 [({ オプション _ 名前 オプション _ 値 } [、...])]
どこ オプション _ 名 と対応する option_valueを することができます:
CREATE QUEUEコマンドは、データベースのスーパーユーザまたはシステム定義の水溶液現在のデータベースに新しいキューを作成するには、 管理者 _ _ 役割権限を持つすべてのユーザーに許可します。
キューを削除するには、
DROP QUEUEを
使用します。
|
Specify normal _ queue to indicate that the queue is a normal queue, or exception _ queue to indicate that the queue is an exception queue. An exception queue will only accept dequeue operations. |
|
value that specifies the maximum number of attempts to remove a message from a queue. An INTEGER value that specifies the maximum number of attempts to remove a message from a queue. |
|
A DOUBLE that the server will wait before retrying a message. value that specifies the number of seconds after a ROLLBACK value that specifies the number of seconds after a PRECISION value that specifies the number of seconds after a that the server will wait before retrying a message. |
|
A DOUBLE value that specifies the number of seconds that a message will be saved in the queue table after dequeueing. PRECISION value that specifies the number of seconds that a message will be saved in the queue table after dequeueing. |
CREATE QUEUEを 使用する 新しいキューテーブルを定義する TABLE :
どこで option _ nameおよび対応するoption_value
は次のいずれかです。
|
|
|
|
|
|
|
|
|
TABLESPACE tablespace _ name , PCTFREE integer, PCTUSED integer, INITRANS integer, MAXTRANS integer, STORAGE storage_option
Where storage _ option is one or more of the following:
MINEXTENTS integer, MAXEXTENTS integer, PCTINCREASE integer, INITIAL size _ clause , NEXT, FREELISTS integer, OPTIMAL size _ clause , BUFFER_POOL {KEEP|RECYCLE|DEFAULT}. TABLESPACE option is enforced; all others are accepted for compatibility and ignored. Use the Please note that only the option is enforced; all others are accepted for compatibility and ignored. Use the Please note that only the option is enforced; all others are accepted for compatibility and ignored. Use the TABLESPACE clause to specify the name of a tablespace in which the table will be created. option is enforced; all others are accepted for compatibility and ignored. Use the clause to specify the name of a tablespace in which the table will be created.
|
QUEUE表を作成する スーパーユーザーまたは 水溶液 を持つユーザ _ _ 管理者の 役割の 権限が新しいキュー表を作成する ことができます 。
CREATE QUEUE TABLE への呼び出しにスキーマ名が含まれている
場合は 、指定されたスキーマにキュー表が作成されます。スキーマ名が指定されていない場合は、新しいキュー表が現行スキーマに作成されます。
|
option to control the dequeueing order of the queue; specify the names of the column(s) that will be used to sort the queue (in ascending order). The currently accepted values are the following combinations of Use the SORT _ LIST option to control the dequeueing order of the queue; specify the names of the column(s) that will be used to sort the queue (in ascending order). The currently accepted values are the following combinations of Use the option to control the dequeueing order of the queue; specify the names of the column(s) that will be used to sort the queue (in ascending order). The currently accepted values are the following combinations of enq _ time and priority :
|
|
A BOOLEAN value that indicates if a message can have more than one consumer ( TRUE ), or are limited to one consumer per message ( FALSE ). |
|
to indicate that each message should be dequeued individually, or none to indicate that each message should be dequeued individually, or Specify to indicate that each message should be dequeued individually, or transactional to indicate that messages that are added to the queue as a result of one transaction should be dequeued as a group. transactional to indicate that messages that are added to the queue as a result of one transaction should be dequeued as a group. |
|
STORAGE _ CLAUSE to specify table attributes. Use to specify table attributes. STORAGE _ CLAUSE may be TABLESPACE tablespace _ name , PCTFREE integer, PCTUSED integer, INITRANS integer, MAXTRANS integer, STORAGE storage_option
Where storage _ option is one or more of the following:
MINEXTENTS integer, MAXEXTENTS integer, PCTINCREASE integer, INITIAL size _ clause , NEXT, FREELISTS integer, OPTIMAL size _ clause , BUFFER_POOL {KEEP|RECYCLE|DEFAULT}. TABLESPACE option is enforced; all others are accepted for compatibility and ignored. Use the Please note that only the option is enforced; all others are accepted for compatibility and ignored. Use the Please note that only the option is enforced; all others are accepted for compatibility and ignored. Use the TABLESPACE clause to specify the name of a tablespace in which the table will be created. option is enforced; all others are accepted for compatibility and ignored. Use the clause to specify the name of a tablespace in which the table will be created.
|
CREATE ROLEは、
Advanced Serverデータベース・クラスタに新しいロールを追加します。ロールは、データベースオブジェクトを所有し、データベース権限を持つことができるエンティティです。役割は、その使用方法に応じて、「ユーザー」、「グループ」、またはその両方とみなすことができます。新しく作成されたロールは
LOGIN属性を持たないため、セッションを開始するために使用することはできません。役割の
ログイン権を付与するには、
ALTER ROLEコマンドを使用します。
CREATE ROLEコマンドを使用するには、
CREATEROLE特権が必要
です 。
場合 IDENTIFIED BY句
が指定されている
、CREATE ROLEコマンドもが所有するスキーマを作成し、新しく作成された役割と同じ名前を持ちます。
ロールの属性を変更
するには ALTER ROLEを
使用し 、
ロールを削除するには
DROP ROLEを使用します。
CREATE ROLEで指定された属性は、後の
ALTER ROLEコマンドで変更できます。
使用 GRANTを追加およびグループとして使用されている役割のメンバーを削除する
REVOKE。
CREATE SCHEMAコマンドの
このバリエーションは、 usernameが所有する新しいスキーマを作成し、1つ以上のオブジェクトで作成されます。スキーマとオブジェクトの作成は、単一のトランザクション内で行われるため、すべてのオブジェクトが作成されるか、スキーマを含めて作成されません。 (
ご注意 :Oracleデータベースを使用している場合は、新しいスキーマが作成されていない-
ユーザ名 、およびそのためのスキーマを、事前に存在している必要があります。)
CREATE SCHEMAには、スキーマ内にオブジェクトを作成するためのサブコマンドが含まれています。サブコマンドは、スキーマの作成後に発行される別々のコマンドと本質的に同じように扱われます。作成されたすべてのオブジェクトは、指定されたユーザーが所有します。
新しいスキーマを所有するユーザーの名前。スキーマの名前は username と同じになり ます 。スーパーユーザーだけが自分以外のユーザーが所有するスキーマを作成することができます。 (
ご注意 :Advanced Serverには役割は、
ユーザー名は 、すでに存在している必要がありますが、スキーマが存在してはならない
オラクルでは、ユーザが(同等に、スキーマ)が存在している必要があります。)
スキーマ内で作成されるオブジェクトを定義
する SQLステートメント。
CREATE TABLE 、
CREATE VIEW 、および
GRANTは、
CREATE SCHEMA内の句として受け入れられます。スキーマの作成後、別の種類のオブジェクトが別々のコマンドで作成されることがあります。
Advanced Server、Oracle データベースとの互換性はありませんCREATE SCHEMAコマンドの他の形式があります。
CREATE SEQUENCE は新しいシーケンス番号ジェネレータを作成します。これには、名前、 名前の 新しい特別な単一行テーブルの作成と初期化が含まれます 。ジェネレータは、コマンドを発行したユーザが所有します。
オプションの節 INCREMENT によって increment は、現在のシーケンス値に追加する値を指定して新しい値を作成します。正の値は昇順のシーケンスを、負の値は降順のシーケンスを作成します。デフォルト値は1です。
オプションの節 MINVALUE minvalue は、シーケンスが生成できる最小値を決定します。この節が指定されていない場合、デフォルトが使用されます。 昇順と降順のそれぞれ のデフォルトは1と-2 63 -1です。キーワード NOMINVALUEを 使用して、この動作をデフォルトに設定することができます。
オプション節 MAXVALUE maxvalue は、シーケンスの最大値を決定します。この句を指定しないと、デフォルト値が使用されます。 昇順および降順のそれぞれ のデフォルトは2 63 -1および-1です。キーワード NOMAXVALUEを 使用して、この動作をデフォルトに設定できます。
オプション節 START WITH start は、シーケンスがどこからでも 開始 できるようにします。デフォルトの開始値は 、昇順シーケンスと ものを降順ため MAXVALUE ため MINVALUE です 。
オプションの CACHE 節 キャッシュ は、より早くアクセスできるように、事前割り当てされ、メモリに格納されるシーケンス番号の数を指定します。最小値は1です(一度に生成できる値は NOCACHEのみです )。これもデフォルトです。
MAXVALUE または MINVALUEが 昇順で到達したか、それぞれ降順された 際に CYCLE オプションは、シーケンスがラップアラウンドすることができます 。 限界に達した場合、生成された次の番号は、それぞれ、MINVALUE または MAXVALUE であろう 。
場合 CYCLEは (デフォルト)省略され、シーケンスの後
NEXTVALへの呼び出しは、その最大値はエラーを返します達しています。キーワード
NO CYCLEを使用してデフォルトの動作を得ることができますが、この用語は
Oracleデータベースと互換性がありません。
複数のセッションで同時に使用されるシーケンスオブジェクトに1より大きい
キャッシュ設定を使用すると、
予期しない結果が得られることがあります。各セッションは、シーケンスオブジェクトへの1回のアクセス中に連続したシーケンス値を割り当ててキャッシュし、それに応じてシーケンスオブジェクトの最終値を増加させます。次に、そのセッション内の次の
キャッシュ -1の
NEXTVALの使用は、シーケンスオブジェクトに触れることなく、事前に割り当てられた値を単に返すだけです。したがって、セッション内で割り当てられているが使用されていない番号は、そのセッションが終了すると失われ、その結果、シーケンス内に「穴」が生じます。
CREATE SYNONYM は、特定のタイプのデータベース・オブジェクトの同義語を定義します。 Advanced Serverは以下の同義語をサポートしています。
syn_name は同義語の名前です。シノニム名は、スキーマ内で一意でなければなりません。
schema は、シノニムが存在するスキーマの名前を指定します。スキーマ名を指定しない場合、シノニムは検索パスの最初の既存スキーマに作成されます。
既存の同義語定義を新しい同義語定義
に置き換えるには 、 REPLACE 句を 含めます 。
パブリック・スキーマにシノニムを作成するには
、 PUBLIC句を
含めます。
CREATE PUBLIC SYNONYMコマンドは、Oracleデータベースと互換性があり、
パブリック・スキーマに存在するシノニムを作成します。
ここで、 column_constraintは次の
とおりです。
そして table_constraintは以下
のとおりです。
スキーマ名が付けられている場合(例えば、 表 MYSCHEMAを 作成します 。mytableは ...)、テーブルは指定されたスキーマで作成されています。それ以外の場合は、現在のスキーマに作成されます。テンポラリ・テーブルは特別なスキーマに存在するため、テンポラリ・テーブルを作成するときにスキーマ名が与えられないことがあります。表名は、同じスキーマ内の他の表、順序、索引、またはビューの名前とは異なるものでなければなりません。
CREATE TABLEは、テーブルの1つの行に対応する複合型を表すデータ型も自動的に作成します。したがって、同じスキーマ内の既存のデータ型と同じ名前を持つ表はできません。
DEFAULT句は、列の定義、それは内に現れる列のデフォルトデータ値を割り当てます。値は任意の変数のない式です(サブクエリおよび現行表の他の列への相互参照は許可されていません)。デフォルトの式のデータ型は、列のデータ型と一致する必要があります。
UNIQUE - 列制約
UNIQUE( column_name [、...]) - テーブル制約
UNIQUE制約は、表の1つの以上の別個の列のグループが一意の値だけを含むことができることを指定します。ユニークなテーブル制約の動作は、カラム制約の動作と同じで、複数のカラムにまたがる機能が追加されています。
PRIMARY KEY - 列制約
PRIMARY KEY (
column_name [、...]) - テーブル制約
CHECK句は、新規または更新された行が成功するには、挿入または更新操作のために満たさなければならないBoolean型の結果を生成する式を指定します。 TRUEまたは "unknown"と評価される式は成功します。挿入操作または更新操作のいずれかの行がFALSE結果を生成すると、エラー例外が発生し、挿入または更新によってデータベースが変更されません。列制約として指定された検査制約は、その列の値のみを参照する必要がありますが、表制約に現れる式は複数の列を参照することがあります。
現在、 CHECK式にはサブクエリを含めることも、現在の行の列以外の変数を参照することもできません。
REFERENCES reftable [(
refcolumn )] [
ON DELETE アクション ] - 列制約
FOREIGN KEY (
列 [、...])
REFERENCES reftable [(
refcolumn [、...])] [
ON DELETE アクション ] - テーブル制約
表領域には、新しいテーブルが作成される表領域の名前です。指定されていない場合、 default_tablespaceが空の文字列の場合はデフォルト 表領域が使用され、データベースのデフォルト表領域が使用されます。
Advanced Serverは、一意性を強制するために、各一意制約と一次キー制約のインデックスを自動的に作成します。したがって、主キー列の明示的な索引を作成する必要はありません。詳細については、
CREATE INDEXを参照してください。
CREATE TABLE ASは、テーブルを作成し、
SELECTコマンドによって計算されたデータでそのテーブルを埋めます。表の列には、
SELECTの出力列に関連付けられた名前とデータ型があります(ただし、新しい列名の明示的なリストを指定して列名を変更できます)。
CREATE TABLE ASはビューを作成するのと似ていますが、実際には全く異なります。新しいテーブルを作成し、初めて新しいテーブルを満たすためにクエリを1回評価します。新しいテーブルは、クエリのソーステーブルへのその後の変更を追跡しません。対照的に、ビューはクエリされるたびに定義された
SELECT文を再評価します。
照会ステートメント( SELECTコマンド)。許可される構文の説明については、
SELECTを参照してください。
CREATE TRIGGERは新しいトリガーを定義します。
CREATE OR REPLACE TRIGGERは新しいトリガーを作成するか、既存の定義を置き換えます。
あなたが使用している場合、新しいトリガを作成するには
、CREATE TRIGGERのキーワードを、新しいトリガの名前が同じテーブルに定義されている既存のトリガーと一致してはいけません。新しいトリガーは、トリガー・イベントが定義されている表と同じスキーマに作成されます。
conditionはトリガーが実際に実行されるかどうかを決定するブール式です。
conditionが
TRUEと評価された場合、トリガが起動します。
トリガ定義に FOR EACH ROWキーワードが
含まれている場合、 WHEN句は
OLDを記述して古い行および/または新しい行の値の列を参照できます。
列 _ 名前または
NEW 。
列 _ 名をそれぞれ指定します。
INSERTトリガーは
OLDを参照できず、
DELETEトリガーは
NEWを参照できません。
トリガーに INSTEAD OFキーワードが
含まれている場合は、
WHEN句が含まれていない可能性があります。
WHEN句にサブクエリを含めることはできません。
古いものとして古いものを 参照する | NEW AS 新しいです } ...
REFERENCING節は古い行と新しい行を参照しますが、
oldは
oldやそれ以外のすべての小文字で保存された識別子で置き換えられます(たとえば、
REFERENCING OLD AS old 、
REFERENCING OLD AS OLD 、
REFERENCING OLD AS "古い" )。また、
新しいだけ
で (例えば
、NEW AS NEWを参照する 、
新しいAS NEWを参照するか
、「新しい」としてNEWを参照 )
新しい名前付き識別子またはすべて小文字に保存されている任意の等価に置き換えることができます。
OLD AS oldおよび
NEW AS newの いずれか、または両方を REFERENCING節に指定することができます(たとえば、
REFERENCING NEW AS OLD AS NEWと同様に
REFERENCING )。
変数、型、 REF CURSOR 、またはサブプログラムの宣言。
サブプログラム宣言が含まれている場合は、他のすべての変数、型、および REF CURSOR 宣言の 後に宣言する必要があり ます 。
SPLプログラム文です。 DECLARE-BEGIN-ENDブロックはSPLステートメントとみなされます。したがって、トリガー本体にネストされたブロックが含まれることがあります。
CREATE TYPE - 新しいユーザー定義タイプを定義します。これは、オブジェクト・タイプ、コレクション・タイプ(ネストした表タイプまたはVARRAYタイプ)、または複合タイプとすることができます。
そして subprogram_specは以下
のとおりです。
CREATE TYPEは、新しいユーザー定義データ型を定義します。作成できる型は、オブジェクト型、ネストした表の型、VARRAY型、または複合型です。ネストした表およびVARRAY型は、
コレクションと呼ばれる型のカテゴリに属します。
複合型はOracleデータベースと互換性がありません。ただし、このセクションで説明する他のタイプと同様に、SPLプログラムによって複合タイプにアクセスすることができます。
注:パッケージのみの場合、パッケージ仕様またはパッケージ本体内の
TYPE IS RECORDステートメントで宣言されたユーザー定義レコード・タイプに複合タイプを組み込むことができます。このような入れ子構造は、関数、プロシージャ、トリガなどの他のSPLプログラムでは許可されていません。
でスキーマ名が含まれている場合
、TYPEコマンドを
作成し、型がそれ以外の場合は現在のスキーマで作成され、指定されたスキーマで作成されています。新しいタイプの名前は、既存のタイプの定義を更新する意図がないかぎり、同じスキーマ内の既存のタイプと一致していてはなりません。その場合は
CREATE OR REPLACE TYPEを使用します。
注:現在、
OR REPLACEオプションを使用して、既存のオブジェクト型の属性を追加、削除、または変更することはできません。既存のオブジェクトタイプを最初に削除するには、
DROP TYPEコマンドを使用します。
OR REPLACEオプションを使用すると、既存のオブジェクト型のメソッドを追加、削除、または変更できます。
注: PostgreSQL形式の
ALTER TYPE ALTER ATTRIBUTEコマンドを使用すると、既存のオブジェクト型の属性のデータ型を変更できます。ただし、
ALTER TYPEコマンドはオブジェクト型の属性を追加または削除できません。
オブジェクト型所有者( DEFINER )の権限またはオブジェクト型(
CURRENT_USER )でメソッドを実行している現行ユーザーの権限を使用して、オブジェクト型で参照されるデータベース・オブジェクトへのアクセスが許可されているかどうかを指定します。
DEFINERがデフォルトです。
ため method_spec、方法はサブタイプでオーバーライドすることができるかどうかを指定します。
NOT FINAL (サブタイプでメソッドがオーバーライドされる可能性があります)がデフォルトです。
オブジェクト型の場合、このオブジェクト型に対してオブジェクトインスタンスを作成できるかどうかを指定します。 INSTANTIABLE (このオブジェクト型のインスタンスを作成できる)がデフォルトです。
NOT INSTANTIABLEが指定されている場合は、
NOT FINALも指定する必要があります。オブジェクト型のメソッドの
method_specに
NOT INSTANTIABLE修飾子が含まれている場合、オブジェクト型自体は、オブジェクト型の終了括弧の後に
NOT INSTANTIABLEおよび
NOT FINALで定義する必要があります。
ため method_spec、オブジェクト型定義はメソッドの実装を提供するかどうかを指定します。
INSTANTIABLE (オブジェクト型の
CREATE TYPE BODYコマンドがメソッドの実装を提供します)がデフォルトです。
NOT INSTANTIABLEが指定されている場合、オブジェクト型の
CREATE TYPE BODYコマンドにメソッドの実装が含まれていてはなりません。
場合 OVERRIDINGが指定され
、method_specは同じ順序で、同じデータ型で同じ名前のメソッドの引数の同じ数の同じ名前のメソッドをオーバーライドし、そして同一の戻り型スーパータイプで定義されている(メソッドが関数である場合)。
サブプログラムがオブジェクト・インスタンス上で操作する場合は、
MEMBERを 指定します。サブプログラムが特定のオブジェクト・インスタンスとは独立して動作する場合は、
STATICを指定します。
メンバーメソッドの場合、定義されているオブジェクトタイプのデータ型
である暗黙の組み込みパラメータ SELFがあります。
SELFは、現在メソッドを呼び出すオブジェクトインスタンスを参照します。
SELFは、パラメータリストの
INまたは
IN OUTパラメータとして明示的に宣言できます。明示的に宣言されている場合、
SELFはパラメータリストの最初のパラメータでなければなりません。
SELFが明示的に宣言されていない場合、そのパラメーター・モードのデフォルトはメンバー・プロシージャーの場合は
IN OUT 、メンバー関数の場合は
INになります。
パッケージ本体
の TYPE emprec_typ IS RECORDデータ構造体
の宣言では 、
salhistフィールドは
CREATE TYPE salhist_typ文で作成された
SALHIST_TYP複合型で定義されています。
結合配列定義 TYPE emp_arr_typ IS TABLE of emprec_typは、
SALHIST_TYP複合型で定義されたフィールド
salhistを含むレコード型データ構造体
emprec_typを参照します。
そして subprogram_specは以下
のとおりです。
CREATE TYPE BODYは新しいオブジェクト型本体を定義します。
CREATE OR REPLACE TYPE BODYは、新しいオブジェクト型本体を作成するか、既存の本体を置き換えます。
サブプログラムがオブジェクト・インスタンス上で操作する場合は、
MEMBERを 指定します。サブプログラムが特定のオブジェクト・インスタンスとは独立して動作する場合は、
STATICを指定します。
メンバーメソッドの場合、定義されているオブジェクトタイプのデータ型
である暗黙の組み込みパラメータ SELFがあります。
SELFは、現在メソッドを呼び出すオブジェクトインスタンスを参照します。
SELFは、パラメータリストの
INまたは
IN OUTパラメータとして明示的に宣言できます。明示的に宣言されている場合、
SELFはパラメータリストの最初のパラメータでなければなりません。
SELFが明示的に宣言されていない場合、そのパラメーター・モードのデフォルトはメンバー・プロシージャーの場合は
IN OUT 、メンバー関数の場合は
INになります。
関数またはプロシージャーの本体を構成する
プラグマ、宣言、および SPLステートメント。
PRAGMA AUTONOMOUS_TRANSACTIONは、機能またはプロシージャを自律型トランザクションとして設定するためのプラグマです。
CREATE USERは
Advanced Serverデータベース・クラスタに新しいユーザーを追加します。このコマンドを使用するには、データベースのスーパーユーザーでなければなりません。
場合は 、CREATE USERコマンドが与えられ、スキーマは、新しいユーザーと同じ名前で作成し、新しいユーザーによって所有されます。このユーザーによって作成された修飾されていない名前のオブジェクトは、このスキーマで作成されます。
どこ オプションは、次の互換性の句を指定できます。
または オプションは、次の互換性のない節に
することができます。
Advanced Serverでサポートされている
CREATE USERまたは
CREATE ROLEコマンド
の管理句の詳細については、次のURLにあるPostgreSQLのコアドキュメントを参照してください。
CREATEで 作成されたロール USER コマンドはログインロールです(デフォルト)。 CREATEで 作成されたロール ROLE コマンドは(デフォルトでは)ログインロールではありません。 CREATE を使用してログインアカウントを作成するには ROLE コマンドを使用するには、 LOGIN キーワードを 含める必要があります 。
事前定義されたプロファイルを役割に関連付ける、または事前定義されたプロファイルがユーザーに関連付けられていることを変更するに
は、 PROFILE句と
profile_nameを
含めます。
ACCOUNT句と
LOCKまたは
UNLOCKキーワードを
含めて、ユーザー・アカウントをロック状態またはロック解除状態にする必要があることを指定します。
インクルードこのロールに割り当てられたプロファイルの
TIMEパラメータ _ _
LOCK指定した時刻に役割をロックする
LOCK TIME「 タイムスタンプ 」句と日付/時刻値を、および
PASSWORDで示される時点で役割のロックを解除します。
LOCK TIMEを ACCOUNT LOCK句とともに使用すると、ロールは
ACCOUNT UNLOCK句を使用してデータベースのスーパーユーザーのみがロックを解除できます
。
パスワードを 含める オプションの ATを 持つ EXPIRE 句 ' timestamp ' キーワードを使用して、ロールに関連付けられたパスワードの有効期限が切れる日時を指定します。 AT を省略すると ' timestamp ' キーワードを入力すると、パスワードはすぐに期限切れになります。
次の例では、 CREATE USERを使用して、
acctg_profileプロファイルに関連付けられた
johnというログイン・ロールを作成します。
johnはパスワード
1safepwdを使用してサーバーにログインできます。
次の例では、 CREATE ROLEを使用して、
acctg_profileプロファイルに関連付けられた
johnというログイン・
ロールを作成します。
johnはパスワード
1safepwdを使用してサーバーにログインできます。
CREATE VIEWはクエリのビューを定義します。ビューは物理的にマテリアライズされていません。代わりに、クエリがクエリで参照されるたびにクエリが実行されます。
スキーマ名が指定されている場合(たとえば、 CREATE VIEW myschema.myview ...)、ビューは指定されたスキーマに作成されます。それ以外の場合は、現在のスキーマに作成されます。ビュー名は、同じスキーマ内の他のビュー、テーブル、シーケンス、またはインデックスの名前とは異なるものでなければなりません。
DELETEは、指定された表から
WHERE句を満たす行を削除します。
WHERE句が指定されていない場合は、テーブル内のすべての行を削除します。結果は有効な空の表です。
注 :
TRUNCATEコマンドは、表からすべての行を除去するより高速なメカニズムを提供します。
| { レコード にRETURNING variable [、...]}句は、 DELETEコマンドがSPLプログラム内で使用されている場合にのみ指定できます。さらに、 DELETEコマンドの結果セットに複数行が含まれていてはいけません。それ以外の場合は例外がスローされます。結果セットが空の場合、ターゲットレコードの内容はNULLに設定されます。
RETURNING BULKは、DELETEコマンドはSPLプログラム内で使用されている場合、コレクション への [...]句のみ指定することができるCOLLECT。複数のコレクションがBULK COLLECT INTO句のターゲットとして指定されている場合、各コレクションは単一のスカラーフィールドで構成されている必要があります。つまり、 コレクションはレコードであってはなりません。 DELETEコマンドの結果セットには、1つ以上の行が含まれている場合があります。結果セットの各行に対して評価されるreturn_expressionは、最初の要素から始まるコレクションの要素になります。 コレクション内の既存の行はすべて削除されます。結果セットが空の場合、 コレクションは空になります。
あなたは持っている必要があり 、それから削除するには、テーブルに対する
DELETE特権だけでなく、値の状態で読まれているすべてのテーブルに対する
SELECT権限を。
表の 1つ以上の列を含む式 。
return_expressionに tableの列名が指定されている場合、
return_expressionが評価されたときの列の値は、削除された行の値です。
評価された return_expressionが割り当てられる
フィールドのレコード 。最初の
return_expressionは
レコードの最初のフィールドに割り当てられ、2番目の
return_expressionは
レコードの2番目のフィールドに割り当てられます。
レコードのフィールド数は式の数と完全に一致しなければならず、フィールドは割り当てられた表現。
評価された return_expressionが割り当てられる
変数 。複数の
return_expressionと
変数が指定されている場合、
最初のreturn_expressionが最初の
変数に割り当てられ、2番目の
return_expressionが2番目の
変数に割り当てられます
。INTOキーワードの後に指定される変数の数は、
RETURNINGキーワードと変数は、割り当てられた式と型互換性がなければなりません。
評価された return_expression から要素が作成されるコレクション 。単一フィールドのコレクションまたはレコードタイプのコレクションである単一のコレクション、または複数のコレクションが存在する場合があります。その場合、各コレクションは単一のフィールドで構成されなければなりません。戻り式の数は、指定されたすべてのコレクションのフィールド数と順番に一致する必要があります。それぞれの対応する
return_expressionおよび
collectionフィールドは型互換性がなければなりません。
DROP DIRECTORYは、
CREATE DIRECTORYコマンドで作成されたファイルシステムディレクトリパスの既存のエイリアスを削除します。このコマンドを実行するには、スーパーユーザーでなければなりません。
DROP FUNCTIONは、既存の関数の定義を削除します。このコマンドを実行するには、スーパーユーザーまたはその関数の所有者でなければなりません。これがオーバーロードされた関数の場合、関数へのすべての入力(
IN 、
IN OUT )引数データ型を指定する必要があります。
Advanced Serverでは、関数名のオーバーロードが許可されているため、
Advanced Server DROP FUNCTIONコマンドの入力引数のデータ型で指定された関数シグネチャが必要です(この要件は
Oracleデータベースと互換性がありません)。オーバーロードされた関数)。
IF EXISTS 、
CASCADE 、または
RESTRICTの 使用法は 、Oracleデータベースと互換性がなく、Advanced Serverのみで使用されます。
引き数のモード: IN 、
IN OUT 、または
OUT 。省略すると、デフォルトは
INです。
DROP FUNCTIONは実際には
OUT引数に注意を払わないことに注意してください。なぜなら、入力引数だけが関数の同一性を判断するために必要なためです。
INと
IN OUT引数だけをリストするだけで十分です。 (
argmodeの指定はOracleデータベースと互換性がなく、Advanced Serverにのみ適用されます)。
引数の名前。その注意唯一の引数のデータ型は、関数の同一性を決定するために必要とされているので、
ドロップ機能は、実際に、引数名に注意を払っていません。 (
argnameの指定はOracleデータベースと互換性がなく、Advanced Serverにのみ適用されます)。
DROP INDEXは、データベースシステムから既存のインデックスを削除します。このコマンドを実行するには、スーパーユーザーまたはインデックスの所有者でなければなりません。オブジェクトがインデックスに依存する場合、エラーが発生し、インデックスは削除されません。
DROP PACKAGEは既存のパッケージを削除します。このコマンドを実行するには、スーパーユーザーまたはパッケージの所有者でなければなりません。
BODYを指定すると、パッケージ本体のみが削除されます。パッケージ指定は削除されません。
BODYを省略すると、パッケージ仕様と本体の両方が削除されます。
DROP PROCEDUREは、既存のプロシージャーの定義を除去します。このコマンドを実行するには、スーパーユーザーまたはプロシージャの所有者でなければなりません。オーバーロードされたプロシージャーの場合は、プロシージャーへのすべての入力(
IN 、
IN OUT )引き数データ・タイプを指定する必要があります。 Advanced Serverでは、プロシージャ名のオーバーロードが許可されているため、Advanced Server
DROP PROCEDUREコマンドでは、入力引数のデータ型で指定されたプロシージャのシグネチャが必要になります(この要件はOracleデータベースと互換性がありません。オーバーロードされたプロシージャ)。
IF EXISTS 、
CASCADE 、または
RESTRICTの 使用法は 、Oracleデータベースと互換性がなく、Advanced Serverのみで使用されます。
引き数のモード: IN 、
IN OUT 、または
OUT 。省略すると、デフォルトは
INです。
DROP PROCEDUREは、実際には
OUT引数には注意を払っていないことに注意してください。
INと
IN OUT引数だけをリストするだけで十分です。 (
argmodeの指定はOracleデータベースと互換性がなく、Advanced Serverにのみ適用されます)。
引数の名前。その注意唯一の引数のデータ型が手続きの同一性を決定するために必要ですので、実際に、引数名に注意を払っていない
のDROP PROCEDUREを 。 (
argnameの指定はOracleデータベースと互換性がなく、Advanced Serverにのみ適用されます)。
IFを 含める 指定されたプロファイルが存在しない場合、サーバーにエラーをスローしないように指示する EXISTS 句。プロファイルが存在しない場合、サーバーは通知を出します。
オプションの CASCADE 句を 含めて 、プロファイルに現在関連付けられているユーザーをすべて デフォルトの プロファイル に再割り当てし、プロファイルを 削除します 。
オプションの RESTRICT 句を 含めて 、ロールに関連付けられたプロファイルを削除しないようにサーバーに指示します。これがデフォルト動作です。
このコマンド
の RESTRICT句は、プロファイルに関連付けられているロールがある場合、
acctg_profileを削除しないようにサーバーに指示します。
DROPを 使用する 既存のキューを削除する QUEUE :
DROP QUEUEを 使用すると、スーパーユーザーまたは aq _ administrator _ ロール 特権を 持つユーザーが 既存のキューを削除できます。
キューが存在しない場合にエラーを返さないようにサーバーに指示するに
は、 IF EXISTS句を
含めます 。サーバーは通知を出します。
DROPを 使用する キュー キューテーブルを削除する TABLE :
キュー表が存在しない場合、サーバーにエラーを戻さないように指示するに
は、 IF EXISTS句を
組み込みます 。サーバーは通知を出します。
CASCADEキーワードを
含める キュー表に依存するオブジェクトを自動的に削除します。
RESTRICTキーワードを
含める オブジェクトが依存している場合は、キュー表の削除を拒否するようにサーバーに指示します。これがデフォルトです。
DROP SYNONYMは既存の同義語を削除します。このコマンドを実行するには、スーパーユーザーまたはシノニムの所有者で、シノニムが存在するスキーマに対して
USAGE権限を持っている必要があります
。
syn_nameは同義語の名前です。シノニム名は、スキーマ内で一意でなければなりません。
schemaは、シノニムが存在するスキーマの名前を指定します。
必要に応じて、 PUBLIC句を
追加して、
パブリック・スキーマにあるシノニムを削除
できます。 Oracleデータベースと互換性のある
DROP PUBLIC SYNONYMコマンドは、
パブリック・スキーマにあるシノニムを削除します。
DROP ROLEは、指定された
ロールを削除します。スーパーユーザー役割を削除するには、スーパーユーザーでなければなりません。スーパーユーザー以外のロールを削除するには、
CREATEROLE権限が必要
です 。
DROP SEQUENCEはシーケンス番号ジェネレータを削除します。このコマンドを実行するには、スーパーユーザーまたはシーケンスの所有者でなければなりません。
DROP TABLEはデータベースからテーブルを削除します。その所有者だけがテーブルを破壊する可能性があります。表を破棄せずに行の表を空にするには、
DELETEを使用します。
DROP TABLEは、常にターゲット表に存在する索引、ルール、トリガー、および制約を削除します。
含める サーバが依存しているオブジェクトがある場合、テーブルをドロップすることを拒否するように指定するキーワードを 制限 します。これがデフォルト動作です。オブジェクトがテーブルに依存する場合、
DROP TABLEコマンドはエラーを報告します。
テーブルに依存するオブジェクトを削除するに は、 CASCADE 句を 含め ます。
含める CASCADEを CONSTRAINTS 句を使用して、Advanced Serverが指定された表の従属制約(他のオブジェクト型を除く)を削除するように指定します。
DROP TABLEコマンド
の結果は、 表に依存関係があるかどうかによって異なります
。ドロップ動作を指定して結果を制御でき
ます。たとえば、
itemsテーブルが
ordersテーブルに依存する2つのテーブル、
オーダー 、および
アイテムを作成する場合は、
次のようになります。
• |
DROP TABLEオーダー を指定すると RESTRICT 、Advanced Serverはエラーを報告します。 |
• |
あなたが指定した場合 のDROP TABLE受注CASCADEを 、Advanced Serverは、 受注テーブル と 項目表 を ドロップします 。 |
• |
DROP TABLE orders を指定すると、 CASCADE CONSTRAINTSは 、Advanced Serverは、 受注テーブル を ドロップする と、 アイテムテーブル からの外部キーの指定を削除し ますが、 アイテムの テーブルを ドロップしません 。 |
DROP TRIGGERは、関連付けられたテーブルからトリガを削除します。このコマンドは、スーパーユーザーまたはトリガが定義されているテーブルの所有者が実行する必要があります。
DROP TYPEは型定義を削除します。このコマンドを実行するには、スーパーユーザーまたはそのタイプの所有者でなければなりません。
オプションの BODY修飾子は、オブジェクト型定義にのみ適用され、コレクション型および複合型には適用されません。
BODYを指定すると、オブジェクト型本体のみが削除されます。オブジェクト型指定は削除されません。
BODYを省略すると、オブジェクト型の指定と本文の両方が削除されます。
DROP USER指定されたユーザーを削除します。スーパーユーザーを削除するには、自分でスーパーユーザーである必要があります。スーパー以外のユーザーを削除するには、
CREATEROLE権限が必要
です 。
ユーザーアカウント john を削除するには、オブジェクトに特権を与えられておらず、ユーザー
johnが所有するスキーマ
john以外のオブジェクトを所有していない場合は、次のようにします。
DROP VIEWは既存のビューを削除します。このコマンドを実行するには、データベーススーパーユーザーまたはビューの所有者である必要があります。他のオブジェクトがこのビューに依存している場合(ビューのビューなど)、名前付きビューは削除されません。
Oracleと互換性
のある DROP VIEWコマンド
の形式は、 CASCADE句をサポートしていません。ビューとその依存関係を削除するには、
DROP V IEW コマンドのPostgreSQLと互換性のある形式を使用します
。詳細については、PostgreSQLのコアドキュメントを参照してください。
argument_listは、関数が必要とする引数のコンマ区切りのリストを指定します。
argument_listの各メンバーは、関数が期待する仮引数に対応することに注意してください。各仮引数は、
INパラメーター、
OUTパラメーター、または
INOUTパラメーターです。
EXECステートメントは、関数で必要な引数に応じて、いくつかのいずれかの形式を取ることがあります。
データベースオブジェクト(テーブル、ビュー、シーケンス、またはプログラム)に権限を付与します1、役割のメンバーシップを付与1、およびシステム権限を付与し1:GRANTコマンドは、3つの基本的なバリエーションがあります。これらの変種は多くの点で似ていますが、別々に記述するのに十分です。
で 高度なサーバー 、ユーザーとグループの概念は、
役割と呼ばれるエンティティの単一型に統一されています。このコンテキストでは、
ユーザーは
LOGIN属性を持つロールです。ロールを使用してセッションを作成し、アプリケーションに接続することができます。
グループは
LOGIN属性を持たないロールです。ロールは、セッションの作成やアプリケーションへの接続には使用できません。
この GRANTコマンドの
変種は、データベースオブジェクトに対する特定の権限をロールに付与します。これらの特権は、既に付与されている特権に追加されます。
キーワード PUBLICは、後で作成されるロールを含むすべてのロールに権限が付与されることを示します。
PUBLICは、常にすべての役割を含む暗黙的に定義されたグループと考えることができます。特定の役割には、直接付与された権限、現在メンバーになっている役割に与えられた権限、
PUBLICに付与された権限の合計が与えられます。
場合 WITH GRANT OPTIONが指定され、特権の受信者は、今度は他の人にそれを与えることができます。許可オプションがなければ、受信者はそれを行うことができません。
PUBLICに付与することはできません。
オブジェクトのタイプに応じて、初期のデフォルト権限には PUBLICに いくつかの権限を付与することが含まれます 。デフォルトでは、表のパブリック・アクセスはなく、関数、プロシージャー、およびパッケージの
EXECUTE特権があります。オブジェクトの所有者はもちろんこれらの特権を取り消すことができます。 (最大限のセキュリティを実現するには、オブジェクトを作成するのと同じトランザクションで
REVOKEを実行します。その場合、別のユーザーがオブジェクトを使用できるウィンドウはありません)。
指定した表、ビュー、またはシーケンスの任意の列からの
SELECTを
許可します。シーケンスの場合、この権限によって
currval関数も使用できます。
指定したテーブルに新しい行の
INSERTを
許可します。
指定された表の列の
UPDATEを
許可します。
SELECT ... FOR UPDATEには、(
SELECT特権以外の)この特権も必要です。
指定されたテーブルから行の
DELETEを
許可します。
EXECUTE権限を付与するため
の Advanced Serverの構文は
、Oracleデータベースと完全には
互換性がありません。
Advanced Serverでは、
FUNCTION 、
PROCEDURE 、または
PACKAGEのいずれかのキーワードでプログラム名を修飾する必要がありますが、これらのキーワードは
Oracleでは省略する必要があり
ます 。関数の場合、
Advanced Serverでは、関数名の後にすべての入力(
IN 、
IN OUT )引数データ型(関数引数がない場合は空の括弧を含む)が必要です。手続きの場合、手続きに1つ以上の入力引数がある場合は、すべての入力引数データ型を指定する必要があります。
Oracleでは、関数とプロシージャのシグネチャを省略する必要があります。これは、すべてのプログラムが
Oracleでは同じ名前空間を共有するため、関数、プロシージャ、およびパッケージは、
Advanced Serverで独自の名前空間を持ち、プログラム名のオーバーロードをある程度許容するためです。
GRANTコマンドの
この変種は、ロールのメンバーシップを1つ以上の他のロールに付与します。ロールに所属する権限は、そのメンバーのそれぞれに伝達されるため、ロール内のメンバーシップは重要です。
場合は WITH ADMIN OPTIONが指定され、メンバーは他の人に役割でターン助成金メンバーシップ、および中にも役割のメンバシップを取り消すことができます。 adminオプションがなければ、通常のユーザーはそれを行うことができません。
CONNECTロールを
付与することは、権限受領者に
LOGIN特権を与えることと同じです。付与者は
CREATEROLE特権を持っていなければなりません。
付与 RESOURCEロールは付与者と同じ名前を持つスキーマに
CREATEと
USAGE権限を付与することと同じです。このスキーマは、付与が行われる前に存在していなければなりません。付与者は、このスキーマに対する
CREATE権限または
USAGE権限を権限受領者に付与する権限を持っていなければなりません。
DBAロールを
付与することは、受領者をスーパーユーザーにすることと同じです。付与者はスーパーユーザーでなければなりません。
REVOKEコマンドは、アクセス権限を取り消すために使用されます。
オブジェクトの非所有者がオブジェクトの権限
を GRANT しようとすると、そのオブジェクトに権限が何もない場合、コマンドは完全に失敗します。特権が利用可能である限り、コマンドは続行されますが、ユーザーが許可オプションを持つ特権のみを許可します。
GRANT ALL PRIVILEGES形式では、付与オプションが指定されていない場合は警告メッセージが表示され、コマンドで特に指定されている特権の付与オプションが保持されていない場合は他の形式で警告が発行されます。 (原則として、これらのステートメントはオブジェクト所有者にも適用されますが、所有者は常にすべての付与オプションを保持しているため、このケースは決して発生しません)。
スーパーユーザーが GRANTまたは
REVOKEコマンド
を発行することを選択した場合、コマンドは影響を受けたオブジェクトの所有者によって発行されたかのように実行されます。特に、そのようなコマンドを介して付与された権限は、オブジェクト所有者によって付与されたように見えます。 (ロールのメンバーシップの場合、メンバーシップはロールを含むロールによって付与されているように見えます)。
GRANTおよび
REVOKEは、影響を受けたオブジェクトの所有者ではなく、そのオブジェクトを所有するロールのメンバーであるか、オブジェクトに対する
WITH GRANT OPTION権限を保持するロールのメンバーであるロールによっても実行できます。この場合、権限は、オブジェクトを実際に所有するロールによって付与されたものとして記録されるか、
WITH GRANT OPTION権限を保持します。
たとえば、テーブル t1がロール
g1によって所有されていて、ロール
u1がメンバーである場合、
u1は
t1の特権を
u2に付与できますが、これらの特権は
g1によって直接付与されたように見えます。役割
g1の他のメンバーは後で取り消すことができます。
GRANT を実行しているロールが、複数のロール・メンバーシップ・パスを介して間接的に必要な権限を保持している場合は、どのロールが含まれているかが不許可になります。このような場合は、
SET ROLEを使用して
GRANTを実行する特定のロールにすることをお勧めします。
現在、 Advanced Serverは、表の個々の列に対する特権の付与または取消しをサポートしていません。考えられる回避策の1つは、目的の列のみを持つビューを作成し、そのビューに特権を与えることです。
この GRANTコマンドの
変種は、データベース内で特定の
システム操作を実行する役割を果たします。システム権限は、必ずしも1つのスキーマの範囲内にない特定のデータベースオブジェクトを作成または削除する機能に関連しています。データベーススーパーユーザーだけがシステム特権を許可できます。
CREATE [PUBLIC] DATABASE LINK 権限は、指定した役割がデータベース・リンクを作成することができます。ロールがパブリック・データベース・リンクを作成できるようにするには、 PUBLICキーワードを含めます。指定されたロールがプライベート・データベース・リンクを作成できるようにするには、 PUBLICキーワードを省略します。
DROP PUBLIC DATABASE LINK 権限は役割がパブリック・データベース・リンクを削除することができます。プライベート・データベース・リンクを削除するためのシステム権限は必要ありません。プライベートデータベースリンクは、リンク所有者またはデータベーススーパーユーザーによって削除される可能性があります。
EXEMPT アクセスポリシー権限は、ターゲット・データベース・オブジェクトに関連付けることができる任意のポリシー関数を呼び出すことなく、SQLコマンドを実行する役割を可能にします。つまり、その役割はデータベース内のすべてのセキュリティポリシーから免除されます。
EXEMPT ACCESS POLICY権限は、EXEMPT ACCESS POLICY権限を持つロールにメンバーシップによって継承ではありません。たとえば、GRANTコマンドの次のシーケンスは、joeは EXEMPT ACCESS POLICY権限を付与されたEnterpriseDBの役割にメンバーシップを付与されていてもEXEMPT ACCESS POLICY権限を取得するユーザjoeにはなりません。
ロールに
EXEMPT ACCESS POLICY特権がある場合、システムカタログテーブル
pg_authid の rolpolicyexemptカラムは
trueに設定され
ます 。
グラントは、ユーザ
joeに
PUBLIC DATABASE LINK権限を
CREATE:
付与ユーザ
joeに
DROP PUBLIC DATABASE LINK権限を:
付与ユーザ
joeに
EXEMPT ACCESS POLICY権限を:
• |
EXEMPT ACCESS POLICY 権限 。 |
ALTER ROLE の 構文は、Oracleデータベースと互換性のそれぞれのコマンドと機能的に同等です。
INSERTを使用すると、新しい行を表に挿入できます。クエリの結果として、一度に1行または複数の行を挿入できます。
| { レコード にRETURNING variable [、...]}句は、 INSERTコマンドがSPLプログラム内で使用されている場合、およびVALUES句が使用されている場合にのみ指定できます。
RETURNING BULK INSERT コマンドがSPLプログラム内で使用されている場合、コレクション への [...]句のみ指定することができるCOLLECT。複数のコレクションがBULK COLLECT INTO句のターゲットとして指定されている場合、各コレクションは単一のスカラーフィールドで構成されている必要があります。つまり、 コレクションはレコードであってはなりません。挿入された行ごとに評価されるreturn_expressionは、最初の要素から始まるコレクションの要素になります。 コレクション内の既存の行はすべて削除されます。結果セットが空の場合、 コレクションは空になります。
表に挿入するには、その表に対する
INSERT特権
が必要です。
照会句を使用して
照会から行を挿入する場合は、照会で使用されるすべての表に対して
SELECT特権も必要です。
挿入される行を提供
するクエリ( SELECT文)。構文の説明については、
SELECTコマンドを参照してください。
表の 1つ以上の列を含む式 。
return_expressionで
tableの列名を指定した場合、
return_expressionが評価されたときの列の値は次のように決定されます。
return_expressionで
指定された列に INSERTコマンドの値が割り当てられている場合、割り当てられた値が
return_expressionの評価に使用されます。
return_expressionで
指定された列に INSERTコマンドの値が割り当てられておらず、表の列定義の列のデフォルト値がない場合は、
return_expressionの評価にNULLが使用されます。
return_expressionで
指定された列に INSERTコマンドで値が割り当てられておらず、表の列定義の列のデフォルト値がある場合、
return_expressionの評価ではデフォルト値が使用されます。
評価された return_expressionが割り当てられる
フィールドのレコード 。最初の
return_expressionは
レコードの最初のフィールドに割り当てられ、2番目の
return_expressionは
レコードの2番目のフィールドに割り当てられます。
レコードのフィールド数は式の数と完全に一致しなければならず、フィールドは割り当てられた表現。
評価された return_expressionが割り当てられる
変数 。複数の
return_expressionと
変数が指定されている場合、最初の
return_expressionが最初の
変数に割り当てられ、2番目の
return_expressionが2番目の
変数に割り当てられます
。INTOキーワードの後に指定される変数の数は、
RETURNINGキーワードと変数は、割り当てられた式と型互換性がなければなりません。
評価された return_expression から要素が作成されるコレクション 。単一フィールドのコレクションまたはレコードタイプのコレクションである単一のコレクション、または複数のコレクションが存在する場合があります。その場合、各コレクションは単一のフィールドで構成されなければなりません。戻り式の数は、指定されたすべてのコレクションのフィールド数と順番に一致する必要があります。それぞれの対応する
return_expressionおよび
collectionフィールドは型互換性がなければなりません。
LOCK TABLEは 、テーブルレベルのロックを取得します。必要に応じて、競合するロックが解放されるのを待機します。
NOWAITが指定されている場合、
LOCK TABLEは目的のロックを取得するのを待機しません。直ちに取得できない場合、コマンドは中止され、エラーが発行されます。取得されると、ロックは現在のトランザクションの残りの間保持されます。 (
UNLOCK TABLEコマンドはありません;ロックは常にトランザクション終了時に解放されます)。
表を参照するコマンドに対して自動的にロックを取得する場合、 Advanced Serverは常に最小限の制限付きロック・モードを使用します。
LOCK TABLEには、より制限的なロックが必要な場合があります。たとえば、アプリケーションがコミットされた分離レベルでトランザクションを実行し、トランザクション中にテーブル内のデータが安定していることを保証する必要があるとします。これを達成するには、クエリを実行する前にテーブルに対して
SHAREロックモードを取得することができます。これにより、同時データ変更が防止され、テーブルの後続読込みでは、
SHAREロック・モードがライターによって獲得された
ROW EXCLUSIVEロックと競合し、
LOCK TABLEの IN SHARE MODEステートメントがコンカレント・ホルダー
ROW EXCLUSIVEモードは、コミットまたはロールバックをロックします。したがって、ロックを取得すると、コミットされていない未処理の書き込みはありません。さらに、ロックを解除するまでは何も開始できません。
直列化可能な分離レベルでトランザクションを実行するときに同様の効果を得るには、データ変更ステートメントを実行する前に
LOCK TABLEステートメントを実行する必要があります。シリアライズ可能なトランザクションのデータビューは、最初のデータ変更ステートメントの開始時に固定されます。後で
LOCK TABLEを実行しても同時書き込みは防止されますが、トランザクションが読み取る内容が最新のコミットされた値に対応することは保証されません。
コマンド LOCK TABLE a、b ;
LOCK TABLE aと等価です。
ロックテーブルb 。テーブルは、
LOCK TABLEコマンドで指定された順序で1つずつロックされます。
ことを指定指定されたロックがすぐにトランザクションが中止され、待つことなく取得できない場合:任意の競合するロックを解除するために
LOCK TABLEが待つべきではありません。
すべての形式の LOCKには、
UPDATEおよび/または
DELETE権限が必要です。
LOCK TABLEは、トランザクションが終了するとすぐにロックが解除されるため、トランザクションブロック内でのみ有効です。トランザクションブロックの外に出現する
LOCK TABLEコマンドは、自己完結型のトランザクションを形成するので、ロックは取得されるとすぐに削除されます。
LOCK TABLEはテーブル・レベルのロックのみを処理するため、
ROWを含むモード名はすべて誤った名前です。これらのモード名は、一般に、ロックされたテーブル内で行レベルのロックを取得するというユーザの意図を示すものとして読まれるべきです。また、
ROW EXCLUSIVEモードは共有可能なテーブルロックです。
LOCK TABLEに関する限り、すべてのロックモードは同じセマンティクスを持ちますが、どのモードがどのモードと矛盾するかというルールが異なります。
REVOKEコマンドは、1つの以上のロールから以前に付与された権限を取り消します。キーワードPUBLICは、すべてのロールの暗黙的に定義されたグループを指します。
注意 :
CASCADEは、Oracleデータベースと互換性のあるオプションではありません。デフォルトでは、
Oracleは常に従属権限をカスケードし
ますが、
Advanced Serverでは
CASCADEキーワードを明示的に指定する必要があり
ます 。そうしないと、
REVOKEコマンドは失敗します。
ユーザーは、そのユーザーが直接付与した権限のみを取り消すことができます。たとえば、ユーザー Aがユーザー
Bに付与オプション付きの特権を付与し、ユーザー
Bがそれをユーザー
Cに付与した場合、ユーザー
Aは
Cから直接特権を取り消すことはできません。代わりに、ユーザー
Aはユーザー
Bから許可オプションを取り消し、
CASCADEオプションを使用して権限がユーザー
Cから取り消されるようにすることができます。
Aと
Bの両方が
Cに同じ権限を付与した場合
、Cはまだ効果的に権限を持つことになりますので、他の例としては
、Aは 、Bの助成自分の付与を取り消すことはできませんが。
オブジェクトの非所有者がオブジェクトの権限
を REVOKE しようとすると、そのオブジェクトに特権がない場合、コマンドは完全に失敗します。いくつかの特権が利用可能である限り、コマンドは続行されますが、ユーザが許可オプションを持っている特権だけを取り消します。
REVOKE ALL PRIVILEGESフォームでは、付与オプションが指定されていない場合は警告メッセージが表示され、コマンドで特に指定されている権限の付与オプションが保持されていない場合は、その他のフォームで警告が発行されます。 (原則として、これらのステートメントはオブジェクト所有者にも適用されますが、所有者は常にすべての付与オプションを保持しているため、このケースは決して発生しません)。
スーパーユーザーが GRANTまたは
REVOKEコマンド
を発行することを選択した場合、コマンドは影響を受けたオブジェクトの所有者によって発行されたかのように実行されます。すべての特権は最終的に(おそらく間接的に許可オプションのチェーンを介して)オブジェクト所有者から来るので、スーパーユーザーはすべての特権を取り消すことができますが、これは上記のように
CASCADEを使用する必要があります。
REVOKEは、影響を受けるオブジェクトの所有者ではなく、オブジェクトを所有するロールのメンバであるロール、またはオブジェクトに対する
WITH GRANT OPTION権限を保持するロールのメンバであるロールによっても実行できます。この場合、コマンドは、オブジェクトを実際に所有するロールを含むか、または
WITH GRANT OPTION権限を保持しているロールによって発行されたかのように実行されます。たとえば、テーブル
t1がロール
g1によって所有されていて、ロール
u1がメンバーである場合、
u1は
g1によって付与されたとして記録された
t1の特権を取り消すことができます。これには、
g1の他のメンバーだけでなく、
u1によって行われたグラントも含まれます。
REVOKE を実行しているロールが、複数のロール・メンバーシップ・パスを介して間接的に
権限を保持している
場合は、ロールを含むどのコマンドを実行するかは不特定です。そのような場合は、
SET ROLEを使用して
REVOKEを実行する特定のロールにすることをお勧めします。そうしないと、意図した権限以外の権限が取り消されたり、何も取り消されたりしないことがあります。
注意:Advanced Serverの ALTER ROLEコマンドは、パブリックまたはプライベート・データベース・リンクの作成に必要なシステム権限を破棄する構文またはファイングレイン・アクセス制御ポリシー(
DBMS _
RLS )の除外もサポートしています。
ALTER ROLE構文は、Oracleデータベースと互換性のあるそれぞれの
REVOKEコマンドと機能的に同等です。
ユーザー
joeから
CONNECT権限を
取り消します。
ユーザー
joeから
CREATE DATABASE LINK権限を
取り消します。
ユーザー
joeから
EXEMPT ACCESS POLICY権限を
取り消します。
ROLLBACKは現在のトランザクションをロールバックし、トランザクションによって行われたすべての更新を破棄します。
COMMITを
使用して 、トランザクションを正常に終了します。
トランザクション内でないときに
ROLLBACKを 発行することは問題ありません。
注意: plpgsqlプロシージャで
ROLLBACKを
実行すると、ランタイム・スタックにOracleスタイルのSPLプロシージャがある場合はエラーがスローされます。
ROLLBACK TO SAVEPOINTを
使用してセーブポイントにロールバックします。
どこ from_itemは、のいずれかになります。
SELECTは、1つまたは複数のテーブルから行を取得します。
SELECTの一般的な処理は次のとおりです。
1。 |
FROMリストの すべての要素が計算されます。 ( FROMリストの各要素は、実表または仮想表です。) FROMリストに複数の要素が指定されている場合、それらは相互に結合されます。 (下記の FROM句を参照してください。) |
2。 |
場合は WHERE句が指定され、条件を満たさないすべての行は出力から除外されています。 (下の WHERE句を参照してください。) |
3。 |
場合 GROUP BY句 が指定され、出力が1つまたは複数の値に一致する行のグループに分割されます。 HAVING句が存在する場合、指定された条件を満たさないグループは削除されます。 (下記の GROUP BY句と HAVING句を参照してください。) |
4。 |
UNION 、 INTERSECT 、および MINUS 演算子を使用すると、複数の SELECT文の出力を結合して1つの結果セットを形成できます。 UNION演算子は、結果セットの一方または両方にあるすべての行を戻します。 INTERSECT演算子は、厳密に両方の結果セットに含まれるすべての行を戻します。 MINUS演算子は、最初の結果セットにあり、2番目の結果セットにはない行を戻します。 3つのケースでは、重複行が排除されます。 UNION演算子の場合、 ALLが指定されていれば、重複は除去されません。 (後述の UNION節、 INTERSECT節、 MINUS節を参照)。 |
6。 |
CONNECT BY句は、階層関係を持っているデータを選択するために使用されます。このようなデータには行間の親子関係があります。 ( CONNECT BY句を参照してください。) |
7。 |
場合は ORDER BY句 が指定され、返される行は指定された順にソートされています。 ORDER BYが指定されていない場合は、システムが最も高速に検索する順序で行が返されます。 (下記の ORDER BY節を参照してください。) |
8。 |
DISTINCTは結果から重複行を除去し ます 。 ALL (デフォルト)は重複を含むすべての候補行を返します。 (下記の DISTINCT節を参照してください。) |
9。 |
FOR UPDATE句は、同時更新に対して選択された行をロックするSELECT文を引き起こします。 (下記のFOR UPDATE句を参照してください。) |
その値を読み取るには、表に対して
SELECT特権
が必要です。
FOR UPDATEの使用には、
UPDATE特権も必要です。
FROM句は 、SELECT文のための1つまたは複数のソース・テーブルを指定します。構文は次のとおりです。
エイリアスを含む
FROM項目の
代替名 。エイリアスは、簡潔さや自己結合のあいまいさをなくすために使用されます(同じテーブルが複数回スキャンされる)。エイリアスが指定されると、テーブルまたは関数の実際の名前が完全に隠されます。
F AS FOOから与えられ、例えば
、SELECTの残りは
fooではなく
fと項目
FROMこれを参照しなければなりません。
サブ SELECTは
FROM句に使用できます。これは、この単一の
SELECTコマンドの実行中の一時テーブルとして出力が作成されたかのように動作します。サブ
SELECTはかっこで囲む必要があり、エイリアスを指定する必要があります。
ための 内側及び
外側のタイプに参加する、参加条件は
join_condition オン 、
天然のすなわち正確に一つを指定し、又は
使用している必要があり
(join_columnを[、...])。意味は下記を参照してください。
CROSS JOINの場合、これらの句は表示されません。
JOIN句は、項目から二つを兼ね備えています。必要に応じて括弧を使用して、ネスティングの順序を決定します。カッコがない場合、 JOINは左から右にネストします。いずれにしても、 JOINはFROM項目を区切るカンマよりも緊密に結びついています。
CROSS JOINと
INNER JOINは、
FROMのトップレベルにある2つの項目をリストしているのと同じ結果ですが、結合条件(存在する場合)によって制限される、単純なデカルト積を生成します。
CROSS JOINは
INNER JOIN ON(TRUE)と同等です。つまり、修飾によって行が削除されません。これらの結合タイプは、
明示的な
FROMと
WHEREではできない何もしないので、表記の便宜のためのものに過ぎません。
LEFT OUTER JOINは、条件を満たすデカルト積のすべての行(つまり、結合条件を満たすすべての結合された行)と、結合条件を満たす右側の行がない左側の表の各行の1つのコピーを戻します。この左側の行は、右側の列にNULL値を挿入することによって、結合されたテーブルの全幅に拡張されます。一致する行があるかどうかを判断するときは、
JOIN句の条件だけが考慮されます。その後、外的条件が適用されます。
逆に、 RIGHT OUTER JOINは、
結合されたすべての行と、一致しない右側の行ごとに1つの行を返します(左側にNULLがあります)。左と右の入力を切り替えることで
LEFT OUTER JOINに変換できるので、これは表記上の便利なものです。
FULL OUTER JOINは、結合されていないすべての行(NULLが右側に拡張されている)ごとに1行加え、一致しない右側の行ごとに1行(左側にNULLがあります)を返します。
USING(a、b、...) という形式の句は、 ON left_table.a = right_table.a AND left_table.b = right_table.b ....の
略語です。また、
USINGは、同等の各ペア列は結合出力に含まれ、両方には含まれません。
NATURALは、同じ名前を持つ2つのテーブル内のすべてのカラムを
記述するUSINGリストの省略形です。
どこ 条件は boolean型の結果を評価する任意の式です。この条件を満たさない行は出力から除外されます。行は、実際の行の値を任意の変数参照に代入すると、
TRUEを戻すと条件を満たします。
次の例では、コンテンツ加入 EMP表
の DEPTNO列の値が
DEPTNOテーブルの
DEPTNO列の値に等しく
、EMPおよび
DEPTテーブルを:
GROUP BYは、グループ化された式に対して同じ値を共有する選択された行をすべて単一の行に集約します。
expressionは、入力列名、出力列の名前または順序番号(
SELECTリスト項目)、または入力列値から形成された任意の式です。あいまいさがある場合、
GROUP BY名は出力列名ではなく入力列名として解釈されます。
ROLLUP 、
CUBE 、および
GROUPING SETは、多次元分析をサポートするための
GROUP BY句の拡張です。これらの拡張機能の使用方法については、第
2.3.71.3項を参照してください。
次の例では、
empテーブルの
salカラムの
合計を計算し 、結果を部門番号でグループ化しています。
whereは
WHERE句に指定された
条件と同じです。
HAVINGは、指定された条件を満たさないグループ行を削除します。
HAVINGは
WHEREとは異なります。
GROUP BYによって作成されたフィルタグループ行を
有しながら
、WHERE、GROUP BYの適用前に、個々の行をフィルタリングします。条件内で参照される各列は、集計関数内に参照が表示されない限り、グループ化列を明白に参照する必要があります。
列を合計するには、すべての従業員を
salし 、部門番号で結果をグループ化し、10000未満のグループ合計を表示します。
SELECTリストは、(キーワードの間SELECTとFROM)SELECT文の出力行を形成する式を指定します。式は、 FROM句で計算された列を参照できます(通常は行います)。 AS 出力名句を使用すると、出力列に別の名前を指定できます。この名前は、主に表示する列にラベルを付けるために使用されます。また、 ORDER BY句とGROUP BY句の列の値を参照するのにも使用できますが、 WHERE句やHAVING句では使用できません。代わりに式を書き出す必要があります。
式の代わりに、 *は選択された行のすべての列の略語として出力リストに書き込むことができます。
次の例 の SELECT リストでは、結果セットに empno 列、 ename 列、 mgr 列、および hiredate 列 を含めるように指定してい ます。
UNION句の形式は次のとおりです。
select_statementは、
ORDER BY節または
FOR UPDATE節のない
SELECT文です。 (
ORDER BYは、カッコで囲まれている場合はサブ式に付けることができますが、括弧なしの場合は、右側の入力式ではなく
UNIONの結果に適用されます)。
UNION演算子は、2つのSELECT文が返す行の和集合を計算します。結果セットの少なくとも1つに出現する場合、行は2つの結果セットの組の集合に含まれます。 UNIONの直接オペランドを表す2つのSELECTステートメントは、同じ数の列を生成する必要があり、対応する列は互換性のあるデータ型でなければなりません。
ALLオプションが指定されていない限り、
UNION の結果に重複行は含まれません。
ALLは重複の除去を防ぎます。
同じ
SELECTステートメント内の
複数の UNION演算子は、括弧で囲まれていない限り、左から右に評価されます。
現在は、 FOR UPDATEは UNIONの結果または
UNIONのいずれかの入力のためのいずれかを指定することはできません。
INTERSECT句の形式は次のとおりです。
INTERSECT演算子は、2つのSELECT文が返す行の積集合を計算します。両方の結果セットに表示される行は、2つの結果セットの共通部分にあります。
INTERSECT の結果に重複行は含まれません。
同じ
SELECTステートメント内の
複数の INTERSECT演算子は、かっこが別の方法で指示しない限り、左から右に評価されます。
INTERSECTは
UNIONよりも緊密にバインドされます。つまり、
UNION B INTERSECT Cは
A UNION(B INTERSECT C)として読み込まれます。
MINUS句は、この一般的な形式があります:
MINUS演算子は、左のSELECT文の結果ではなく、右のいずれかの結果である行の集合を計算します。
同じ
SELECTステートメント内の
複数の MINUS演算子は、かっこで指示されていない限り、左から右に評価されます。
MINUSは
UNIONと同じレベルでバインドされます。
階層的なクエリを実行する際にCONNECT BY句は、行の親子関係を決定します。それは一般的な形式を持っています:
parent_exprは、候補の親行で評価されます。
parent_expr = child_exprの結果が
FROM句によって返された行に対して
TRUEになる場合、この行は親の子と見なされます。
start with start_expression
start_expressionが
TRUEと評価される
FROM句
によって返された行は、階層のルートノードになります。
式で 並べる [ASC | DESC] [、...]
注意 :Advanced Serverは、
CONNECT BY句での
AND (または他の演算子)の使用をサポートしていません。
expressionは、出力列(
SELECTリスト項目)の名前または順序番号でも、入力列値から形成された任意の式でもかまいません。
ORDER BY句は、結果の行は、指定された式に従ってソートされます。最も左の式に従って2つの行が等しい場合は、次の式などで比較されます。それらが指定されたすべての式に従って等しい場合、それらは実装依存の順序で返されます。
この機能の制限は 、
UNION 、
INTERSECT 、または
MINUS句の結果に適用さ
れる ORDER BY句が、式ではなく出力列名または数値のみを指定できることです。
場合は ORDER BY式
が結果列名と入力列名の両方に一致する単純な名前で
、ORDER BYは結果列名として解釈されます。これは、
GROUP BYが同じ状況で行う選択の反対です。この矛盾は、
SQL標準と互換性があるように作られてい
ます 。
オプションで、
ORDER BY句に任意の式の後に
キーワード ASC (昇順)または
DESC (降順)を
追加できます 。指定されていない場合、
ASCはデフォルトで使用されます。
SELECTステートメントで
DISTINCTが指定されている
場合、重複した行はすべて結果セットから
削除され
ます (重複する各グループから1つの行が保持されます)。
ALLキーワードは反対を指定します。すべての行が保持されます。これがデフォルトです。
FOR UPDATE 句は次の形式をとります。
FOR UPDATEは、
SELECTステートメントによって取得された行を、更新のようにロックします。これにより、現在のトランザクションが終了するまで他のトランザクションによって行が変更または削除されることがなくなります。選択した行を
UPDATE 、
DELETE 、または
SELECT FOR UPDATEしようとするトランザクションは、現在のトランザクションが終了するまでブロックされます。別のトランザクションからの
UPDATE 、
DELETE 、または
SELECT FOR UPDATEがすでに選択された行をロックしている場合、
SELECT FOR UPDATEは最初のトランザクションが完了するのを待機し、更新された行をロックして返します。行が削除されました)。
FOR UPDATEは、戻された行を個々の表の行で明確に識別できない場合(たとえば、集計の場合)には使用できません。
ロック設定を指定
するには、 FOR UPDATEオプションを
使用します。
• |
インクルード SELECT文が別のセッションによってロックされた行のために待機する秒(または端数秒)の数を指定するには 、WAIT n個のキーワードを。 10進形式を使用して分数秒を指定します。たとえば、 WAIT 1.5はサーバーに 1.5秒間待機するよう指示します。小数点以下4桁までを指定します。 |
• |
現在のセッションで行をロックできない場合は、すぐにエラーを報告する ために NOWAITキーワードを 含めます 。 |
• |
含める SKIPは、可能な場合は行をロックするために、サーバーに指示し、すでに別のセッションによってロックされている行をスキップする LOCKED。 |
SET CONSTRAINTSは、現在のトランザクション内の制約チェックの動作を設定します。
IMMEDIATE制約は、各ステートメントの最後にチェックされます。
DEFERRED制約は、トランザクションがコミットされるまでチェックされません。各制約には、独自の
IMMEDIATEまたは
DEFERREDモードがあります。
:作成時に、制約は三つの特徴の一つ与えられている DEFERRABLEが最初にDEFERRED、DEFERRABLE INITIALLY IMMEDIATE、または
NOT DEFERRABLEを 。 3番目のクラスは常に
IMMEDIATEであり、
SET CONSTRAINTSコマンドの影響を受けません。最初の2つのクラスは、指定されたモードですべてのトランザクションを開始しますが、その動作は
SET CONSTRAINTSによってトランザクション内で変更できます。
制約名のリストを持つ
SET CONSTRAINTSは、それらの制約のモードを変更します(すべてが遅延可能でなければなりません)。指定された名前に一致する制約が複数ある場合は、すべてが影響を受けます。
SET CONSTRAINTS ALLは、すべての遅延可能制約のモードを変更します。
ときに SET制約は DEFERREDから
IMMEDIATEに制約のモードを変更し、新しいモードが遡及的に有効になりますトランザクションの終了時にチェックされていた未処理のデータ変更ではなく、
制約はコマンド
セットの実行時にチェックされます。そのような制約に違反すると、
SET CONSTRAINTSは失敗します(制約モードは変更されません)。したがって、
SET CONSTRAINTSを使用して、トランザクション内の特定のポイントで制約のチェックを強制的に実行できます。
このコマンドは、現在の SQLセッション・コンテキスト
の現在のユーザー識別子を rolenameに設定します。
SET ROLEの後、
SQLコマンドの権限チェックは、指定されたロールが本来ログインしていたものであるかのように実行されます。
指定された ロール名は、現在のセッションのユーザーがメンバーである役割である必要があります。 (セッションユーザがスーパーユーザの場合、任意のロールを選択できます)。
NONEは、現在のユーザーIDを現在のセッションユーザーIDにリセットします。これらのフォームは、任意のユーザーが実行できます。
このコマンドを使用すると、特権を追加したり、特権を制限することができます。セッションユーザーロールに INHERITS属性が設定されている場合は、
SET ROLEに設定できるすべてのロールのすべての権限が自動的に付与されます。この場合、
SET ROLEは、セッション・ユーザーに直接割り当てられているすべての権限とそのメンバーである他の役割を効果的に削除し、名前付きロールに使用可能な権限のみを残します。一方、セッションユーザーロールに
NOINHERITS属性が設定されている
場合 、
SET ROLEはセッションユーザーに直接割り当てられた権限を削除し、代わりに名前付きロールで使用できる権限を取得します。特に、スーパーユーザーがスーパーユーザー以外の役割に
SET ROLEを選択すると、スーパーユーザーの権限が失われます。
ユーザー maryは、役割
adminsのIDを
取得します。
ユーザー maryは自分のアイデンティティに戻ります。
ここで、 transaction_modeは次のいずれかです。
SET TRANSACTIONコマンドは、現在のトランザクションの特性を設定します。その後の取引には何の影響もありません。使用可能なトランザクション特性は、トランザクション分離レベルとトランザクション・アクセス・モード(読み取り/書き込みまたは読み取り専用)です。トランザクションの分離レベルは、他のトランザクションが同時に実行されているときにトランザクションがどのデータを参照できるかを決定します。
トランザクションが読取り専用の場合、次の SQLコマンドは使用できません。書込み対象の表が一時表でない場合は、
INSERT 、
UPDATE 、および
DELETEです。すべての
CREATE 、
ALTER 、および
DROPコマンド。
コメント 、
助成金 、
払い戻し 、
払い戻し 。実行するコマンドがリストされているものであれば
EXECUTEを指定します。これは、ディスクへのすべての書き込みを防ぐわけではない読み取り専用の高水準の概念です。
TRUNCATEは、表からすべての行をすばやく削除します。それは非修飾
DELETEと同じ効果を持ちますが、実際にはテーブルをスキャンしないのでより高速です。これは大きなテーブルで最も便利です。
DROPの STORAGE句は、互換性のために受理されていますが、無視されます。
他のテーブルからテーブルへの外部キー参照がある場合、
TRUNCATEは使用できません。このような場合に有効性を確認するには、テーブルスキャンが必要であり、そのポイント全体が1つのスキャンではありません。
TRUNCATEは、テーブルに存在する可能性のあるユーザ定義の
ON DELETEトリガを実行しません。
UPDATEは、条件を満たすすべての行の指定された列の値を変更します。
SET句では、変更する列のみを記述する必要があります。明示的に変更されていない列は以前の値を保持します。
| { レコード にRETURNING variable [、...]}句は、 SPLプログラム内でのみ指定できます。さらに、 UPDATEコマンドの結果セットは複数の行を戻してはいけません。それ以外の場合は例外がスローされます。結果セットが空の場合、ターゲットレコードの内容はNULLに設定されます。
RETURNING BULKは UPDATEコマンドはSPLプログラム内で使用されている場合、コレクション への [...]句のみ指定することができるCOLLECT。複数のコレクションがBULK COLLECT INTO句のターゲットとして指定されている場合、各コレクションは単一のスカラーフィールドで構成されている必要があります。つまり、 コレクションはレコードであってはなりません。 UPDATEコマンドの結果セットには、1つ以上の行が含まれていてもかまいません。結果セットの各行に対して評価されるreturn_expressionは、最初の要素から始まるコレクションの要素になります。 コレクション内の既存の行はすべて削除されます。結果セットが空の場合、 コレクションは空になります。
あなたは持っている必要があり 、それを更新するには、テーブルに対する
UPDATE権限だけでなく、値
式または
条件に読まれているすべてのテーブルに
SELECT権限を。
BOOLEAN 型の値を返す式 。この式がtrueを返す行のみが更新されます。
return_expressionで
指定された列に UPDATEコマンドで値が割り当てられている場合、割り当てられた値が
return_expressionの評価に使用されます。
return_expressionで
指定された列に UPDATEコマンドで値が割り当てられていない場合、影響を受ける行の現在の値が
return_expressionの評価に使用されます。
評価された return_expressionが割り当てられる
フィールドのレコード 。最初の
return_expressionは
レコードの最初のフィールドに割り当てられ、2番目の
return_expressionは
レコードの2番目のフィールドに割り当てられます。
レコードのフィールド数は式の数と完全に一致しなければならず、フィールドは割り当てられた表現。
評価された return_expressionが割り当てられる
変数 。複数の
return_expressionと
変数が指定されている場合、最初の
return_expressionが最初の
変数に割り当てられ、2番目の
return_expressionが2番目の
変数に割り当てられます
。INTOキーワードの後に指定される変数の数は、
RETURNINGキーワードと変数は、割り当てられた式と型互換性がなければなりません。
評価された return_expression から要素が作成されるコレクション 。単一フィールドのコレクションまたはレコードタイプのコレクションである単一のコレクション、または複数のコレクションが存在する場合があります。その場合、各コレクションは単一のフィールドで構成されなければなりません。戻り式の数は、指定されたすべてのコレクションのフィールド数と順番に一致する必要があります。それぞれの対応する
return_expressionおよび
collectionフィールドは型互換性がなければなりません。
deptテーブルの部門
20の 場所を AUSTINに 変更します。
empテーブルに
job =
SALESMANの すべての従業員について 、給与を10%更新し、手数料を500増加させます。
SQL は、ヌル値が 「不明」を 表す3値ブール論理を使用し ます 。以下の真理値表を観察してください。
演算子 AND および OR は可換性です。つまり、結果に影響を与えずに左右のオペランドを切り替えることができます。
NULL が "等しい"で ない ため、 expression = NULLを 書き込まないでください 。 NULL 。 (null値は未知の値を表し、2つの未知の値が等しいかどうかは分かりません)。この動作は
SQL標準に準拠してい
ます 。
いくつかのアプリケーションでは、 expression =
NULLは、
expressionがnull値と評価される場合はtrueを返すと
予想されることがあります。これらのアプリケーションを
SQL標準に準拠するように変更することを強くお勧めし
ます 。
数学演算子は、多くの Advanced Serverタイプで
提供されてい ます 。すべての可能な順列(例えば、日付/時刻型)のための一般的な数学的な慣習のない型については、実際の動作は後続の節で説明される。
注: postgresql.conf ファイル 内 db_dialect 構成パラメーターが レッドウッド に設定されている 場合 、 整数 データ型 の一対の分割は、 切り捨てられた値をもたらしません。以下の例に示すように、分数結果は保持されます。
場合 、次の例で示すように db_dialect 構成パラメータは、 切り捨てられた値の 整数 データ型の結果 の対の分割次に、Postgres の に設定されています 。
その場合でも、但し db_dialectは 結果のない切り捨て整数データ型の結果 の対と、 セコイア に のみ分割に 設定されます 。 INTEGER データ型の 有無にかかわらず、 SMALLINT または BIGINT データ型 のみを含む除算では 、 INTEGER および SMALLINT が除算に関与 する次のような小数部を保持せずに、PostgreSQL形式で切り捨てられます 。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If 、xが is null, then NVL returns Yを |
|
|
POWER( DOUBLE PRECISION, B DOUBLE PRECISION) |
|
a raised to the power of bに raised to the power of |
|
|
|
|
a raised to the power of bに raised to the power of |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INSTR( 文字列 , 集合 , [ 開始 [, 発生 ] ]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INSTRB( string , set , start , occurrence ) |
|
|
|
|
|
|
文字列 to lower case Convert to lower case |
|
|
|
|
カウント characters. If 開始 and going for 終了 Extract substring starting from and going for ます characters. If count is not specified, the string is clipped from the start till the end. characters. If is not specified, the string is clipped from the start till the end. |
|
|
|
|
start and count are in number of bytes. except Same as SUBSTR Same as SUBSTR are in number of bytes. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
文字列 to upper case Convert to upper case |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DECODE( expr , expr1a , expr1b [, expr2a , expr2b ]... [, デフォルト ]) |
|
Finds first match of のexpr with expr1a , expr2a , etc. When match found, returns corresponding parameter pair, expr1b , expr2b , etc. If no match found, returns デフォルト . If no match found and not specified, returns null. . If no match found and デフォルト not specified, returns null. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LPAD( 文字列 , 長さ INTEGER [, fill ]) |
|
Fill up 文字列 to size, 長さ by prepending the characters, 塗りつぶし (a space by default). If 、文字列が is already longer than 長さ then it is truncated (on the right). |
|
|
REPLACE( string , search_string [, replace_string ] |
|
|
|
|
RPAD( 文字列 , 長さ INTEGER [, fill ]) |
|
文字列 to size, by appending the characters, Fill up 文字列 to size, length by appending the characters, 塗りつぶし by appending the characters, fill (a space by default). If 文字列 is already longer than 長さ is already longer than (a space by default). If 文字列 is already longer than then it is truncated. |
|
|
|
|
from set is replaced by the corresponding character in the 文字 that matches a character in the 列 Any character in 文字 set is replaced by the corresponding character in the to set. set is replaced by the corresponding character in the set. |
|
|
注意:この項では、Oracleデータベースと互換性のない機能について説明します
。これにより、OracleからAdvanced Serverにデータを変換するときに矛盾が生じる可能性があります。
もし文字列連結演算子 ' || 'の場合、
表2-19に
示す暗黙の強制変換を持つ型は、入力パラメータの1つが
NULLの場合は文字列を切り捨てませんが、他の型の場合は明示的な型キャストが使用されていない限り文字列を切り捨てますis、
:: text )です。また、NULLの存在下での一貫した動作を確認するために、
CONCAT関数を使用することもできます。
たとえば、データ型 UUIDはこのリストにないため、暗黙的にテキストに変換されません。その結果、
NULL UUID列を使用した特定の連結の試行では、テキストの結果が切り捨てられます。
列 boolean_typeと
char_typeは、列
uuid_typeがテキストに変換する間に暗黙の強制変換を行います。
CONCAT関数
を使用すると 、
x =文字列も保持されます。
したがって、 NULL列の
データ型に応じて 、明示的キャストまたは
CONCAT関数を使用して、一部のテキスト文字列の損失を避ける必要があります。
Advanced Serverは、 REGEXP _
COUNT 、
REGEXP_INSTRおよび
REGEXP_SUBSTR関数を
サポートしてい ます 。これらの関数は、文字列内で正規表現で指定されたパターンを検索し、その文字列内のパターンの出現に関する情報を返します。パターンはPOSIXスタイルの正規表現でなければなりません。
POSIXスタイルの正規表現の作成の詳細については、次のコアドキュメントを参照してください。
REGEXP _
COUNTは文字列で正規表現を検索し、正規表現が出現する回数を返します。署名は次のとおりです。
パターンは、 REGEXP _
COUNTが検索するための正規表現を指定します。
位置は、 REGEXPは _
COUNTは、検索を開始するときのソース文字列内の位置を示す整数値です。デフォルト値は
1です。
修飾子は、パターンマッチングの動作を制御する値を指定します。デフォルト値は
NULLです。
Advanced Serverでサポートされる修飾子の完全なリスト
については、次のURLにあるPostgreSQLのコアドキュメントを参照してください。
以下の簡単な例では、 REGEXP_COUNTは、文字列
'reinitializing'に文字
iが使用された回数のカウントを返します。
REGEXP _
COUNTは
3を返します。このカウントは、6番目の位置の前に出現する文字
iの出現を除外します。
REGEXP _
INSTRは、POSIXスタイルの正規表現を文字列で検索します。この関数は、マッチした文字列内の位置を返します。署名は次のとおりです。
INTEGER REGEXP_INSTR
(
srcstr TEXT、
パターン TEXT、
位置 INT DEFAULT 1、
発生 INT DEFAULT 1、
returnparam INT DEFAULT 0、
修飾子 TEXT DEFAULT NULL、
サブ式 INT DEFAULT 0、
)
patternは、
REGEXP _
INSTRが検索する正規表現を指定します。
positionは、ソース文字列の開始位置を示す整数値を指定します。デフォルト値は
1です。
occurrenceは、検索された文字列に複数のパターンが出現した場合にどの一致が返されるかを指定します。デフォルト値は
1です。
returnparamは、
REGEXP _
INSTRが返す文字列内の位置を指定する整数値です。デフォルト値は
0です。指定:
0は、 パターンに一致する最初の文字の文字列内の位置を返します。
パターンの終わりに続く最初の文字の位置を返すには、
0 より大きい値 。
修飾子は、パターンマッチングの動作を制御する値を指定します。デフォルト値は
NULLです。
Advanced Serverでサポートされる修飾子の完全なリスト
については、次のURLにあるPostgreSQLのコアドキュメントを参照してください。
subexpressionは、
REGEXP _
INSTRによって返される
パターン部分を識別する整数値です。
部分式のデフォルト値は
0です。
部分式の 値を指定する場合は、検索対象の値の一部を分離する
パターンに1つ(またはそれ以上)のかっこを含める必要があります。
subexpressionで指定された値は、返される括弧のセットを示します。たとえば、
部分式が
2の場合、
REGEXP _
INSTRは2番目の括弧の位置を返します。
次の簡単な例では、 REGEXP_INSTRは、3桁の連続する数字を含むパターンが最初に出現する電話番号を含む文字列を検索します。
このコマンドは、 REGEXP_INSTRに最初に発生した位置を返す
ように指示します。 3つの連続した数字の2番目の出現の開始を返すようにコマンドを変更した場合:
REGEXP _
INSTRは
5を返します。 3桁の連続する数字の2番目の出現は5
番目の位置から始まります。
REGEXP _ SUBSTR関数は、POSIX準拠の正規表現で指定されたパターンの文字列を検索します。 REGEXP_SUBSTRは、関数の呼び出しで指定されたパターンに一致する文字列を返します。関数のシグネチャは次のとおりです。
TEXT REGEXP_SUBSTR
(
srcstr TEXT、
パターン TEXT、
位置 INT DEFAULT 1、
発生 INT DEFAULT 1、
修飾子 TEXT DEFAULT NULL、
サブ式 INT DEFAULT 0
)
patternは、
REGEXP _
SUBSTRが検索する正規表現を指定します。
positionは、ソース文字列の開始位置を示す整数値を指定します。デフォルト値は
1です。
occurrenceは、検索された文字列に複数のパターンが出現した場合にどの一致が返されるかを指定します。デフォルト値は
1です。
修飾子は、パターンマッチングの動作を制御する値を指定します。デフォルト値は
NULLです。
Advanced Serverでサポートされる修飾子の完全なリスト
については、次のURLにあるPostgreSQLのコアドキュメントを参照してください。
subexpressionは、
REGEXP _
SUBSTRによって返される
パターンの部分を識別する整数値
です 。
部分式のデフォルト値は
0です。
部分式の 値を指定する場合は、検索対象の値の一部を分離する
パターンに1つ(またはそれ以上)のかっこを含める必要があります。
subexpressionで指定された値は、返される括弧のセットを示します。たとえば、
サブ式が
2の場合、
REGEXP _
SUBSTRは、2番目の括弧のセットに含まれる値を返します。
次の簡単な例では、 REGEXP_SUBSTRは、3桁の連続した数字の最初のセットの電話番号を含む文字列を検索します。
REGEXP _
SUBSTRは、2番目の部分文字列の内容である
555を返します。
Advanced Server は従来の SQL を使用したパターンマッチングを提供し ます LIKE 演算子。 LIKE 演算子 の構文 は次のとおりです。
すべての パターン は一連の文字列を定義します。 文字列が パターン によって表される文字列のセットに含まれている 場合 LIKE 式は 真を 返します 。予想通り、 NOT LIKE 式は 、 LIKE が trueを 返す 場合 は falseを 返し 、逆の 場合 は falseを 返し ます 。同等の式は NOT( 文字列 LIKE パターン )です。
patternにパーセント記号またはアンダースコアが含まれていない
場合、 パターンは文字列自体のみを表します。その場合
LIKEはequals演算子のように動作します。
patternのアンダースコア(
_ )は、任意の1文字を表します(一致します)。パーセント記号(
% )は0文字以上の任意の文字列に一致します。
LIKEパターンマッチは、常に文字列全体をカバーします。文字列内の任意の場所にパターンをマッチさせるには、パターンをパーセント記号で開始して終了する必要があります。
次の表に示す 高度なサーバー フォーマット機能は、強力な様々なデータタイプを変換するためのツールのセット(日付/時刻、整数、数値ポイントを、フローティング)フォーマット文字列に、特定のデータ型にフォーマット文字列から変換するために提供します。 これらの関数はすべて共通の呼び出し規約に従います。最初の引数は書式設定される値で、2番目の引数は出力または入力形式を定義する文字列テンプレートです。
出力テンプレート文字列( TO_CHARの場合 )には、フォーマットされる値から認識され、適切にフォーマットされたデータに置き換えられる特定のパターンがあります。テンプレートパターンではないテキストはそのままそのままコピーされます。同様に、入力テンプレート文字列( TO_CHAR 以外の文字列 )では、テンプレートパターンは、参照される入力データ文字列の部分とそこで見つかる値を識別します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fractional seconds where n is an optional integer from 1 to 9 for the number of digits to return. If omitted, the default is 6. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
• |
FMでは 、先行するゼロと後続ブランクが抑制されます。これは、パターンの幅を固定幅にするために追加されます。 |
• |
TO_TIMESTAMP と TO_DATE は 、 FX オプションが使用されていない 場合、入力文字列内の複数の空白をスキップし ます。 FX は、テンプレートの最初の項目として指定する必要があります。例えば TO_TIMESTAMP( '2000 JUN'、 'YYYYのMON')は 正しいが、TO_TIMESTAMP は一つだけの空間を想定し ているため TO_TIMESTAMP( '2000 JUN'、 'FXYYYY MON')は 、エラーを返します 。 |
• |
文字列から タイムスタンプまたは 日付 への変換では、 YYY 、 YYYYまたは Y、YYYフィールドがある場合、 CCフィールドは無視されます。 CCを YYまたは Yとともに使用する場合、年は (CC-1)* 100 + YYとして計算されます。 |
• |
9 9Sが 存在するように桁数が同じ値をもたらします 。数字が利用できない場合は、空白が出力されます。 |
• |
TH ゼロより小さい値を変換せず、小数を変換しません。 |
Vは、 効果的に 、nは V 以下の桁数が 10 N によって入力値を乗算します 。 TO_CHAR は 小数点を組み合わせた V の使用をサポートしていません 。 (たとえば、 99.9V99は使用できません)。
関数の
IMMUTABLE形式を使用する可能性のある
TO_CHAR関数の
特定のケースがあります。基本的には、関数がデータベースを変更せず、関数がその入力パラメーターだけに依存して同じ一貫した値を返す場合、関数は
IMMUTABLEです。つまり、構成パラメータ、ロケール、データベースの内容などの設定は、関数が返す結果に影響を与えません。
関数のボラティリティカテゴリ VOLATILE 、 STABLE 、および IMMUTABLEの 詳細については、PostgreSQL Coreのドキュメントを参照してください。
IMMUTABLE関数の
特別な利点は 、
CREATE INDEXコマンドでその関数に基づいた索引を作成できることです。
TO_CHAR関数が
IMMUTABLE形式を使用
するためには 、次の条件を満たす必要があります。
• |
TO_CHAR関数の 2番目のパラメーターで指定された形式は、言語、ロケールなどのファクターに基づいて関数の戻り値に影響してはなりません。たとえば、 'YYYY-MM-DD HH24:MI:SS'の形式は、関数の IMMUTABLE形式に使用されます。これは、ロケール設定に関係なく、関数の結果は日付形式のみで表現されるためです。ただし、 月の3文字の省略形はロケール設定によって異なる結果を返す可能性があるため、 「DD-MON-YYYY」の形式は IMMUTABLE形式の関数には使用できません。 |
TO_CHAR関数で
指定された書式では 、3文字の月の略語
MONによってロケール設定に基づいて異なる戻り値が返される可能性があるため、
IMMUTABLE書式を使用できない
ため、エラーが発生します。
表2-26 日付/時刻値処理に使用可能な関数を示します。詳細は次のサブセクションに記載されています。次の表は、基本的な算術演算子(+、 - )の動作を示しています。フォーマット機能については、セクション 2.4.7 。セクションの日付/時刻データ型の背景情報に精通している必要があります 2.2.4 。
ADD_MONTHS関数指定された日付にヶ月の指定された数を加算(または2番目のパラメータが負の場合は減算します)。結果の日付は、その日がその月の最後の日である場合を除いて、指定された日付の月の日と同じです。その場合、結果の日付は常にその月の最終日になります。
EXTRACT 関数は、日付/時刻の値から年や時などの部分フィールドを抽出します。 EXTRACT 関数は、タイプ DOUBLE PRECISION の値を返します 。有効なフィールド名は次のとおりです。
MONTHS_BETWEEN関数は、2つの日付の間の月数を返します。結果は、最初の日付が2番目の日付よりも大きい場合は正の数値で、最初の日付が2番目の日付よりも小さい場合は負の数値になります。
MONTHS_BETWEEN関数の
例を次に 示します。
NEXT_DAY 関数は、指定された日付よりも厳密に大きい所定の曜日の最初の発生を返します。 少なくとも平日の最初の3文字を指定する必要があります(例: SAT) 。指定された日付に時間部分が含まれている場合、結果は変更されずに転送されます。
NEW_TIMEの関数は、1つのタイムゾーンから別の日付と時刻を変換します。 NEW_TIMEは、 DATE型の値を返します。構文は次のとおりです。
time_zone1と
time_zone2は、次の表のタイムゾーン列の文字列値である必要があります。
ROUND 関数は、指定されたテンプレートパターンに従って丸められた日付を返します。 テンプレートパターンを省略すると、日付は最も近い日に丸められます。次の表は、 ROUND 関数の テンプレートパターンを示してい ます。
|
|
|
Returns January 1, cc 01 where cc is first 2 digits of the given year if last 2 digits <= 50, or 1 greater than the first 2 digits of the given year if last 2 digits > 50; (for AD years) |
|
Returns January 1, YYYY YYYYは、 where is rounded to the nearest year; rounds down on June 30, rounds up on July 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TRUNC 関数は、指定されたテンプレートパターンに従って切り捨てられた日付を返します。 テンプレートパターンを省略すると、日付は最も近い日に切り捨てられます。次の表は、 TRUNC 関数の テンプレートパターンを示してい ます。
Advanced Serverに は、現在の日付と時刻に関連する値を返すさまざまな関数が用意されています。これらの関数はすべて、現在のトランザクションの開始時刻に基づいて値を返します。
CURRENT_DATEは、現在のトランザクションの開始時刻に基づいて現在の日付と時刻を返します。トランザクション内で複数回呼び出された場合
CURRENT _
DATEの値は変更されません。
CURRENT _
TIMESTAMPは、現在の日付と
時刻を戻します。単一のSQLステートメントから呼び出されると、ステートメント内の各オカレンスに対して同じ値が戻されます。トランザクション内の複数のステートメントから呼び出された場合、各オカレンスごとに異なる値が返されることがあります。関数から呼び出された場合、呼び出し元のcurrent_timestampが返す値とは異なる値を返すことがあります。
LOCALTIMESTAMPに はオプションで、精度パラメータを指定することができます。これにより、結果は秒フィールドの小数点以下の桁数に丸められます。精度パラメータがなければ、結果は利用可能な完全精度に渡されます。
NUMTODSINTERVAL 関数は第二インターバルユニットを介して日を含む期間に数値を変換します。 関数を呼び出すときは、結果セットに含める最小の小数間隔タイプを指定します。有効な間隔タイプは、 DAY 、 HOUR 、 MINUTE 、および SECOND です。
NUMTOYMINTERVAL 機能は、月の間隔ユニットを通じて年を含む時間間隔の数値を変換します。 関数を呼び出すときは、結果セットに含める最小の小数間隔タイプを指定します。有効なインターバルタイプは YEAR と MONTH です。
このセクションでは 、シーケンス・オブジェクトを操作するための Advanced Server の機能 について説明し ます。シーケンスオブジェクト(シーケンスジェネレータまたはシーケンスとも呼ばれます)は、 CREATE SEQUENCE コマンドで 作成される特別な単一行テーブルです 。通常、シーケンスオブジェクトは、テーブルの行に固有の識別子を生成するために使用されます。シーケンス関数は、シーケンスオブジェクトから連続したシーケンス値を取得するための簡単でマルチユーザに安全なメソッドを提供します。
sequence は、 CREATE SEQUENCE コマンドで シーケンスに割り当てられた識別子 です。次に、これらの機能の使用方法について説明します。
現在のセッションでこのシーケンスの NEXTVAL によって最後に得られた値を返します 。 ( このセッションでこのシーケンスに対して NEXTVAL が呼び出されたことがない 場合はエラーが報告 されます)。これはセッションローカル値を返すため、現在のセッション以降に
他のセッションが NEXTVAL を実行したかどうかを予測できます 。
重要 :同じシーケンスから数値を取得する並行トランザクションのブロッキングを回避するため、 NEXTVAL 操作はロールバックされません。つまり、値がフェッチされると、 後で NEXTVALを 実行したトランザクションが 異常終了 した場合でも、値が使用されたとみなされます 。これは、中断されたトランザクションが 、割り当てられた値のシーケンスに 未使用の 「穴」を 残す可能性があることを意味し ます。
SQL CASE 式は、他の言語のif / else文と同様の一般的な条件式です。
CASE 句は、式が有効な場合はいつでも使用できます。 condition は BOOLEANの 結果 を返す式です 。結果が 真の 場合、 CASE 式の 値は 条件に続く 結果 になります。結果が 偽で あれば、 それ以降の WHEN 句は すべて 同じ方法で検索されます。 WHENが ない場合 condition が true の場合、 CASE 式の 値は ELSE 句の 結果 になり ます。 ELSE句がなく、どの条件とも一致しない
場合 、結果は
NULLです。
発現は、 計算および 句は、1つまでは同じであることが明らかとなった 場合 に 、すべての 値の 仕様 と比較されます 。 一致するものが見つからない場合 は、 ELSE節の結果 (またはヌル値)が返されます。
CASE 式は、結果を決定するために必要されていない任意の部分式を評価しません。 たとえば、これはゼロによる除算の失敗を回避するための方法です。
COALESCE 関数は、NULLでない自身の最初の引数を返します。 すべての引数がnullの場合にのみNullが返されます。
CASE 式 と同様に 、 COALESCE は結果を判別する必要のない引数は評価しません。つまり、最初のNULL以外の引数の右側の引数は評価されません。この SQL 標準機能は 、他のデータベースシステムで使用されている NVL や IFNULLに 似た機能を提供し ます。
値1 と value2が 等しい 場合 NULLIF 関数はNULL値を戻します 。 それ以外の場合は、 value1を 返します 。
value1 が(none)の 場合 はnullを返し、そうでない場合は value1を 返し ます。
NVL 関数は、NULLでない自身の最初の引数を返します。 NVLは最初の式を評価します。その式がNULLに評価される場合、 NVLは2番目の式を返します。
NVL2は式を評価し、最初の式の値に応じて2番目または3番目の式を返します。最初の式が
NULLでない場合、
NVL2は
expr2の値を返し
ます 。最初の式が
NULLの場合、
NVL2は
expr3の値を返します。
GREATEST と LEAST 関数は、式の任意の数のリストから、最大または最小値を選択します。
集計 関数は、入力値のセットから単一の結果値を計算します。組み込み集約関数は、次の表にリストされています。
|
|
|
|
|
|
for any integer type, NUMBER for a floating-point argument, otherwise the same as the argument data type DOUBLE PRECISION for a floating-point argument, otherwise the same as the argument data type |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BIGINT for SMALLINT or INTEGER arguments, NUMBER for BIGINT arguments, DOUBLE PRECISION for floating-point arguments, otherwise the same as the argument data type |
|
COUNT を除いて 、これらの関数は、行が選択されていないときにはNULL値を戻す
ことに注意してください 。特に、行がない場合の
SUMは、期待どおりゼロではなくNULLを返します。
COALESCE関数を使用して、必要に応じてゼロにゼロを代入することができます。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sum ( X 2 ) – sum ( X ) 2 / N (“sum of squares” of the independent variable) |
|
|
|
Sum ( X * Y ) – sum ( X ) * sum ( Y ) / N (“sum of products” of independent times dependent variable) |
|
|
|
Sum ( Y 2 ) – sum ( Y ) 2 / N (“sum of squares” of the dependent variable) |
|
|
for floating-point arguments, otherwise DOUBLE PRECISION for floating-point arguments, otherwise NUMBER |
|
|
|
for floating-point arguments, otherwise DOUBLE PRECISION for floating-point arguments, otherwise NUMBER |
|
|
|
for floating-point arguments, otherwise DOUBLE PRECISION for floating-point arguments, otherwise NUMBER |
|
|
|
for floating-point arguments, otherwise DOUBLE PRECISION for floating-point arguments, otherwise NUMBER |
|
|
|
for floating-point arguments, otherwise DOUBLE PRECISION for floating-point arguments, otherwise NUMBER |
|
|
|
for floating-point arguments, otherwise DOUBLE PRECISION for floating-point arguments, otherwise NUMBER |
|
この項では、 Advanced Serverで 使用可能な SQL 準拠の副問合せ式 について説明し ます 。このセクションに記載されているすべての式はブール値( true / false )を 返し ます。
EXISTS の引数 は、任意の SELECT 文またはサブクエリです。副問合せは、行が戻されるかどうかを判断するために評価されます。少なくとも1つの行を戻す場合 は 、 EXISTS の結果 は TRUEになり ます。サブクエリが行を 戻さ ない場合、 EXISTS の結果 は FALSEになります 。
この単純な例は、 deptnoの 内部結合に似ていますが、一致する
emp行が複数あるにもかかわらず、各
dept行に対して最大で1つの出力行を生成します。
左側の式が得られる場合、その注意 ヌル ヌル 全く等しい右側の値と少なくとも一つの右側の行収率を存在しない場合、又は 、IN構文 の結果は 偽ではない
、nullになります。これは、ヌル値のブール値の組み合わせに対する
SQLの通常の規則に従います。
EXISTSと
同様に 、サブクエリが完全に評価されると仮定することは賢明ではありません。
左辺の式が ヌル である場合、または等しい右辺値がなく、少なくとも1つの右辺が NULLを もたらす 場合、 NOT IN構文の
結果は 真ではなく
ヌルになり
ます 。これは、ヌル値のブール値の組み合わせに対する
SQLの通常の規則に従います。
EXISTSと
同様に 、サブクエリが完全に評価されると仮定することは賢明ではありません。
SOME は ANYの 同義語です 。 IN は = ANY と等価です。
成功がなく、少なくとも1つの右辺がオペレータの結果に
NULLをもたらす場合、
ANY構文の結果は
falseではなく
NULLになることに注意してください。これは、ヌル値のブール値の組み合わせに対する
SQLの通常の規則に従います。
EXISTSと
同様に 、サブクエリが完全に評価されると仮定することは賢明ではありません。
NOT IN は <> ALL と同等です。
EXISTSと同様に、サブクエリが完全に評価されると仮定することは賢明ではありません。
オラクル・カタログ・ビューは、Oracleデータ・ディクショナリ・ビューと互換性のある方法で、データベースオブジェクトに関する情報を提供します。
ALL_ALL_TABLESビューには、現在のユーザがアクセスできる表に関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if the table is temporary; Y if the table is temporary; if the table is permanent. N if the table is permanent. |
ALL_CONS_COLUMNSビューには、現在のユーザーがアクセスできるテーブルの上に置かれた制約に指定された列に関する情報を提供します。
ALL_CONSTRAINTSビューには、現在のユーザーがアクセスできるテーブルの上に置かれた制約についての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F – foreign key constraint
P – primary key constraint
U – unique key constraint
R – referential integrity constraint
O – with read-only, on a view
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ALL_DB_LINKSビューには、現行ユーザーがアクセス可能なデータベース・リンクに関する情報を提供します。
ALL_DIRECTORIESビューは、CREATE DIRECTORYコマンドで作成したすべてのディレクトリについての情報を提供します。
ALL_IND_COLUMNSビューには、現在のユーザーがアクセスできる表の索引に含ま列に関する情報を提供します。
ALL_INDEXESビューは、現在のユーザによってアクセスされ得るテーブルのインデックスに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Always set to N (not compressed). Included for compatibility only. Always set to (not compressed). Included for compatibility only. Always set to (not compressed). Included for compatibility only. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ALL_JOBSビューには、データベース内に存在するすべてのジョブに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
log_user Same as . Included for compatibility only. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Y If , no attempt will be made to run this job.
N If , this job will attempt to execute.
|
|
|
|
|
|
|
|
|
|
|
|
Always NULL . Provided for compatibility only. |
|
|
Always NULL . Provided for compatibility only. |
|
|
Always 0 . Provided for compatibility only. |
ALL_OBJECTSビューには、データベース内に存在するすべてのオブジェクトに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Type of the object – possible values are: , INDEX , FUNCTION , PACKAGE , PACKAGE BODY , PROCEDURE , SEQUENCE , SYNONYM , TABLE , TRIGGER , and VIEW . |
|
|
|
|
|
if a temporary object; Y if a temporary object; if this is a permanent object. N if this is a permanent object. |
ALL_PART_KEY_COLUMNSビューは、データベースに存在するパーティション表のキー列に関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 for the first column; 2 for the second column, etc. |
ALL_PART_TABLESビューは、データベースに存在するパーティション表のすべてについて情報を提供します。
ALL_POLICIESビューは、データベース内のすべてのポリシーに関する情報を提供します。このビューは、スーパーユーザーのみがアクセスできます。
ALL_QUEUESビューには、現在定義されたキューについての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if the queue resides on a sharded network; YES if the queue resides on a sharded network; if the queue does not. NO if the queue does not. |
ALL_QUEUE_TABLESビューは、データベース内のキュー表のすべての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
YES indicates that the queue table is secure; NO indicates that it is not. |
ALL_SEQUENCESビューは、すべてのユーザ定義、ユーザが選択した前記配列、または更新権限に関する情報を提供します。
ファンクション、プロシージャ、トリガ、パッケージの仕様、およびパッケージ本体:ALL_SOURCEビューには、次のプログラムタイプのソースコードのリストを提供します。
ALL_SUBPART_KEY_COLUMNSビューは、データベースに存在するサブパーティション化されているそれらの分割されたテーブルのキー列に関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 for the first column; 2 for the second column, etc. |
ALL_SYNONYMSビューは、現在のユーザによって参照されるすべての同義語に関する情報を提供します。
ALL_TAB_COLUMNSビューはすべてのユーザー定義テーブルおよびビューのすべての列についての情報を提供します。
ALL_TAB_PARTITIONSビューには、データベース内に存在するすべてのパーティションに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if the table is subpartitioned; YES if the table is subpartitioned; if the table is not subpartitioned. NO if the table is not subpartitioned. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pg_class.relpages. Same as pg_class.relpages. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ALL_TAB_SUBPARTITIONSビューは、データベース内に存在するサブパーティションのすべての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pg_class.relpages. Same as pg_class.relpages. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ALL_TABLESビューは、すべてのユーザー定義テーブルの情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if this is a temporary table; Y if this is a temporary table; if this is not a temporary table. N if this is not a temporary table. |
ALL_TRIGGERSビューは、現在のユーザによってアクセスされ得るテーブルのトリガに関する情報を提供します。
ALL_TYPESビューには、現在のユーザーが使用できるオブジェクトの種類についての情報を提供します。
ALL_USERSビューには、すべてのユーザー名に関する情報を提供します。
ALL_VIEW_COLUMNSビューは、すべてのユーザー定義のビューのすべての列に関する情報を提供します。
ALL_VIEWSビューには、すべてのユーザー定義のビューについての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The SELECT statement that defines the view. |
DBA_ALL_TABLESビューは、データベース内のすべてのテーブルに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if the table is temporary; Y if the table is temporary; if the table is permanent. N if the table is permanent. |
DBA_CONS_COLUMNSビューは、データベース内のすべてのテーブルの上で指定されている制約に含まれているすべての列に関する情報を提供します。
DBA_CONSTRAINTSビューは、データベース内のテーブル上のすべての制約についての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F – foreign key constraint
P – primary key constraint
U – unique key constraint
R – referential integrity constraint
O – with read-only, on a view
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DBA_DB_LINKSビューは、データベース内のすべてのデータベース・リンクに関する情報を提供します。
DBA_DIRECTORIESビューは、CREATE DIRECTORYコマンドで作成したすべてのディレクトリについての情報を提供します。
DBA_IND_COLUMNSビューは、データベース内のすべてのテーブルの上に、インデックスに含まれるすべての列に関する情報を提供します。
DBA_INDEXESビューは、データベース内のすべてのインデックスについての情報を提供しています。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Always set to N (not compressed). Included for compatibility only. Always set to (not compressed). Included for compatibility only. Always set to (not compressed). Included for compatibility only. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DBA_JOBSビューは、データベース内のすべてのジョブについての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
log_user Same as . Included for compatibility only. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Y If , no attempt will be made to run this job.
N If , this job will attempt to execute.
|
|
|
|
|
|
|
|
|
|
|
|
Always NULL . Provided for compatibility only. |
|
|
Always NULL . Provided for compatibility only. |
|
|
Always 0 . Provided for compatibility only. |
DBA_OBJECTSビューは、データベース内のすべてのオブジェクトに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Type of the object – possible values are: , INDEX , FUNCTION , PACKAGE , PACKAGE BODY , PROCEDURE , SEQUENCE , SYNONYM , TABLE , TRIGGER , and VIEW . |
|
|
|
|
|
if the table is temporary; Y if the table is temporary; if the table is permanent. N if the table is permanent. |
DBA_PART_KEY_COLUMNSビューは、データベースに存在するパーティション表のキー列に関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 for the first column; 2 for the second column, etc. |
DBA_PART_TABLESビューは、データベース内のパーティション表のすべての情報を提供します。
DBA_POLICIESビューは、データベース内のすべてのポリシーに関する情報を提供します。このビューは、スーパーユーザーのみがアクセスできます。
DBA_PROFILESビューは、既存のプロファイルについての情報を提供します。表には、各プロファイル/リソースの組み合わせの行が含まれています。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for a user-created profile; YES for a user-created profile; for a system-defined profile. NO for a system-defined profile.
|
DBA_QUEUESビューには、現在定義されたキューについての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if the queue allows enqueuing; YES if the queue allows enqueuing; if the queue does not. NO if the queue does not. |
|
|
if the queue allows dequeuing; YES if the queue allows dequeuing; if the queue does not. NO if the queue does not. |
|
|
|
|
|
|
|
|
|
|
|
if the queue resides on a sharded network; YES if the queue resides on a sharded network; if the queue does not. NO if the queue does not. |
DBA_QUEUE_TABLESビューは、データベース内のキュー表のすべての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
YES indicates that the queue table is secure; NO indicates that it is not. |
DBA_ROLE_PRIVSビューには、ユーザーに付与されているすべての役割についての情報を提供します。ユーザが付与されたロールごとに行が作成されます。
|
|
|
|
|
|
|
|
|
|
|
if the role was granted with the admin option, YES if the role was granted with the admin option, otherwise. if the role was granted with the admin option, NO otherwise. |
|
|
if the role is enabled when the grantee creates a session. YES if the role is enabled when the grantee creates a session. |
DBA_ROLESビューには、NOLOGIN属性 (グループ)を持つすべての役割についての情報を提供します。
DBA_SEQUENCESビューには、すべてのユーザー定義のシーケンスについての情報を提供します。
DBA_SOURCEビューは、データベース内のすべてのオブジェクトのソースコードリストを提供します。
DBA_SUBPART_KEY_COLUMNSビューは、データベースに存在するサブパーティション化されているそれらの分割されたテーブルのキー列に関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 for the first column; 2 for the second column, etc. |
DBA_SYNONYMビューは、データベース内のすべての同義語に関する情報を提供します。
DBA_TAB_COLUMNSビューは、データベース内のすべての列に関する情報を提供します。
DBA_TAB_PARTITIONSビューには、データベース内に存在するすべてのパーティションに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if the table is subpartitioned; YES if the table is subpartitioned; if the table is not subpartitioned. NO if the table is not subpartitioned. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 for the first partition; 2 for the second partition, etc. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pg_class.relpages. Same as pg_class.relpages. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DBA_TAB_SUBPARTITIONSビューは、データベース内に存在するサブパーティションのすべての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 for the first subpartition; 2 for the second subpartition, etc. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pg_class.relpages. Same as pg_class.relpages. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DBA_TABLESビューは、データベース内のすべてのテーブルに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if the table is temporary; Y if the table is temporary; if the table is permanent. N if the table is permanent. |
DBA_TRIGGERSビューは、データベース内のすべてのトリガについての情報を提供します。
DBA_TYPESビューは、データベース内のすべてのオブジェクトタイプに関する情報を提供します。
DBA_USERSビューには、データベースのすべてのユーザーに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
edb_get_role_status( role_id ) function to get the current status of the account. Use the function to get the current status of the account.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DBA_VIEW_COLUMNSビューは、データベース内のすべてのカラムに関する情報を提供します。
DBA_VIEWSビューは、データベース内のすべてのビューについての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
statement that defines the view. SELECT statement that defines the view. The text of the statement that defines the view. |
USER_ALL_TABLESビューには、現在のユーザーが所有するすべてのテーブルに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if the table is temporary; Y if the table is temporary; if the table is permanent. N if the table is permanent.
|
USER_CONS_COLUMNSビューは、現在のユーザが所有しているテーブル内の制約に含まれているすべての列に関する情報を提供します。
USER_CONSTRAINTSビューは、現在のユーザが所有しているテーブルの上に置かすべての制約についての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F – foreign key constraint
P – primary key constraint
U – unique key constraint
R – referential integrity constraint
O – with read-only, on a view
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
USER_DB_LINKSビューには、現在のユーザーが所有するすべてのデータベース・リンクに関する情報を提供します。
USER_IND_COLUMNSビューには、現在のユーザーが所有する表の索引で参照されるすべての列に関する情報を提供します。
USER_INDEXESビューには、現在のユーザーによって所有されているテーブルのすべてのインデックスについての情報を提供します。
USER_JOBSビューには、現在のユーザーが所有するすべてのジョブに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
log_user Same as . Included for compatibility only. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Y If , no attempt will be made to run this job.
N If , this job will attempt to execute.
|
|
|
|
|
|
|
|
|
|
|
|
Always NULL . Provided for compatibility only. |
|
|
Always NULL . Provided for compatibility only. |
|
|
Always 0 . Provided for compatibility only. |
USER_OBJECTSビューには、現在のユーザーが所有するすべてのオブジェクトに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
Type of the object – possible values are: , INDEX , FUNCTION , PACKAGE , PACKAGE BODY , PROCEDURE , SEQUENCE , SYNONYM , TABLE , TRIGGER , and VIEW . |
|
|
|
|
|
if the object is temporary; Y if the object is temporary; if the object is not temporary. N
|
USER_PART_KEY_COLUMNSビューは、データベースに存在するパーティション表のキー列に関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 for the first column; 2 for the second column, etc.
|
USER_PART_TABLESビューは、現在のユーザが所有しているデータベースで仕切られたテーブルのすべての情報を提供します。
USER_POLICIESビューは、ポリシーが適用されたオブジェクトを含むスキーマは、現在のセッションのユーザーと同じ名前を持つポリシーに関する情報を提供します。このビューは、スーパーユーザーのみがアクセスできます。
USER_QUEUESビューには、現在のユーザーは、使用権限を持っている上の任意のキューに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if the queue allows enqueuing; YES if the queue allows enqueuing; if the queue does not. NO if the queue does not. |
|
|
if the queue allows dequeuing; YES if the queue allows dequeuing; if the queue does not. NO if the queue does not. |
|
|
|
|
|
|
|
|
|
|
|
if the queue resides on a sharded network; YES if the queue resides on a sharded network; if the queue does not. NO if the queue does not. |
USER_QUEUE_TABLESビューには、現在のユーザーがアクセスできるキュー表のすべての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
YES indicates that the queue table is secure; NO indicates that it is not. |
USER_ROLE_PRIVSビューには、現在のユーザーに付与された権限に関する情報を提供します。ユーザが付与されたロールごとに行が作成されます。
|
|
|
|
|
|
|
|
|
|
|
if the role was granted with the admin option, YES if the role was granted with the admin option, otherwise. if the role was granted with the admin option, NO otherwise. |
|
|
if the role is enabled when the grantee creates a session. YES if the role is enabled when the grantee creates a session. |
|
|
|
USER_SEQUENCESビューには、現在のユーザーに属するすべてのユーザ定義のシーケンスについての情報を提供します。
USER_SOURCEビューは、現行のユーザーが所有するすべてのプログラムについての情報を提供します。
USER_SUBPART_KEY_COLUMNSビューには、現在のユーザーに属するサブパーティション化されているこれらのパーティションテーブルのキー列に関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 for the first column; 2 for the second column, etc.
|
USER_SYNONYMSビューには、現在のユーザーが所有するすべての同義語に関する情報を提供します。
USER_TAB_COLUMNSビューは、現在のユーザが所有するテーブルとビューのすべての列に関する情報を表示します。
USER_TAB_PARTITIONSビューには、現在のユーザーが所有するすべてのパーティションに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
if the table is subpartitioned; YES if the table is subpartitioned; if the table is not subpartitioned. NO if the table is not subpartitioned. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 for the first partition; 2 for the second partition, etc. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pg_class.relpages. Same as pg_class.relpages. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
USER_TAB_SUBPARTITIONSビューは、現行のユーザーが所有するサブパーティションのすべての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 for the first subpartition; 2 for the second subpartition, etc. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pg_class.relpages. Same as pg_class.relpages. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
USER_TABLESビューには、現在のユーザーが所有するすべてのテーブルに関する情報を表示します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if the table is temporary; Y if the table is temporary; if the table is not temporary. N if the table is not temporary.
|
USER_TRIGGERSビューには、現在のユーザーが所有する表のすべてのトリガーについての情報が表示されます。
USER_TYPESビューには、現在のユーザーが所有するすべてのオブジェクトタイプに関する情報を提供します。
USER_USERSビューには、現在のユーザーに関する情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
edb_get_role_status( role_id ) function to get the current status of the account. Use the function to get the current status of the account.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
USER_VIEW_COLUMNSビューは、現在のユーザが所有するビューのすべての列についての情報を提供します。
USER_VIEWSビューには、現在のユーザーが所有するすべてのビューについての情報を提供します。
|
|
|
|
|
|
|
|
|
|
|
The SELECT statement that defines the view. |
V $ VERSIONビューは、製品の互換性に関する情報を提供します。
PRODUCT_COMPONENT_VERSIONビューは、製品のバージョンの互換性に関するバージョン情報を提供します。
dualは、Oracleデータベースとの互換性のために提供される単一行、単一列の表です。
EDB _ ディレクトリテーブルは、 ディレクトリを 作成するコマンドで作成したディレクトリを指し、各エイリアスの1つの行が含ま。ディレクトリは、ユーザーがホストファイルシステムに限定してアクセスできるようにするパス名のエイリアスです。
EDB _ password_historyテーブルには、各パスワード変更のために1行が含まれます。この表は、クラスタ内のすべてのデータベースで共有されます。
EDB _ ポリシーテーブルは、ポリシーごとに1つの行が含ま。
EDB _ プロファイルテーブルは、使用可能なプロファイルに関する情報を格納します。 edb _ profilesは、クラスタ内のすべてのデータベースで共有されます。
EDB _ 変数テーブルには、各パッケージレベルの変数(パッケージ内で宣言された各変数)のための1つの行が含ま。
PG _ 同義語テーブルは同義語コマンドCREATEまたはCREATE PUBLIC SYNONYMコマンドで作成された各同義語のための1つの行を含んでいます。
|
|
|
|
|
|
|
|
|
|
|
synowner Replaces . Contains the OID of the row where the synonym is stored . Contains the OID of the pg_namespace row where the synonym is stored . Contains the OID of the pg_namespace . Contains the OID of the |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
製品 _ 構成要素 _ バージョンテーブルは、特徴の互換性についての情報を含みます。アプリケーションはインストール時または実行時にこのテーブルを照会して、このデプロイメントでアプリケーションで使用される機能が使用可能であることを確認できます。
PostgreSQLの8.3、8.4、9.0、9.1、9.2、9.3、9.4、9.5、9.6、10、および11文書は、PostgreSQLに共通するこのガイドの部分のためのベースラインを提供し、ここに認められています。
この EnterpriseDBソフトウェアおよびドキュメンテーションの
一部は 、以下の著作物を使用することができ、その使用はここで認められます。
PostgreSQLはPostgreSQLグローバル開発グループ
の著作権©1996-2018に基づき、以下のカリフォルニア大学ライセンスの条件に基づいて配布されています。
ザ カリフォルニア州立大学は、商品性および特定目的への適合性の黙示的な保証を含む(ただしこれらに限定されない)いかなる保証も特に断ります。本契約に基づいて提供される本ソフトウェアは、現状のままであり、カリフォルニア州立大学は、保守、サポート、更新、拡張または改変を提供する義務を負いません。