当前位置: 代码迷 >> SQL >> PL/SQL的定义(1)基本结构
  详细解决方案

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

热度:10   发布时间:2016-05-05 13:37:19.0
PL/SQL的定义(一)基本结构

欢迎转载,转载请指明出处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输出库存量

declarev_id number:=&id;--接收用户输入的idv_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;

  相关解决方案