Posted on 2010-01-14 22:09
斷點 閱讀(338)
評論(0) 編輯 收藏 所屬分類:
SQL
數(shù)據(jù)類型:
數(shù)字類型:
Number用來表示可變長的數(shù)值列,語法為Number(p, s),p是指所有有效數(shù)字的位數(shù),s是指小數(shù)點以后的位數(shù);p和s的取值分別是p=1 to 38,s=-84 to 127;
有效數(shù)位:從左邊第一個不為0的數(shù)算起,小數(shù)點和負(fù)號不計入有效位數(shù)。
p>0,對s分3種情況:
1. s>0
精確到小數(shù)點右邊s位,并四舍五入。然后檢驗有效數(shù)位是否<=p;如果s>p,小數(shù)點右邊至少有s-p個0填充。
2. s<0
精確到小數(shù)點左邊s位,并四舍五入。然后檢驗有效數(shù)位是否<=p+|s|
3.s是0或者未指定,四舍五入到最近整數(shù)。
注意:當(dāng)p小于s時候,表示數(shù)字是絕對值小于1的數(shù)字,且從小數(shù)點右邊開始的前s-p 位必須是0,保留s位小數(shù)。
比如
Value Datatype Stored Value
123.2564 NUMBER 123.2564
1234.9876 NUMBER(6) 1235
1234.9876 NUMBER(6,2) 1234.99
12345.12345 NUMBER(6,2) Error
12345.345 NUMBER(5,-2) 12300
1234567 NUMBER(5,-2) 1234600
12345678 NUMBER(5,-2) Error
12345.58 NUMBER(*, 1) 12345.6
0.1 NUMBER(4,5) Error
0.01234567 NUMBER(4,5) 0.01235
0.09999 NUMBER(4,5) 0.09999
0.099996 NUMBER(4,5) <>
用法如下:
create table t_n(id number(5,2));
insert into t_n values(123.455);
insert into t_n values(1.234);
insert into t_n values(.001);
select * from t_n 結(jié)果為:
Number類型存儲實數(shù),PLS_Integer和BINARY_Integer只能存儲整數(shù)。
字符類型:
Char表示定長的字符串,語法Char(L),L是可選的。如果沒有指定L值,默認(rèn)為1;最大長度為32767。
VarChar2用來存儲可變的字符串,語法VarChar2(L),L是必須的。最大長度為32767。
布爾類型:
Boolean類型的合法賦值為True、False和Null。
類型轉(zhuǎn)換:
To_Char:可以將Number和Date類型轉(zhuǎn)換為Varchar2類型;
To_Date:將Char類型轉(zhuǎn)換Date類型;
To_Number:將Char類型轉(zhuǎn)換Number類型;
變量和常量:
變量名稱:1.必須以字母開頭;2.其后可以跟一個或多個字母、數(shù)字(0~9)、特殊字符$、#或_ ;
3.變量長度不超過30個字符;4.變量名中不能有空格。
1.變量的聲明:
DECLARE
v_StudentName VARCHAR2(20),
v_CurrentDate DATE;
v_NumberCredits NUMBER(3);
2.自定義的數(shù)據(jù)類型:
DECLARE
TYPE t_StudentRecord IS RECORD (FirstName Varchar2(10),LastName Varchar2(10),
CurrentCredits NUMBER(3));
v_Student t_StudentRecord;
3.變量屬性:
下面介紹常見的幾種復(fù)合數(shù)據(jù)類型變量的定義。
(1)使用%type定義變量
為了讓PL/SQL中變量的類型和數(shù)據(jù)表中的字段的數(shù)據(jù)類型一致,Oracle 9i提供了%type定義方法。這樣當(dāng)數(shù)據(jù)表的字段類型修改后,PL/SQL程序中相應(yīng)變量的類型也自動修改。如下:
declare
mytable emp.empno%type;
begin
select a.empno into mytable
from emp a
where a.ename='SCOTT';
dbms_output.put_line(mytable);
end;
(2)使用%rowtype定義變量
使用%type可以使變量獲得字段的數(shù)據(jù)類型,使用%rowtype可以使變量獲得整個記錄的數(shù)據(jù)類型。
比較兩者定義的不同:變量名 數(shù)據(jù)表.列名%type,變量名 數(shù)據(jù)表%rowtype。
declare
mytable emp%rowtype;
begin
select * into mytable
from emp a
where a.ename='SCOTT';
dbms_output.put_line(mytable.empno||' '||mytable.job);
end;
流程控制:
待續(xù)。。。
posted @ 2009-02-03 11:33 斷點 閱讀(176) | 評論 (0)