溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Oracle之PL/SQL編程_數(shù)據(jù)類(lèi)型與定義變量和常量

發(fā)布時(shí)間:2020-07-23 12:51:35 來(lái)源:網(wǎng)絡(luò) 閱讀:1319 作者:SimplePoint 欄目:關(guān)系型數(shù)據(jù)庫(kù)

-----------------------------------基本數(shù)據(jù)類(lèi)型-----------------------------------


1.數(shù)值類(lèi)型

NUMBER(P,S)

參數(shù) P 表示精度,參數(shù) S 表示刻度范圍。

精度是指數(shù)值中所有有效數(shù)字的個(gè)數(shù),而刻度范圍是指小數(shù)點(diǎn)右邊小數(shù)位的個(gè)數(shù)。

“子類(lèi)型” 是與 NUMBER 等價(jià)的類(lèi)型別名。

子類(lèi)型:DEC、DECIMAL、DOUBLE、INTEGER、INT、NUMERIC、SMALLINT、BINARY_INTEGER、PLS_INTEGER


2.字符類(lèi)型

字符類(lèi)型:VARCHAR2、CHAR、LONG、NCHAR、NVARCHAR2

這些類(lèi)型的變量 用來(lái)存儲(chǔ)字符串或字符數(shù)據(jù)。

VARCHAR2(maxlength)

參數(shù) maxlength 表示可以存儲(chǔ)字符串的最大長(zhǎng)度,這參數(shù)值在定義變量時(shí)必須給出(因?yàn)?VARCHAR2 類(lèi)型沒(méi)有默認(rèn)的最大長(zhǎng)度),

參數(shù) maxlength 的最大值可以是 32767 字節(jié)。

CHAR(maxlength)

參數(shù) maxlength 的最大值可以是 32767 字節(jié).

CHAR 類(lèi)型默認(rèn)最大長(zhǎng)度為 1 字節(jié)。如果賦給 CHAR 類(lèi)型變量的值不足 maxlength,則在其后邊用 空格 補(bǔ)全。

 

3.日期類(lèi)型

DATE


4.布爾類(lèi)型

BOOLEAN

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



-----------------------------------特殊數(shù)據(jù)類(lèi)型-----------------------------------


1. %TYPE 類(lèi)型

使用 %TYPE 關(guān)鍵字可以聲明一個(gè)與 指定列名稱(chēng)相同的數(shù)據(jù)類(lèi)型,它通常緊跟在指定列的后邊。

例:

聲明一個(gè)與 emp 表中 job 列的數(shù)據(jù)類(lèi)型完全相同的變量 var_job

declare
var_job emp.job%TYPE;


2. RECORD 類(lèi)型,也叫“記錄類(lèi)型”

type record_type is record
(
var_member1 data_type [not null][:=default_value],
...
var_membern data_type [not null][:=default_value])


record_type:表示要定義的記錄類(lèi)型名稱(chēng)。

var_member1:表示該記錄類(lèi)型的成員變量名稱(chēng)。

data_type:表示成員變量的數(shù)據(jù)類(lèi)型。


例:

聲明一個(gè)記錄類(lèi)型 emp_type,然后使用該類(lèi)型的變量存儲(chǔ) emp 表中的一條記錄信息,并輸出這條記錄。

declare
type emp_type is record--聲明 record 類(lèi)型 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||'的職務(wù)是'||empinfo.var_job||'、工資是'||empinfo.var_sal);
end;
/

輸出結(jié)果:

雇員SMITH的職務(wù)是CLERK、工資是2712.5


3. %ROWTYPE 類(lèi)型

%ROWTYPE 類(lèi)型的變量結(jié)合了 %TYPE 類(lèi)型和 RECORD 類(lèi)型變量的優(yōu)點(diǎn),它可以根據(jù)數(shù)據(jù)表中行的結(jié)構(gòu)定義一種

特殊的數(shù)據(jù)類(lèi)型,用來(lái)存儲(chǔ)從數(shù)據(jù)表中檢索到的一行數(shù)據(jù)。

rowVar_name table_name%rowtype;


rowVar_name:表示可以存儲(chǔ)一行數(shù)據(jù)的變量名。

table_name:指定的表名。


例:

聲明一個(gè) %ROWTYPE 類(lèi)型的變量 rowVar_emp,然后使用該變量存儲(chǔ) emp 表中的一行數(shù)據(jù),并輸出。

declare
rowVar_emp emp%rowtype;--定義能夠存儲(chǔ) emp 表一行數(shù)據(jù)的變量
begin
select *
into rowVar_emp
from emp
where empno=7369;
/*輸出雇員信息*/
dbms_output.put_line('雇員'||rowVar_emp.var_ename||'的職務(wù)是'||rowVar_emp.var_job||'、工資是'||rowVar_emp.var_sal);
end;
/

輸出結(jié)果:

雇員SMITH的職務(wù)是CLERK、工資是2712.5


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


1. 定義變量


<變量名> <數(shù)據(jù)類(lèi)型> [(長(zhǎng)度):=<初始值>];


例:

var_countryname varchar2(50):='中國(guó)';


2. 定義常量


<常量名> constant <數(shù)據(jù)類(lèi)型>:=<常量值>;


例:

con_day constant integer:=365;



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI