pl sql data types variables
このチュートリアルでは、プログラミング例を使用して、PL SQLのデータ型、変数、定数、リテラルについて詳しく説明します。
の前のチュートリアルでは PL / SQLシリーズ 、PL / SQLの機能と基本的な構文、および例を紹介しました。
この記事では、PL / SQLがサポートするさまざまなデータ型について説明します。また、PLSQLで広く使用されている変数と定数についても説明します。
PL / SQLリテラルも重要であり、このチュートリアルで実際の使用法とともに学習します。
学習内容:
PlSQLデータ型
PL / SQLのすべての変数、定数、パラメータには、値の範囲、制約、およびそれらが格納される形式を定義する特定のデータ型があります。 PL / SQLには、LOB、スカラー、リファレンス、コンポジットとも呼ばれるラージオブジェクトなどのデータ型が含まれています。
スカラーデータ型
まず、以下で構成されるスカラーデータ型について説明します。
- 数値 数学演算が実行される値を処理するデータ型。
- ブール 論理演算が実行される値を処理するデータ型。
- キャラクター 英数字で構成される値を処理するデータ型。
- 日付時刻 データ型。
数値データ型
PL / SQLの数値データ型は次のもので構成されます。
- BINARY_FLOAT
- BINARY_INTERGER
- PLS_INTEGER
- BINARY_DOUBLE
- 10進数
- 数値
- 数
- 浮く
- INT
- 整数
- 倍精度
- リアル
- SMALLINT
- 12月
数値データ型のコードスニペット:
DECLARE numA INTEGER := 10; numB NUMBER(10) := 10.8; numC DOUBLE PRECISION := 10.6; BEGIN dbms_output.put_line('The numA is: ' || numA); dbms_output.put_line('The numB is: ' || numB); dbms_output.put_line('The numC is: ' || numC); END; /
上記のコードには、変数numA、numB、およびnumCを持つINTEGER、NUMBER、およびDOUBLEPRECISIONデータ型があります。 numBには、精度10の数値データ型があり、小数点以下の桁はありません。
上記のコードの出力は次のようになります。
文字データ型
PL / SQLの文字データ型は、以下のとおりです。
#1)VARCHAR2: このデータ型は文字列を格納しますが、文字列の長さは宣言時に固定されていません。 varchar2の最大サイズは最大32767バイトです。 varchar2データベース列の最大幅は4000バイトです。
構文:
test VARCHAR2(20):= ‘SoftwareTest’;
#2)CHAR: このデータ型は文字列を格納しますが、文字列の長さは宣言時に固定されています。 charの最大サイズは最大32767バイトです。 charデータベース列の最大幅は2000バイトです。
構文:
テストCHAR2(20):= ‘SoftwareTest’;
#3)NCHAR: これはCHARに似ていますが、国別の文字セットのみを格納します。 NCHARの最大サイズは最大32767バイトです。 NCHARデータベース列の最大幅は2000バイトです。
構文:
NCHAR2(20);をテストします。
#4)長い: これにより、可変長の文字列が格納されます。 longの最大サイズは最大32760バイトです。
構文:
LONGをテストします。
#5)長い列: これにより、データがバイナリ形式またはバイト文字列で保存されます。長い行の最大サイズは最大32760バイトです。
配列javaから値を削除する方法
構文:
LONGROWをテストします;
#6)ROWID: これらは、通常のテーブルの行のアドレスを指す行の物理識別子です。
#7)UROWID: これらは行のユニバーサル識別子です。
#8)NVARCHAR2: これはVARCHAR2に似ていますが、国別の文字セットのみを格納します。 nvarchar2データベース列の最大幅は4000バイトです。
#9)VARCHAR: これはVARCHAR2に似ています。
構文:
test VARCHAR2(20):= ‘SoftwareTest’;
ここで、PL / SQLの文字データ型を表形式で説明します。
Sl No. | データ・タイプ | 説明 |
---|---|---|
7 | LONGROW | これはLONGに似ています。このデータはPL / SQLによって解釈されません。 |
1 | VARCHAR2 | これは、可変長の文字データを格納するために使用されます。サイズは、宣言時に変数に設定されます。効果的なメモリ使用量のために、VARCHAR2を使用することを常にお勧めします。 |
二 | CHAR | 固定長の文字データを格納するために使用します。サイズは、宣言時に変数に設定されます。固定サイズのデータを使用する場合は、常にCHARを使用することをお勧めします。 |
3 | VARCHAR | これはVARCHAR2に似ています。コードの実装中は、常にVARCHARを使用することをお勧めします。 |
4 | NCHAR | これは、固定長の国民性文字データである文字データを格納するために使用されます。文字セットはUTF8またはUTF16のいずれかです。CHARをNCHARに変換することを常にお勧めします。ただし、NCHARをCHARに変換すると、データが切り捨てられる可能性があります。 |
5 | NVARCHAR2 | これは、可変長の国民性文字データである文字データを格納するために使用されます。これはVARCHAR2に似ています。文字セットはUTF8またはUTF16のいずれかです。VARCHAR2をNVARCHAR2に変換することを常にお勧めします。ただし、NVARCHAR2をVARCHAR2に変換すると、データが切り捨てられる可能性があります。 |
6 | 長いです | これはデータディクショナリで使用されます。これは主に文字セットデータで使用されます。 |
ブールデータ型
PL / SQLのこれらのデータ型は、論理値の格納に使用できます。 TRUE、FALSE、およびNULLはブール値です。
SQLにはBOOLEANデータ型はありません。したがって、次のシナリオではそれらを回避する必要があります。
- SQLから生成されたPL / SQL文。
- PL / SQLのデフォルト機能。
- 通常のSQLステートメント。
構文:
test Boolean;
テスト変数の出力は、特定の基準に応じてTRUEまたはFALSEになります。
日時データ型
これらのデータ型は、一定の長さの日付と時刻に使用されます。適切な日付の範囲は、紀元前4712年1月1日から西暦9999年12月31日までで、時間は秒単位で定義されます。組み込みの日付形式はDD-MON-YYです。これは、月の日に2桁の数字、略して月の名前、そして年の下2桁を意味します。
DATEは、秒、分、日、時、月、年、および世紀で構成されます。これらの各フィールドには、以下に示すように定義された特定の範囲があります。
- 2番目: 00から59.9の範囲で定義されます。
- 分: 00から59の範囲で定義されます。
- 時間: 00から23の範囲で定義されます。
- 日: 01から31の範囲で定義されます。
- 月: 01から12の範囲で定義されます。
- 年: -4712から9999(0を含まない)の範囲で定義されます。
- TIMEZONE_HOUR: -12から14の範囲で定義されます。
- TIMEZONE_MINUTE: 00から59の範囲で定義されます。
- TIMEZONE_REGION
- TIMEZONE_ABBR
構文:
TIMESTAMP '1990-06-04 9:00:00 US/Pacific' TIMESTAMP '1990-06-04 01:30:00 US/Pacific PDT'
ここでは、シンボルを使用してタイムゾーンについて説明しました。 US / PacificまたはPDT仕様は、特定のタイムゾーンを定義するために使用されます。 PDTフォームは、夏時間に切り替える際のガイドラインを提供するため、主に使用されます。
LOBデータ型
ここで、ビデオ、サウンド、グラフィックス、画像などで構成されるデータの巨大なチャンクを処理するLOBデータ型について説明します。
LOBデータ型には、長いデータ型に比べて多くの利点があります。それらは以下にリストされています:
- Longは2GBを収容できますが、LOBは128TBを保持できます。
- テーブルにはLONG型の単一の列を含めることができますが、データ型LOBの列は多数存在する可能性があります。
- LOBデータ型は、Oracleから絶えず改善および更新されていますが、LONGデータ型には多くの改善および更新がありません。
LOBデータ型を以下に示します。
- BFILE: これは、オペレーティングシステムファイルとしてデータベースからバイナリ形式の非構造化データを保持するために使用されます。
- NCLOB: これは、データベースに巨大なNCHARデータを保持するために使用されます。
- CLOB: これは、データベースに文字タイプの巨大なデータを保持するために使用されます。
構文:
バイナリCLOB;
- BLOB: これは、データベースに巨大なバイナリデータを保持するために使用されます。
構文:
バイナリBLOB;
一部のデータ型を使用したコード実装:
DECLARE m CHAR(20) := 'softwareTest!'; n VARCHAR2(30) := 'plsql'; o NCHAR(30) := 'plsql datatypes'; p NVARCHAR2(30) := 'plsql literals'; presentDt DATE:= SYSDATE; a INTEGER := 16; b NUMBER(20) := 11.2; c DOUBLE PRECISION := 14.7; BEGIN dbms_output.put_line('The char datatype is: ' || m); dbms_output.put_line('The varchar datatype is: ' || n); dbms_output.put_line('The nchar datatype is: ' || o); dbms_output.put_line('The nvarchar2 datatype is: ' || p); dbms_output.put_line('The current date is: ' || presentDt); dbms_output.put_line('The number a is: ' || a); dbms_output.put_line('The number b is: ' || b); dbms_output.put_line('The number c is: ' || c); END; /
上記のコードの出力は次のようになります。
PLSQL変数
PL / SQL変数名は、30文字以下の英数字で構成される命名規則に従います。 PL / SQLでは大文字と小文字が区別されないため、キーワードを変数として使用しないでください。
変数名は意味のあるものである必要があり、その後にアンダースコア(_)、数値、またはドル($)を続けることができます。
PLSQL変数宣言
PL / SQLの変数は、宣言領域で使用可能であるか、グローバル変数としてパッケージに存在する必要があります。 PL / SQLは変数用にメモリを予約し、ストレージの場所は変数名によって定義されます。
変数宣言の構文:
variable_name [CONSTANT] datatype [NOT NULL] [:= | DEFAULT initial_value]
ここで、variable_nameは本物のPL / SQL識別子であり、データ型はユーザー定義または確認済みのPL / SQLデータ型にすることができます。
変数宣言のコード実装:
DECLARE v_namis VARCHAR2(10); n_addressis NUMBER(10,3); BEGIN dbms_output.put_line('The name is: ' || v_namis); dbms_output.put_line('The address is: ' || n_addressis); END;
上記のコードの出力は次のようになります。
ご注意ください、 数値データ型の精度とサイズの両方について説明しました。これは、制約付き宣言として知られています。このタイプの宣言は、より少ないメモリを消費します。
PL / SQL変数の初期化
デフォルトでは、PL / SQLは変数の値をNULLとして受け取ります。ただし、変数をNULLで初期化したくない場合は、DEFAULTキーワードを使用するか、代入演算子を使用して初期化できます。
構文:
num integer := 50; test varchar(40) DEFAULT 'Software Test Help';
NOT NULL制約に言及することで、変数がNULL値を持たないように定義することもできます。ただし、NOT NULL制約を使用する場合は、変数の値を設定する必要があります。
変数の初期化を使用したコードの実装:
DECLARE v_namis VARCHAR2(40) := 'softwareTest!'; n_couris VARCHAR2(30) := 'plsql'; BEGIN dbms_output.put_line('The value is: ' || v_namis); dbms_output.put_line('The value is: ' || n_couris); END; /
上記のコードの出力は次のようになります。
割り当ての概念を使用したコードの実装:
DECLARE v_namis VARCHAR2(40); n_couris VARCHAR2(30); BEGIN v_namis := 'softwareTest!'; n_couris := 'plsql'; dbms_output.put_line('The value is: ' || v_namis); dbms_output.put_line('The value is: ' || v_couris); END; /
ここでは、代入演算子(=)を使用して変数に値を代入します。
上記のコードの出力は次のようになります。
PL / SQL変数スコープ
PL / SQLブロックには、コードの内部ブロックを含めることができます。宣言された変数が内部ブロックの一部である場合、外部ブロックで使用することはできません。ただし、外側のブロックの一部である変数は、コードの内側のブロックで操作できます。
これらのタイプの変数について、以下で説明します。
- グローバル変数: 外側のブロックまたはパッケージで宣言されている変数。
- ローカル変数: コードの内側のブロックで宣言され、外側のブロックからアクセスできない変数。
グローバル変数とローカル変数を使用したコードの実装:
DECLARE -- Global variables val number := 10; BEGIN dbms_output.put_line('Global variable is : ' || val); DECLARE -- Local variables val number := 100; BEGIN dbms_output.put_line('Local variable is: ' || val); END; END; /
上記のコードの出力は次のようになります。
ご注意ください ここでの出力では、グローバル変数は10(グローバル変数valのため)であり、「ローカル変数は100(ローカル変数valのため)です。
PL / SQLアンカー
PL / SQLアンカーはキーワード%TYPEで定義され、テーブルの特定の列のデータ型に接続されたデータ型の変数を宣言します。
アンカー付きのコードスニペット:
DECLARE v_namis RESSIDENT.NAME%TYPE; n_addessis RESSIDENT.ADDRESS%TYPE; BEGIN NULL; END; /
ここでは、RESIDENTテーブルがあり、そのテーブルのNAME列とADDRESS列を処理しています。
PL / SQLの定数
定数は、プログラム全体で一度宣言された値を変更せずに保持します。
PL / SQL定数宣言
ザ・ 絶え間ない キーワードは、プログラムの定数を定義するために使用されます。これは、プログラム全体で同じままである事前定義された値から始まります。
変数宣言の構文:
const_name CONSTANT data type := val
定数を使用したコード実装:
DECLARE -- Constant p constant number := 3.141592654; -- Radius declarations r number(10,1); a_circle number(10,3); BEGIN -- Area calculation r := 9.4; a_circle := p * r * r; -- Output in console dbms_output.put_line('Area of circle: ' || a_circle); END; /
上記のコードの出力は次のようになります。
PLSQLのリテラル
PL / SQL識別子で定義されていないブール値、数値値、または文字列値は、リテラルと呼ばれます。 リテラルでは大文字と小文字が区別され、以下に示すタイプがあります。
- ブールリテラル[ 例えば - 真偽 ]
- 文字リテラル[ 例えば –「s」、「7」、「)」]
- 文字列リテラル[ 例えば –「ソフトウェアテスト」]
- 数値リテラル[ 例えば -78、04、6.3]
- 日付と時刻のリテラル[ 例えば -’25 -05-2012 ’]
よくある質問と回答
Q#1) PL SQLのデータ型は何ですか?
回答: PLSQLのデータ型は複合およびスカラーです。スカラーデータ型は、Character、Number、Boolean、DateTimeなどの単一の値を保持できます。一方、複合データ型には、収集や記録などの複数の値が格納されます。
Q#2) PL / SQL変数とは何ですか?
回答: PL SQL変数は、開発者がプログラムの実行中にデータを一時的に格納するのに役立つ名前です。これは、ストレージ領域に割り当てられた意味のある名前です。 PL / SQLのすべての変数は、特定のデータ型に属しています。
Q#3)PL / SQLで日付パラメータを渡す方法は?
回答: DATEキーワードを使用して、PL / SQLで日付パラメータを渡すことができます。 「YYYY-MM-DD」という固定形式に従います。
Q#4) PL / SQLで定数をどのように宣言しますか?
回答: キーワードCONSTANTを使用して、PL / SQLで定数を宣言できます。 CONSTANTの後に、それに割り当てられている値について言及する必要があります。この値は、プログラム全体で固定されたままです。
Q#5) PL / SQLで使用できるリテラルのタイプはいくつですか?
回答: PL / SQLのリテラルのタイプは、数値、日時、テキスト、および整数です。
Q#6) PL SQL変数では大文字と小文字が区別されますか?
回答: 予約語を含むPLSQL変数では、大文字と小文字は区別されません。 例えば、 BEGINとbeginはどちらも同じ目的を果たします。
結論
使用されるさまざまなデータ型とその重要性、およびPL SQLの変数などのトピックを扱う、PL / SQLの大部分は、このチュートリアルを読んだ後、理解できるはずです。
また、PLSQLの定数とリテラルについても詳しく調べました。各トピックを1つずつ確認し、ゆっくりとこれをマスターします。 PL / SQLは、今日、Web開発とサーバー開発の両方の業界で使用されています。
次のチュートリアルでは、PL / SQLの挿入、更新、削除、選択ステートメント、およびその他の関連トピックについて説明します。
より多くの知識の共有にご期待ください。