欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PL/SQL基本语法结构及案例

程序员文章站 2022-03-09 22:18:27
概述 pl/sql(procedure language/sql) procedure language是过程化语言,语言,变量赋值,执行判断,sql :sql语句,指在sql命令语言中增加了过程处...

概述

pl/sql(procedure language/sql) procedure language是过程化语言,语言,变量赋值,执行判断,sql :sql语句,指在sql命令语言中增加了过程处理语句(分支,循环),使sql语句具有过程处理的能力,把sql语言的数据操作能力与过程语言的数据处理结合起来.使用plsql面向过程但要比过程语言简单,高效,灵活的应用

1:基本语法结构

//

[declare

--声明变量

]

begin

--代码逻辑

[exception

--异常处理

]

end;

2:语法结构解释

2.1:声明变量

变量名 类型(长度);

2.2:变量赋值

变量名:=变量值 //注意有冒号

案例一:给一个字符类型赋值

declare

v_name varchar2(10);

begin

v_name:='张三';

--dbms 是一个包,调用output方法,

dbms_output.put_line(v_name);

end;

案例二:常用变量的用法

/*声明变量水费单价、水费字数、吨数、金额。对水费单价、字数、进行赋值 。吨数根据水费字数换算,规则为水费字数除以1000,并且四舍五入,保留两位小数。计算金额,金额=单价*吨数。输出单价 、数量和金额*/

declare

--定长度,精确到2位

v_price number(10,2);

v_usenum number;

v_usenum2 number(10,2);

v_money number(10,2);

-- v_num0 number; --上月水表

-- v_num1 number; --本月水表

begin

v_price:=2.45;

v_usenum:=8012;

--字数换算成吨数

v_usenum2:=round(v_usenum/1000,2);

--round(value,precision) 按precision精度四舍五入

--计算出水费金额

v_money:=round( v_price*v_usenum2,2);

--内置了一个存储过程,用于输出内容

dbms_output.put_line('单价:'||v_price||'金额:'||v_money||'吨数:'|| v_usenum2);

end;

案例三:select into 方式赋值

语法结构:

select 列名 into 变量名 from 表名 where 条件

其结果必须是一条记录,有多条记录或者没有记录都会报错

--使用select into 进行赋值

declare

--定长度,精确到2位

v_price number(10,2);

v_usenum number;

--添加了两条数据v_num0和v_num1 //必须声明要添加的变量

v_num0 number; --上月水表

v_num1 number; --本月水表

v_usenum2 number(10,2); --使用吨数字

v_money number(10,2); --水费

begin

v_price:=3.45;

select usenum,num0,num1 into v_usenum,v_num0,v_num1 from t_account

where year='2012' and month='01' and owneruuid=1;

//判断条件

--字数换算成吨数

v_usenum2:=round(v_usenum/1000,2);

--round(value,precision) 按precision精度四舍五入

--计算出水费金额

v_money:=v_price*v_usenum2;

--内置了一个存储过程,用于输出内容

dbms_output.put_line('本月水表数:'||v_num1||'上月水表数:'||v_num0||'单价:'||v_price||'金额:'||v_money||'吨数:'||v_usenum2);

end;