pl/sql的介绍与基本语法一.什么是pl/sqlpl/sql(procedurallanguage/sql)是oracle在标准的sq l语言上的扩展.pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误, 这样使得它的功能变得更加强大。①提高应用程序的运行性能②模块化的设计思想[分页的过程,订单的过程,转账的过程..]③减少网络传输量 ④提高安全性二、pl/sql块介绍块(block)是pl/sql的基本程序单元,编写pl/sql程序实际上就是编写pl/sql块。 要完成相对简单的应用功能,可能只需要编写一个pl/sql块;但是如果要想实现复杂的功能,可能需要在一个pl/sql块中嵌套其它的p l/sql块.简单分类:块(编程):过程(存储过程)、函数、触发器、包…■块结构示意图pl/sql块由三个部分构成:定义部分、执 行部分、例外处理部分.如下所示:declear可选/声明(定义)部分-----定义常量、变量、游标、例外、复杂数据类型 /begin必选/执行部分-----要执行的pl/sql语句和sql语句/exception可选/例外处理部分 ----处理运行的各种错误/--when....then...--when....then...end; 对于PL/SQL,需要注意以下几点:1.在PL/SQL中,变量必须在使用之前声明。2.PL/SQL块中的每一条语句都必须以分号结 束,SQL语句可以是多行的,但分号表示该语句的结束。一行中可以有多条SQL语句,它们之间以分号分隔。每一个PL/SQL块由decl are或begin开始,以end结束。3.declare,begin,exception后面没有分号,而end语句后面必须带有分号 。4.在PL/SQL中可以使用的SQL语句有:Insert,update,delect,select...into,commit ,rollback,savepoint。提示:在PL/SQL中只能用SQL语句中的DML部分,不能用DDL部分,如果在PL/SQL 中使用DDL(如createtable等)的话,只能以动态的方式来使用。■编写规范①注释单行注释--selectfro mempwhereempno=7788;--取得员工信息多行注释/..../来划分②标识符号的命名规范1)当定义变量时 ,建议用v_作为前缀v_sal2)当定义常量时,建议用c_作为前缀c_rate3)当定义游标时,建议用_cursor作为后缀 emp_cursor;4)当定义例外时,建议用e_作为前缀e_error案例练习准备工作:setserveroutput on例1:hellowrold程序begindbms_output.put_line(''helloworld'');end;例2 .有定义和执行部分的块declare--声明变量v_enamevarchar2(5);begin--通过select ...into...语句为变量赋值--被赋值的变量与SELECT中的列名要一一对应selectenameinto v_namefromempwhereempno=&no;--(“no”是随意定义的值,aa,bb都可以,但不能没有。)- -打印变量的值dbms_output.put_line(''雇员名:''||v_name);end;&:表示要接收从控制台输 入的变量。||:连接符例3.使用多个变量(顺序要一一对应)declare--声明变量v_namevarchar2(25 );v_emailvarchar2(25);v_salarynumber(8,2);v_job_idvarchar2 (10);begin--通过select...into...语句为变量赋值--被赋值的变量与SELECT中的列名要一 一对应selectlast_name,email,salary,job_idintov_name,v_email, v_salary,v_job_idfromemployeeswhereemployee_id=186;--打印 变量的值dbms_output.put_line(v_name||'',''||v_email||'',''||v_salary||'',''||v_job_id);end; |
|