斷點

          每天進步一點點!
          posts - 174, comments - 56, trackbacks - 0, articles - 21

          PL/SQL編程

          Posted on 2010-01-14 22:09 斷點 閱讀(341) 評論(0)  編輯  收藏 所屬分類: SQL

          數據類型:

          數字類型:
          Number用來表示可變長的數值列,語法為Number(p, s),p是指所有有效數字的位數,s是指小數點以后的位數;p和s的取值分別是p=1 to 38,s=-84 to 127;
          有效數位:從左邊第一個不為0的數算起,小數點和負號不計入有效位數。

          p>0,對s分3種情況:
          1. s>0
          精確到小數點右邊s位,并四舍五入。然后檢驗有效數位是否<=p;如果s>p,小數點右邊至少有s-p個0填充。
          2. s<0
          精確到小數點左邊s位,并四舍五入。然后檢驗有效數位是否<=p+|s|
          3.s是0或者未指定,四舍五入到最近整數。
          注意:當p小于s時候,表示數字是絕對值小于1的數字,且從小數點右邊開始的前s-p 位必須是0,保留s位小數。

          比如
          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 結果為:
          ID
          123.46
          1.23
          0.00

          Number類型存儲實數,PLS_Integer和BINARY_Integer只能存儲整數。

          字符類型:

          Char表示定長的字符串,語法Char(L),L是可選的。如果沒有指定L值,默認為1;最大長度為32767。

          VarChar2用來存儲可變的字符串,語法VarChar2(L),L是必須的。最大長度為32767。

          布爾類型:

          Boolean類型的合法賦值為True、False和Null。

          類型轉換:

          To_Char:可以將Number和Date類型轉換為Varchar2類型;

          To_Date:將Char類型轉換Date類型;

          To_Number:將Char類型轉換Number類型;

          變量和常量:

          變量名稱:1.必須以字母開頭;2.其后可以跟一個或多個字母、數字(0~9)、特殊字符$、#或_ ;

                        3.變量長度不超過30個字符;4.變量名中不能有空格。

          1.變量的聲明:

          DECLARE
          v_StudentName VARCHAR2(20),
          v_CurrentDate DATE;
          v_NumberCredits NUMBER(3);

          2.自定義的數據類型:

          DECLARE
          TYPE t_StudentRecord IS RECORD (FirstName Varchar2(10),LastName Varchar2(10),

          CurrentCredits NUMBER(3));
          v_Student  t_StudentRecord;

          3.變量屬性:

          下面介紹常見的幾種復合數據類型變量的定義。
              (1)使用%type定義變量
              為了讓PL/SQL中變量的類型和數據表中的字段的數據類型一致,Oracle 9i提供了%type定義方法。這
          樣當數據表的字段類型修改后,PL/SQL程序中相應變量的類型也自動修改。如下:
          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可以使變量獲得字段的數據類型,使用%rowtype可以使變量獲得整個記錄的數據類型。

              比較兩者定義的不同:變量名 數據表.列名%type,變量名 數據表%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;
           

          流程控制:

           

           待續。。。

          posted @ 2009-02-03 11:33 斷點 閱讀(176) | 評論 (0)

          主站蜘蛛池模板: 太仓市| 奉新县| 洛宁县| 塘沽区| 安丘市| 临泽县| 修武县| 施秉县| 雅安市| 南召县| 秦皇岛市| 浮山县| 定西市| 遂溪县| 鸡西市| 贵德县| 德兴市| 兴隆县| 增城市| 镇沅| 永福县| 琼中| 奉化市| 塔河县| 阳春市| 苗栗市| 光泽县| 原阳县| 西安市| 天镇县| 武强县| 卢氏县| 铜川市| 牡丹江市| 莱西市| 襄城县| 弋阳县| 麻城市| 大埔县| 莆田市| 德兴市|