Oracle PL/SQL データ型: ブール、数値、日付 [例]

PL/SQL データ型とは何ですか?

データ型 PL/SQL では、データがどのように格納、処理、処理されるかを定義するために使用されます。 Oracle データの保存および処理中。データ型は、特定のストレージ形式と範囲の制約に関連付けられます。で Oracle、各値または定数にはデータ型が割り当てられます。

PL/SQL との主な違いは、 SQL データ型は、SQL データ型は表の列に限定されますが、PL/SQL データ型はテーブル列で使用されます。 PL/SQLブロックこれについてはチュートリアルの後半で詳しく説明します。

以下は、異なる Oracle PL/SQL データ型:

PL/SQLデータ型
PL/SQLのさまざまなデータ型

PL/SQL CHARACTER データ型

このデータ型は基本的に英数字を文字列形式で格納します。

リテラル値を CHARACTER データ型に割り当てるときは、常に一重引用符で囲む必要があります。

この文字データ型はさらに次のように分類されます。

  • CHAR データ型 (固定文字列サイズ)
  • VARCHAR2 データ型(可変文字列サイズ)
  • VARCHAR データ型
  • NCHAR (ネイティブ固定文字列サイズ)
  • NVARCHAR2 (ネイティブ変数文字列サイズ)
  • 長くて長い生
Data Type 説明 構文
CHAR このデータ型は文字列値を格納し、文字列のサイズは宣言時に固定されます。 変数.

  • Oracle 変数が宣言されているサイズ全体を占有していない場合は、変数に空白が埋め込まれます。 Oracle 変数が完全に占有していない場合でも、宣言されたサイズのメモリを割り当てます。
  • このデータ型のサイズ制限は 1 ~ 2000 バイトです。
  • CHAR データ型は、固定サイズのデータ​​が処理される場合に使用するのがより適切です。
grade CHAR;
manager CHAR (10):= 'guru99';

構文の説明:

  • 最初の宣言ステートメントは、最大サイズ 1 バイト (デフォルト値) の CHAR データ型の変数 'grade' を宣言しました。
  • 10 番目の宣言ステートメントは、最大サイズ 99 の CHAR データ型の変数 'manager' を宣言し、6 バイトの値 'guruXNUMX' を割り当てます。 Oracle この場合、10 バイトではなく 6 バイトのメモリが割り当てられます。
VARCHAR2 このデータ型は文字列を格納しますが、文字列の長さは固定されていません。

  • このデータ型のサイズ制限は、テーブル列のサイズが 1 ~ 4000 バイト、変数のサイズが 1 ~ 32767 バイトです。
  • サイズは変数宣言時に変数ごとに定義されます。
  • だけど Oracle 変数が定義された後にのみメモリを割り当てます。つまり、 Oracle は、宣言部分で変数に指定されたサイズではなく、変数に格納されている文字列の実際の長さのみをメモリ割り当ての際に考慮します。
  • メモリ使用量を最適化するには、CHAR データ型の代わりに VARCHAR2 を使用することをお勧めします。
manager VARCHAR2(10) := ‘guru99';

構文の説明:

  • 上記の宣言ステートメントは、最大サイズ 2 の VARCHAR10 データ型の変数 'manager' を宣言し、99 バイトの値 'guru6' を割り当てました。 Oracle この場合、メモリは 6 バイトのみ割り当てられます。
VARCHAR これは、VARCHAR2 データ型と同義です。

  • 動作の変更を避けるために、VARCHAR の代わりに VARCHAR2 を使用することを常に推奨します。
manager VARCHAR(10) := ‘guru99';

構文の説明:

  • 上記の宣言ステートメントは、最大サイズ 10 の VARCHAR データ型の変数 'manager' を宣言し、99 バイトの値 'guru6' を割り当てました。 Oracle この場合、メモリは 6 バイトのみ割り当てられます。 (VARCHAR2と同様)
NCHAR このデータ型は CHAR データ型と同じですが、文字セットは各国語文字セットになります。

  • この文字セットは、NLS_PARAMETERS を使用してセッションに対して定義できます。
  • 文字セットは UTF16 または UTF8 のいずれかです。
  • サイズ制限は 1 ~ 2000 バイトです。
native NCHAR(10);

構文の説明:

  • 上記の宣言ステートメントは、最大サイズが 10 の NCHAR データ型の変数 'native' を宣言します。
  • この変数の長さは、文字セットで定義されているバイトごとの (長さの数) によって異なります。
NVARCHAR2 このデータ型は VARCHAR2 データ型と同じですが、文字セットは各国語文字セットになります。

  • この文字セットは、NLS_PARAMETERS を使用してセッションに対して定義できます。
  • 文字セットは UTF16 または UTF8 のいずれかです。
  • サイズ制限は 1 ~ 4000 バイトです。
Native var NVARCHAR2(10):='guru99';

構文の説明:

  • 上記の宣言ステートメントは、最大サイズが 2 の NVARCHAR10 データ型の変数 'Native_var' を宣言します。
長くて長い このデータ型は、最大サイズ 2GB までの大きなテキストまたは生データを保存するために使用されます。

  • これらは主にデータ ディクショナリで使用されます。
  • LONG データ型は文字セット データを格納するために使用され、LONG RAW はデータをバイナリ形式で格納するために使用されます。
  • LONG RAW データ型はメディア オブジェクト、画像などを受け入れますが、LONG は文字セットを使用して保存できるデータに対してのみ機能します。
Large_text LONG;
Large_raw LONG RAW;

構文の説明:

  • 上記の宣言ステートメントは、LONG データ型の変数 'Large_text' と LONG RAW データ型の 'Large_raw' を宣言します。

Note: LONG データ型の使用は推奨されていません Oracle。代わりに、LOB データ型を優先する必要があります。

PL/SQL NUMBER データ型

このデータ型は、最大 38 桁の精度の固定小数点数または浮動小数点数を格納します。このデータ型は、数値データのみを含むフィールドを操作するために使用されます。変数は、精度と小数点数の詳細付きで宣言することも、この情報なしで宣言することもできます。このデータ型に割り当てる場合、値を引用符で囲む必要はありません。

A NUMBER(8,2);
B NUMBER(8);
C NUMBER;

構文の説明:

  • 上記の最初の宣言では、変数 'A' が合計精度 8 と小数点以下 2 桁の数値データ型であることを宣言しています。
  • 8 番目の宣言では、変数 'B' が合計精度 XNUMX で小数点以下の桁がない数値データ型であることを宣言します。
  • 38 番目の宣言は最も汎用的で、変数 'C' が精度や小数点以下の桁数に制限のない数値データ型であることを宣言します。最大 XNUMX 桁まで使用できます。

PL/SQL BOOLEAN データ型

このデータ型には論理値が格納されます。 Oracle ブール データ型は TRUE または FALSE を表し、主に条件文で使用されます。このデータ型に代入する際、値を引用符で囲む必要はありません。

Var1 BOOLEAN;

構文の説明:

  • 上記では、変数 'Var1' が BOOLEAN データ型として宣言されています。 コードの出力は、設定された条件に基づいて true または false になります。

PL/SQL DATE データ型

このデータ型は、値を日付、月、年などの日付形式で保存します。 変数が日付とともに DATE データ型で定義されている場合は常に、時間情報を保持できます。指定されていない場合、デフォルトで時間情報は 12:00:00 に設定されます。 このデータ型に代入する際には、値を引用符で囲む必要があります。

標準 Oracle 入出力の時刻形式は「DD-MON-YY」で、セッション レベルで NLS_PARAMETERS (NLS_DATE_FORMAT) で再度設定されます。

newyear DATE:='01-JAN-2015';
current_date DATE:=SYSDATE;

構文の説明:

  • 上記では、変数 'newyear' が DATE データ型として宣言され、1 月 XNUMX 日の値が割り当てられています。st、2015年の日付。
  • 2 番目の宣言では、変数 current_date を DATE データ型として宣言し、現在のシステム日付に値を割り当てます。
  • これらの変数は両方とも時間情報を保持します。

PL/SQL LOB データ型

このデータ型は主に、画像やマルチメディア ファイルなどの非構造化データの大きなブロックを保存および操作するために使用されます。 Oracle LONG データ型よりも柔軟性が高いため、LONG データ型ではなく LOB を優先します。 LONG データ型に対する LOB の主な利点を以下に示します。

  • LONG データ型のテーブルの列数は 1 に制限されていますが、LOB データ型のテーブルの列数には制限がありません。
  • データ インターフェイス ツールは、データ レプリケーション中にテーブルの LOB データ タイプを受け入れますが、テーブルの LONG 列は省略します。 これらの LONG 列は手動でレプリケートする必要があります。
  • LONG 列のサイズは 2GB ですが、LOB は最大 128 TB まで保存できます。
  • Oracle は、最新の要件に従って各リリースで LOB データ型を継続的に改善していますが、LONG データ型は一定であり、あまり更新されていません。

したがって、LONG データ型の代わりに LOB データ型を使用するのが常に適切です。以下はさまざまな LOB データ型です。最大 128 テラバイトのサイズを保存できます。

  1. BLOB
  2. CLOB と NCLOB
  3. BFファイル
Data Type 説明 構文
BLOB このデータ型は、最大サイズ 128 TB までの LOB データをバイナリ ファイル形式で保存します。文字セットの詳細に基づいてデータを保存しないため、マルチメディア オブジェクトや画像などの非構造化データを保存できます。
Binary_data BLOB;

構文の説明:

  • 上記では、変数「Binary_data」が BLOB として宣言されています。
CLOB と NCLOB CLOB データ型は LOB データをキャラクタ セットに格納しますが、NCLOB はデータをネイティブ キャラクタ セットに格納します。 これらのデータ型は文字セットベースのストレージを使用するため、マルチメディアや画像など文字列に収まらないデータは保存できません。 これらのデータ型の最大サイズは 128 TB です。
Charac_data CLOB;

構文の説明:

  • 上記では、変数 'Charac_data' が CLOB データ型として宣言されています。
BFファイル
  • BFILE は、非構造化バイナリ形式のデータをオペレーティング システム ファイルとしてデータベースの外部に保存するデータ型です。
  • BFILE のサイズはオペレーティング システムによって制限されており、読み取り専用ファイルであるため変更できません。

まとめ

で使用できるさまざまな単純なデータ型について説明しました。 PL / SQLの およびその構文について説明します。複雑なデータ型については、以降のトピックで学習します。