2012-03-30 6 views
0

PL/SQLチュートリアルの下の抜粋を参照してください。私が問題を抱えている部分は3行目です。そこでは給料は6です。私はそれが何を意味するのか分かりません。この抜粋の最後の行では、 "長さ10"の変数を宣言し、 "HR Dept"に初期化します。これは10文字ではありません。長さはどういう意味ですか?PL/SQLの「可変長」を理解していない


DECLARE 

salary number (6); 

* “salary” is a variable of datatype number and of length 6. 

変数はNOT NULLとして指定された場合、それが宣言されたとき、あなたは変数を初期化する必要があります。

例:次の例では、2つの変数を宣言していますが、そのうちの1つはnullではありません。

DECLARE 

salary number(4); 

dept varchar2(10) NOT NULL := “HR Dept”; 

別の例:

DECLARE 



var_salary number(6); 

var_emp_id number(6) = 1116; 

1116年6桁の数字ではありません。私は迷っている。

答えて

4

最大の長さ。 deptに11文字を保存しようとした場合、またはあなたの仕事が何であれ毎年何百万ものクールダウンを開始した場合、これを発見できます。

それはあなたがテーブルを作成するときと何ら変わりません。その場合は

create table users (
    id  integer, 
    name varchar(20) 
); 

20は、名前の最大の長さです。すべての行に20文字の名前が付いている必要はありません。

+0

HOLY @#*#$)196K DUDEあなたは何ですか? – Aerovistae

+1

私は約半分のSkeetです:-) – paxdiablo

3

これらは、のデータの最大長のです。精度pおよびスケールsを持つ

NUMBER [ (p [, s]) ]

番号:documentationから、ここ数の正確な意味はあります。精度pは、 1〜38の範囲で指定できます。スケールは-84〜127の範囲で指定できます。精度と の位取りはすべて10進数です。 NUMBER値には1〜22が必要です。 バイト。

NUMBER(6)が-999999からVARCHAR2 999999

及びための任意の数を格納することができるタイプの可変:

VARCHAR2(size [BYTE | CHAR])

は、可変長の文字列 極大を有します長さのバイトまたは文字。最大サイズは4000バイトまたは 文字で、最小値は1バイトまたは1文字です。 VARCHAR2には、 サイズを指定する必要があります。 BYTEは、列がバイト の長さセマンティクスを持つことを示します。 CHARは、列が文字 セマンティクスを持つことを示します。

VARCHAR2(10)は、パラメータnls_length_semanticsに応じて、10バイトまたは10文字まで格納できます。

0

oracleでは、number変数の長さは、保持できる最大桁数です。あなたの場合、-99999から999999までの数字を持つことができます

関連する問題