欢迎转载,转载请指明出处http://blog.csdn.net/hncsy403,谢谢
SQL语言不可以使用逻辑处理结构
PL/SQL就将SQL语言和编程语言结合在一起
在SQL语言的基础上增加了编程语言的特性,其实还有参数传递和SQL代码重用的优势
其基本结构如下
包括了声明部分,程序段开始,程序段结束,异常处理
声明部分和异常部分是可选的
变量的声明,它的有效作用域仅仅限于当前的程序块,出了当前程序块就没用了
需要注意的是
declear,begin和exception后没有分号。而end以及所有的SQL语句和PL/SQL语句必须以分号结束
PL/SQL程序和数据库进行通信的时候,也需要实现信息的保存和传递
变量是定义在declare里,具体结构如下
variable_name是变量名称
type表示数据的变量类型
not null用中括号括起来说明他是一个可选项,表示变量不能为空
[:=value]表示给变量赋予初值
其中,上述的&id表示接收输入数据,执行时会弹出一个输入框给我们输入数据
变量命名规则如下:
PLSQL中的作用域范围是从变量声明开始到这代码块结束
赋值变量是使用:=而不是=
也可以使用select into进行赋值
需要注意的是
小例子,根据用户输入id输出库存量
declare
v_id number:=&id;--接收用户输入的id
v_stock_count number;--商品库存量
begin
select stockcount into v_stock_count from es_product
where id=v_id;
dbms_output.put_line(v_stock_count);
end;
示例如下
另外我们还可以声明某张表中一整行的数据
示例如下
代码如下:
declare
v_id number := &id; --接收用户输入的id
v_name es_product.name%type; --商品名称
v_price es_product.price%type; --商品价格
v_saledate es_product.saledate%type; --上架时间
v_stock_count number; --商品库存量
begin
select name, price, saledate, stockcount
into v_name, v_price, v_saledate, v_stock_count
from es_product
where id = v_id;
dbms_output.put_line(v_name||' '|| v_price||' '||v_saledate||' '||v_stock_count);
end;
另外一种写法:
declare
v_id number := &id; --接收用户输入的id
v_es_pro es_product%rowtype; --表的完整行的变量
begin
select name, price, saledate, stockcount
into v_es_pro.name,
v_es_pro.price,
v_es_pro.saledate,
v_es_pro.stockcount
from es_product
where id = v_id;
dbms_output.put_line(v_es_pro.name || ' ' || v_es_pro.price || ' ' ||
v_es_pro.saledate || ' ' || v_es_pro.stockcount);
end;