Oracle之PL/SQL編程_資料類型與定義變數和常量

來源:互聯網
上載者:User

標籤:oracle 資料類型 變數 常量

-----------------------------------基礎資料型別 (Elementary Data Type)-----------------------------------


1.數實值型別

NUMBER(P,S)

參數 P 表示精度,參數 S 表示刻度範圍。

精度是指數值中所有有效數位個數,而刻度範圍是指小數點右邊小數位的個數。

“子類型” 是與 NUMBER 等價的類型別名。

子類型:DEC、DECIMAL、DOUBLE、INTEGER、INT、NUMERIC、SMALLINT、BINARY_INTEGER、PLS_INTEGER


2.字元類型

字元類型:VARCHAR2、CHAR、LONG、NCHAR、NVARCHAR2

這些類型的變數 用來儲存字串或字元資料。

VARCHAR2(maxlength)

參數 maxlength 表示可以儲存字串的最大長度,這參數值在定義變數時必須給出(因為 VARCHAR2 類型沒有預設的最大長度),

參數 maxlength 的最大值可以是 32767 位元組。


CHAR(maxlength)

參數 maxlength 的最大值可以是 32767 位元組.

CHAR 類型預設最大長度為 1 位元組。如果賦給 CHAR 類型變數的值不足 maxlength,則在其後邊用 空格 補全。

 

3.日期類型

DATE


4.布爾類型

BOOLEAN

其變數值可以為 TRUE、FALSE、NULL 中的一種。



-----------------------------------特殊資料類型-----------------------------------


1. %TYPE 類型

使用 %TYPE 關鍵字可以聲明一個與 指定列名稱相同的資料類型,它通常緊跟在指定列的後邊。

例:

聲明一個與 emp 表中 job 列的資料類型完全相同的變數 var_job

declare

var_job emp.job%TYPE;

2. RECORD 類型,也叫“記錄類型”

type record_type is record

(

var_member1 data_type [not null][:=default_value],

...

var_membern data_type [not null][:=default_value])


record_type:表示要定義的記錄類型名稱。

var_member1:表示該記錄類型的成員變數名稱。

data_type:表示成員變數的資料類型。


例:

聲明一個記錄類型 emp_type,然後使用該類型的變數儲存 emp 表中的一條記錄資訊,並輸出這條記錄。

declare

type emp_type is record--聲明 record 類型 emp_type

(

var_ename varchar2(20),--定義欄位/成員變數

var_job varchar2(20),

var_sal number

);

empinfo emp_type;--定義變數

begin

select ename,job,sal

into empinfo

from emp

where empno=7369;

/*輸出僱員資訊*/

dbms_output.put_line(‘僱員‘||empinfo.var_ename||‘的職務是‘||empinfo.var_job||‘、工資是‘||empinfo.var_sal);

end;

/

輸出結果:

僱員SMITH的職務是CLERK、工資是2712.5


3. %ROWTYPE 類型

%ROWTYPE 類型的變數結合了 %TYPE 類型和 RECORD 類型變數的優點,它可以根據資料表中行的結構定義一種

特殊的資料類型,用來儲存從資料表中檢索到的一行資料。


rowVar_name table_name%rowtype;


rowVar_name:表示可以儲存一行資料的變數名。

table_name:指定的表名。


例:

聲明一個 %ROWTYPE 類型的變數 rowVar_emp,然後使用該變數儲存 emp 表中的一行資料,並輸出。

declare

rowVar_emp emp%rowtype;--定義能夠儲存 emp 表一行資料的變數

begin

select *

into rowVar_emp

from emp

where empno=7369;

/*輸出僱員資訊*/

dbms_output.put_line(‘僱員‘||rowVar_emp.var_ename||‘的職務是‘||rowVar_emp.var_job||‘、工資是‘||rowVar_emp.var_sal);

end;

/

輸出結果:

僱員SMITH的職務是CLERK、工資是2712.5


-----------------------------------定義變數和常量-----------------------------------


1. 定義變數


<變數名> <資料類型> [(長度):=<初始值>];


例:

var_countryname varchar2(50):=‘中國‘;


2. 定義常量


<常量名> constant <資料類型>:=<常量值>;


例:

con_day constant integer:=365;



Oracle之PL/SQL編程_資料類型與定義變數和常量

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.