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

前へ
前へ
次へ
次へ
 

式の指定

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

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

SQL構文

{ColumnName | ROWID | {? | :DynamicParameter} |

  AggregateFunction | Constant | (Expression)}

または

[[+ |-] {ColumnName | SYSDATE | TT_SYSDATE|GETDATE() |

{? | :DynamicParameter} | AggregateFunction |

Constant | {~ | + | -} Expression}]

[...]

または

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

または

Expression1 | | Expression2

または

Expression

構成要素
説明
+, -
単項プラスと単項マイナス。単項マイナスはプライマリの符号を変更します。デフォルトの設定では、符号は変更しません。
ColumnName
値を取得する列の名前。列名については「名前」を参照してください。
ROWID
表に保存される各行には、ROWIDと呼ばれる一意のIDが割り当てられます。ROWIDのデータ型はBINARY(16)です。ROWIDの値は、ROWIDという名前の擬似列から取得されます。
?
:DynamicParameter
動的パラメータのプレースホルダ。
動的パラメータの値は、実行時に設定されます。
AggregateFunction
計算された値。「集計関数」を参照してください。
Constant
特定の値。「定数」を参照してください。
(Expression)
カッコで囲まれた式。
Expression1
Expression2
Expression1およびExpression2は、ビット単位演算子とともに使用すると、整数型またはバイナリ型にできます。両方の式のデータ型には互換性が必要です。「データ型」を参照してください。
*
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」も参照してください。

説明

例 3.1

SELECT文のWHERE句:

   SELECT *

   FROM Purchasing.Orders

   WHERE PartNumber = ?
   AND OrderNumber > ?
   ORDER BY OrderNumber

例3.2

UPDATE文のWHERE句およびSET句:

   UPDATE Purchasing.Parts

   SET SalesPrice = :DynamicParameter1

   WHERE PartNumber = :DynamicParameter2

例3.3

DELETE文のWHERE句:

   DELETE FROM Purchasing.OrderItems

   WHERE ItemNumber BETWEEN ? AND ?

例3.4

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

   INSERT INTO Purchasing.OrderItems VALUES

      (?,:DynamicParameter1,

       :DynamicParameter2,

       :DynamicParameter1,?)

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

例3.5

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

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.