PL/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;