ヘッダーをスキップ
Oracle TimesTen In-Memory Database SQLリファレンス・ガイド
リリース11.2.1
B56051-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

式の指定

には、SQL処理で使用するを指定します。

式は、算術演算子、比較演算子、文字列またはバイナリ演算子、ビット演算子、あるいはこの章で説明する任意の関数で連結された1つまたは複数のプライマリで構成できます。 プライマリは、SQL構文に示された項目から算出される、符号付きまたは符号なしの値です。

SQL構文

{ColumnName | ROWID | {? | :DynamicParameter} |
  AggregateFunction | Constant | (Expression)}
or
[[+ |-] {ColumnName | SYSDATE | TT_SYSDATE|GETDATE() |
{? | :DynamicParameter} | AggregateFunction |
Constant | {~ | + | -} Expression}]
 [...]

または

Expression1 [& | | | ^ | + | / | * | - ] Expression2

または

Expression1 | | Expression2

または

Expression
構成要素 説明
+, – 単項プラスと単項マイナス。単項マイナスはプライマリの符号を変更します。デフォルトの設定では、符号は変更しません。
ColumnName 値を取得する列の名前。 列名の詳細は、第2章「名前およびパラメータ」を参照してください。
ROWID TimesTenでは、表に保存される各行にROWIDと呼ばれる一意のIDが割り当てられます。 ROWID値はROWID擬似列から取得されます。
?

:DynamicParameter

動的パラメータのプレースホルダ。

動的パラメータの値は、実行時に設定されます。

AggregateFunction 計算された値。 「集計関数」を参照してください。
Constant 特定の値。「定数」を参照してください。
(Expression) カッコで囲まれた任意の式
Expression1

Expression2

Expression1およびExpression2は、ビット単位演算子とともに使用すると、整数型またはバイナリ型にできます。両方の式のデータ型には互換性が必要です。 第1章「データ型」を参照してください。
* 2つのプライマリを乗算します。
/ 2つのプライマリを除算します。
+ 2つのプライマリを加算します。
2つのプライマリを減算します。
& 2つのオペランドのビット単位のAND。 Expression1およびExpression2の対応するビットがどちらも1の場合にのみビットを1に設定し、ビットが異なるかどちらも0の場合にビットを0に設定します。
| 2つのオペランドのビット単位のOR。 Expression1およびExpression2の対応するビットのうち、いずれかまたは両方が1の場合にビットを1に設定し、対応するビットの両方が0の場合にビットを0に設定します。
~ オペランドのビット単位のNOT。 Expressionを1つのみ取り出し、オペランドの各ビットを逆にして、すべての1を0(ゼロ)に、0(ゼロ)を1に変更します。
^ 2つのオペランドの排他OR。 Expression1およびExpression2の対応するビットが異なる場合にビットを1に設定し、同じ場合に0(ゼロ)に設定します。 一方のビットが0(ゼロ)で他方のビットが1の場合、対応する結果ビットは1に設定されます。それ以外の場合、対応する結果ビットは0(ゼロ)に設定されます。
| | 両方の式が文字列の場合に、Expression1Expression2を連結します。両方の式の値を含む、新しい文字列値を作成します。 「CONCAT」も参照してください。

説明

この例では、任意のSELECT文のWHERE句における動的パラメータを示します。

SELECT *
FROM purchasing.orders
WHERE partnumber = ?
AND ordernumber > ?
ORDER BY ordernumber;

この例では、UPDATE文のWHERE句およびSET句における動的パラメータを示します。

UPDATE purchasing.parts
SET salesprice = :dynamicparameter1
WHERE partnumber = :dynamicparameter2;

この例では、DELETE文のWHERE句における動的パラメータを示します。

DELETE FROM purchasing.orderitems
WHERE itemnumber BETWEEN ? AND ?;

この例では、INSERT文のVALUES句における動的パラメータを示します。 この例では、?:dynamicparameterの両方をpurchasing.orderitems表の2番目と4番目の列の両方に対応する:dynamicparameter1で使用します。 そのため、この式には、2番目と4番目の列の両方に使用する2番目のパラメータを使用して、4つの動的パラメータのみを渡す必要があります。

INSERT INTO purchasing.orderitems VALUES
   (?,:dynamicparameter1,
    :dynamicparameter2,
    :dynamicparameter1,?);

この例には、?および:dynamicparameterの両方を同じSQL文で使用できることと、両方のタイプの動的パラメータを繰り返すことの意味上の違いが示されています。

ビット単位演算子の例を次に示します。

Command> SELECT 0x183D & 0x00FF from dual;
< 003D >
1 row found.
Command> SELECT ~255 FROM dual;
< -256 >
1 row found.
Command> SELECT 0x08 | 0x0F FROM dual;
< 0F >
1 row found.