大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 PL/SQL變量詳解

PL/SQL變量詳解

更新時間:2021-03-16 17:25:36 來源:動力節點 瀏覽1573次

我們在編寫PL/SQL程序時,可以定義變量和常量。在PL/SQL程序中的變量包括有標量類型(scalar)、復合類型(composite)、參照類型(references)、lob(large object)。下面我們來具體分析PL/SQL變量的使用和定義。

1、標量(scalar)

在編寫PL/SQL塊時,如果要使用變量,需要在定義部分定義變量。

PL/SQL中定義變量和常量的語法如下:

identifier [constant] datatype [not null] [:=| default expr]

identifier:名稱

constant:指定常量。需要指定它的初始值,其其值是不能改變的。

datatype:數據類型

not null:指定變量值不能為NULL

:=:給變量或是常量指定初始值

default:用于指定初始值

expr:指定初始值PL/SQL表達式,可是文本值、其他變量、函數等。

標量定義的案例

(1)定義一個變長字符串

v_ename varchar2(10);

(2)定義一個小數,范圍-9999.99~9999.99

v_sal number(6,2);

(3)定義一個小數并給一個初始值為5.4 :=是PL/SQL的賦值號

v_sal2 number(6,2):=5.3;

(4)定義一個日期類型的數據

v_hiredate date;

(5)定義一個布爾變量,不能為空,初始值為false

v_valid boolean not null default false;

A、使用標量

在定義好變量后,就可以使用這些變量。這里需要 說明的是PL/SQL塊為變量賦值不同于其他的編程語言,需要在等號前面加冒號(:=)。

下面以輸入員工號,顯示雇員姓名、工資、個人所得稅(稅率為0.03)為例,說明變量的使用,看看如何編寫。d

eclare

c_tax_rate number(3,2):=0.03;

v_ename varchar2(5);

v_sal number(7,2);

v_tax number(7,2);

begin

select ename,sal into v_ename,v_sal from emp where empno=&no;

v_tax:=v_sal*c_tax_rate;

dbms_output.put_line('姓名是:'||v_ename||' 工資是:'||v_sal||' 所得稅是:'||v_tax);

end;

B、使用%type類型

對于上面的PL/SQL塊有一個問題:

就是如果員工的姓名超過了5字符的話,就會有錯誤,為了降低PL/SQL程序的維護工作量,可以使用%type屬性定義變量,這樣它會按照數據庫列來確定你定義的變量的類型和長度。

語法:標識符名 表名.列名%type;

案例:

declear

c_tax_rate number(3,2):=0.03;

v_ename emp.ename%type;

v_sal emp.sal%type;

v_tax number(7,2);

begin

select ename,sal into v_ename,v_sal from emp where empno=&no;

v_tax:=v_sal*c_tax_rate;

dbms_output.put_line('姓名是:'||v_ename||' 工資是:'||v_sal||' 所得稅是:'||v_tax);

end;

2、復合變量(composite)

用于存儲多個值的變量。主要包括這幾種PL/SQL記錄、PL/SQL表、嵌套表、varray。

1)PL/SQL記錄

類似于高級語言中的結構體,需要注意的是,當引用PL/SQL記錄成員時,必須要加記錄變量作為前綴(記錄變量.記錄成員)。

案例:

declare

type emp_record_type is record(name emp.ename%type, salary emp.sal%type,title emp.job%type);

sp_record emp_record_type;

begin

select ename,sal,job into sp_record from emp where empno=7788;

dbms_output.put_line('員工名:'||sp_record.name);

end;

2)PL/SQL表

相當于高級語言中的數組,但是需要注意的是在高級語言中數組的下標不能為負數,而PL/SQL是可以為負數的,并且表元素的下標沒有限制。

案例:

declare

type sp_table_type is table of emp.ename%type index by binary_integer;

sp_table sp_table_type;

begin

select ename into sp_table(0) from emp where empno=7788;

dbms_output.put_line('員工名:'||sp_table(0));

end;

說明:

sp_table_type:是PL/SQL表類型

emp.ename%type:指定了表的元素的類型和長度

sp_table:是PL/SQL表變量

sp_table(0):表示下標為0的元素

3、參照變量

概述:參照變量是指用于存放數值指針的變量,通過使用參照變量,可以使得應用程序共享相同對象,從而降低占用空間。在編寫PL/SQL程序時,可以使用游標變量(ref cursor)和對象類型變量(ref obj_type)兩種參照變量類型。

使用游標時,當定義游標時不需要指定相應的select語句,但是當使用游標時(open時)需要指定select語句,這樣一個游標就與一個select 語句結合了。

案例:

請使用PL/SQL編寫一個塊,可以輸入部門號,并顯示該部門所有員工姓名和他的工資

declare

type sp_emp_cursor is ref cursor;

test_cursor sp_emp_cursor;

v_ename emp.ename%type;

v_sal emp.sal%type

begin

opent test_cursor for select ename,sal from emp where deptno=&no;

loop

fetch test_cursor into v_ename,v_sal;

exit when test_cursor%notfound

dbms_output.putline('姓名:'||v_ename||' 工資:'||v_sal);

endloop;

close test_cursor;

end;

熟練掌握PL/SQL中的變量使用和定義是我們學習PL/SQL的基本要求之一,這些變量的定義和使用能夠有效地幫助我們解決許多開發中遇到的問題,結合本站的PL/SQL教程中的其他內容,我們基本上能夠獨立完成使用PL/SQL在Oracle數據庫中進行一些基本的操作和開發了。

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久在线免费视频 | 中文字幕在线最新在线不卡 | 中文字幕精品视频在线观看 | 亚洲免费在线视频播放 | 国产国拍亚洲精品午夜不卡17 | 久久er99热这里只是精品 | 亚洲精品视频在线观看免费 | 亚洲精品中文一区不卡 | 日本在线不卡免 | 国产成人精品在线 | 综合国产福利视频在线观看 | 日本h片a毛片在线播放 | 男人私人影院 | 四虎在线影视 | 毛片小视频 | 四虎在线最新地址公告 | 在线看日韩 | 日产国产欧美视频一区精品 | 欧美日韩a级片 | 黄色毛片a | 久久成人亚洲香蕉草草 | 国产一级特黄生活片 | 亚洲精品国产经典一区二区 | 91手机在线 | 青青操网址 | 九九99久久精品影视 | 在线视频日韩精品 | 夜夜爽日日澡人人添 | 青青草久热精品视频在线观看 | 久青草国产手机在线视频 | 国产精品视频一区二区三区经 | 国产美女色视频 | 欧美妇性猛交视频 | 日日射天天操 | 国产精品1000部在线观看 | 99热久久这里只有精品6 | 四虎成人www国产精品 | 欧美人与动性xxxxbbbb | 奇米888四色在线精品 | 欧美成人免费在线观看 | 伊人久久网国产伊人 |