现在的位置: 首页 > 综合 > 正文

PL/SQL的定义(一)基本结构

2018年04月18日 ⁄ 综合 ⁄ 共 1434字 ⁄ 字号 评论关闭

欢迎转载,转载请指明出处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;

抱歉!评论已关闭.