変数の名前 [CONSTANT] データ型 [NOT NULL] [:= 初期値];
| 数値ファミリー | 数値ファミリーの型には、整数値または実数値を格納します。 |
|---|---|
| NUMBER(p, s) | pは整数部の桁数、sは小数点未満の桁数です。最大38桁までの固定小数点数、浮動小数点数を扱うことが出来ます。 |
| BINARY_INTEGER | データベースには格納せず、計算にだけ使用するような場合に使用します。 |
| 文字ファミリー | 文字ファミリーの型には、文字列を格納します。 |
| VARCHAR2(l) | 可変長の文字列。32,767バイトまで格納することが出来ます。 |
| CHAR(l) | 固定長の文字列。32,767バイトまで格納することが出来ます。 |
| rawファミリー | rawファミリーの型には、バイナリ-データを格納します。 |
| RAW(l) | 固定長のバイナリ-データ。最大長は 32,767バイト |
| LONG RAW | 最大長は 32,767バイト |
| 日付ファミリー | |
| DATE | 日付と時刻の情報を格納します。 |
| ブールファミリー | |
| BOOLEAN | TRUE、FALSEまたはNULLを格納します。 |
| TABLE | PL/SQL表とも言います。C言語の配列に似ています。 |
| RECORD | 関連性のあるいくつかの変数を一つにまとめて作る、ユーザー定義型です。C言語の構造体に似ています。 |
| REF CURSOR | 他の記憶領域を示すデータ型です。 |
| LOB | グラフィックスや長いテキストドキュメントなどの大量のデータを保持するデータベースフィールドです。 |
|---|---|
| BFILE | Oracleデータベースの外部に格納されたラージバイナリファイルに読み込み専用アクセスが可能になります。 |
| BLOB | 非構造型バイナリデータを格納できます。 |
| CLOB | 1バイト文字データを格納できます。 |
| NLOB | 固定幅マルチバイト各国文字キャラクタセットデータを格納できます。 |
PL/SQLの変数の多くは多くの場合データベースの表に格納されているデータを操作する際に使用します。変数は表の列と同じである必要があります。もちろん、「NUMBER」や「VARCHAR2」を使用しても構いませんが、その場合表定義が変更されるたびに、PL/SQLの変数宣言も変更する必要があります。
%TYPEや%ROWTYPEを使用することで、表定義と同じ型を持つことが出来、表定義が変更された場合でも、PL/SQLの変数宣言を変更する必要はありません。
[%TYPEの例] 変数名 表名.列名%TYPE; [%ROWTYPEの例] 変数名 表名%ROWTYPE;
| 関数 | 説明 | 変換に使用できるファミリー |
| TO_CHAR | オプションのフォーマットに従い、引数をVARCHAR2型に変換します。 | 数値、日付 |
| TO_DATE | オプションのフォーマットに従い、引数をDATE型に変換します。 | 文字 |
| TO_NUMBER | オプションのフォーマットに従い、引数をNUMBER型に変換します。 | 文字 |
| RAWTOHEX | RAW型値を16進数表現のバイナリ値に変換します。 | raw |
| HEXTORAW | 16進数表現をバイナリ値に変換します。 | 文字(16進表現) |
| CHARTOROWID | RAWIDの文字表現を内部のバイナリフォーマットに変換します。 | 文字(18文字のrowidフォーマット) |
| ROWIDTOCHAR | 内部のバイナリフォーマットのROWID型変数を18文字の外部フォーマットに変換します。 | rowid |
PL/SQLでは、可能な場合、データ型ファミリー間の変換が自動的に実行されます。
![]() |
![]() |
![]() |