大战熟女丰满人妻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數據庫中進行一些基本的操作和開發了。

 

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲精品色一区色二区色三区 | 久久乱69小说 | 亚洲综合五月 | 久草免费在线观看 | 在线观看人成网站深夜免费 | 99国产超薄丝袜足j在线观看 | 成年女人免费视频播放77777 | 欧美精品久久 | 久久亚洲一级毛片 | 免费国产成人高清在线观看麻豆 | 好吊妞人成免费视频观看 | 欧美精品亚洲二区 | 日本一级看片免费播放 | 精品综合久久久久久97超人该 | 亚洲精品久久久久午夜福 | 欧美在线播放成人免费 | 午夜视频在线观看网站 | 夜夜夜爽爽爽久久久 | 非常色的视频 | 99视频精品全部在线播放 | 国产中日韩一区二区三区 | 欧美成人看片 | 国产亚洲精品久久精品6 | 国产综合日韩伦理 | 美女福利视频一区二区 | 高清不卡| 网络色综合久久 | 色婷婷久久综合中文网站 | 五月婷婷中文字幕 | 性成人动作片在线看 | 亚洲欧美综合乱码精品成人网 | 日韩国产成人精品视频人 | 日本a∨在线播放高清 | 欧亚在线视频 | 久久综合成人 | 欧美成年黄网站色视频 | 日本xxx高清免费视频 | 国产精品福利视频手机免费观看 | 亚洲精品欧美精品中文字幕 | 超97在线观看精品国产 | 韩国日本美国免费毛片 |