黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

PL/SQL變量詳解

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

我們在編寫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數據庫中進行一些基本的操作和開發了。

 

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久国产精品亚洲va麻豆 | 最近中文字幕完整视频高清10 | 黄色片一级毛片 | 黄色三级小视频 | 国产成+人+亚洲+欧美综合 | 福利片 在线 | 精品国产一区二区三区成人 | 欧美亚洲日本一区 | 日本ab在线 | 成人18xxxx网站| 亚洲免费视频在线观看 | 在线不卡国产 | 一级黄色毛片视频 | 日b毛片 | 曰批女人视频在线观看 | 日本福利片国产午夜久久 | 免费特级黄毛片在线成人观看 | jpnesxxx日本 | 成人在线a | 日韩黄色三级视频 | 午夜影皖 | 很黄很色的1000部视频 | 无遮羞成人的动漫在线观看 | 亚洲欧美国产精品久久久 | 日本人成免费大片 | 欧美在线伊人 | 日韩免费中文字幕 | 久久久网站亚洲第一 | 国产欧美一级片 | 国产精品v欧美精品v日韩精品 | 日本一区二区高清不卡 | 精品一区二区三区视频 | 国产高清在线精品免费不卡 | 一二三四视频社区5在线高清视频 | 久久国产精品佐山爱 | 亚洲综合网国产福利精品一区 | 性刺激的欧美三级视频 | 三级色网站 | 天天天操| 翁熄性荡事最新篇王伟忠 | 在线欧美日韩国产 |