1、PL/SQL概述
1)概念
pl/sql(procedural language)是Oracle在标准sql语言的基础上的扩展,可以实现定义变量、使用逻辑控制语句等
作用:默认oracle一次只能处理一条SQL语句,每条SQL语句都会向服务器发送请求调用,如果使用PL/SQL,一个块中的语句作为一个组,只向服务器发送一次请求调用,减少了网络传输,节省带宽,提高效率,提高安全性
缺点:移值性差,只有oracle中可用
2)组成
pl/sql程序由块组成,由块可组成不同的程序形式,包括:匿名块、存储过程、函数、包、触发器等
3)注释
--单行注释
/*多行注释*/
4)命名
当定义变量时,建议以v_作为前缀:v_name
当定义常量时,建议以c_作为前缀:c_rate
当定义过程时,建议以p_作为前缀
当定义函数时,建议以fun_作为前缀
当定义包时,建议以pac_作为前缀
当定义游标时,建议以cur_作为前缀
当定义例外时,建议以err_作为前缀

2、块block
1)概述
块是pl/sql的基本组成单元,编写pl/sql实际上就是块
块由三部分组成:定义部分、执行部分、异常处理部分(例外处理部分)
定义部分declare:定义变量、常量、复杂数据类型、游标、异常等,可选
执行部分begin:要执行的sql语句或pl/sql语句,必选
异常处理部分exception:用来处理运行时的各种错误,可选

以上为常规基础。。。。。。。。。。。。。。。。开始吧
例1:只包含执行部分的pl/sql块
--打开输出,使pl/sql程序能够输出信息
set serveroutput on;(在Sqlplus中使用,用于打开oracle自带的输出方法dbms_output)

begin
  dbms_output.put_line('Hello Oracle!');
end;  
注:如果使用工具是类似sqlplus等终端工具以 /结束语句;(如下图)

例2:包含定义部分和执行部分的pl/sql块
定义变量语法:变量名 [constant] 数据类型 [not null]
为变量赋值:变量名:=变量值
注:常量在声明时必须赋初始值

注:常量在声明时必须赋初始值(上图为变量赋值方法)
例3:包含定义部分和执行部分的pl/sql块,使用查询为变量赋值(表数据为Oracle下scott账户自带表)
declare
  v_ename varchar2(20); 
  v_empno number(4);
begin
  v_empno:=&请输入雇员编号;
  select ename into v_ename from emp where empno=v_empno;
  dbms_output.put_line(v_empno||'的姓名:'||v_ename);
end;
注:红色部分为 提示输入数据,会根据使用平台的差异,提示方式不一样,所起到的效果类似于java下的Scanner提示输入。

例4:同时输出指定雇员的姓名和工资(查询多个值)
declare
  v_ename varchar2(20);
  v_sal number(7,2);
begin
  select ename,sal into v_ename,v_sal from emp where empno=&no;
  dbms_output.put_line(v_ename||','||v_sal);
end;

注:into只能用于通过查询为变量赋值,对于增删改,需要使用returning into 赋值
例5:插入一个部门,将插入的部门信息显示出来
declare
  v_deptno number(4);
  v_dname varchar2(20);
  v_loc varchar2(30);
begin
  insert into dept values (50,'Development','NanJing') 
  returning deptno,dname,loc into v_deptno,v_dname,v_loc;
  dbms_output.put_line('编号:'||v_deptno||',名称:'||v_dname||',位置:'||v_loc);
end;

获取插入值的方法。
例6:包含定义部分、执行部分、异常处理部分的块(异常块处理)
declare
  v_ename varchar2(20);
  v_sal number(7,2);
begin
  select ename,sal into v_ename,v_sal from emp where empno=&no;
  dbms_output.put_line(v_ename||','||v_sal);
exception --异常处理
  when no_data_found then
  dbms_output.put_line('您查找的雇员不存在!');
end;
no_data_found为系统报错原因,根据异常原因,输出特定异常原因。

PL/SQL入门理解(一)的更多相关文章

  1. Oracle PL/SQL入门之慨述

    Oracle PL/SQL入门之慨述 一.PL/SQL出现的目的 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,它属于第四代语言( ...

  2. PL/SQL 入门

    1. 概述 PL/SQL(Procedure Language/SQL)是 Oracle 对 sql 语言的过程化扩展,指在 SQL 命令语言中增加了 过程处理语句(如分支,循环等),使 SQL 语言 ...

  3. Oracle PL/SQL 入门

    PL/SQL 全称:Procedure Language/SQL.产生背景自己去百度. 模板: Declare ---变量定义 num ; name ) := 'damon'; idesc cnt_i ...

  4. Oracle PL/SQL入门语法点

    PL_SQL:带有分支和循环,面向过程匿名块:declare(可选,声明各种变量和游标的地方)begin(必要的,从此开始执行)exception(抓取到异常后执行的)end;[sql] view p ...

  5. PL/SQL入门随笔

    PL/SQL(Procedure Language/SQL) PLSQL是Oracle对sql语言的过程化扩展:在SQL命令语言中增加了过程处理语句(如分支.循环等),使SQL语言具有过程处理能力.S ...

  6. Oracle学习笔记之五,Oracle 11g的PL/SQL入门

    1. PL/SQL概述 PL/SQL(Procedural Language/SQL)是Oracle的专用语言,是对标准SQL语言的扩展,它允许在其内部嵌套普通的SQL语句,还可以定义变量和常量,允许 ...

  7. Oracle+PL+SQL从入门到精通.丁士锋.清华大学出版社.2012

    \t第1篇 pl/sql开发入门第1章 oracle 11g数据库系统1.1 关系型数据库系统介绍1.1.1 什么是关系型数据模型1.1.2 数据库系统范式1.1.3 关系型数据库管理系统1.1.4 ...

  8. PL/SQL基础语法入门

    先前安装了PL/SQL软件 PL/SQL全称为Procedural Language/SQL. PL/SQL也是一种程序语言,叫做过程化SQL语言,是Oracle数据库对SQL语句的扩展 打PL/SQ ...

  9. PL/SQL轻量版(一)——入门介绍

    一.概述 1.概念对比: SQL:结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目 ...

随机推荐

  1. 使用Visual Studio 2015 Community 开发windows服务

    昨天研究在.NET下开发Windows服务程序,期间遇到一些小问题,这里仅将自己的开发过程和需要注意的地方写下和广大网友分享……  1.基础   Windows服务是指系统启动时能够自己运行的程序.W ...

  2. 7.4 数据注解属性--Required

    Required attribute can be applied to a property of a domain class. EF Code-First will create a NOT N ...

  3. for xml path 将单表中一个字段用逗号分隔

    我也是才知道这种用法的,刚好又用到写个简单的例子. select Name from tc_order_detail 如下表,现在要将做到将name每个以逗号连接 declare @df nvarch ...

  4. laravel 使用artisan命令新增数据库字段

    php artisan make:migration create_comments_table <?php use Illuminate\Database\Schema\Blueprint; ...

  5. BuilderParttern(建造者模式)

    /** * 建造者模式 * 主要用于构造复杂的对象 * 在优朋播放器就是采用建造者构建的,可以说比较有心得吧 * @author TMAC-J * */ public class BuilderPat ...

  6. hadoop基本命令

    1,hadoop job -list           列出Jobtracer上所有的作业 2,hadoop job -kill 任务    杀掉hadoop正在运行的任务 3,hadoop fs ...

  7. Objective-C 关键字:retain, assgin, copy, readonly,atomic,nonatomic

    声明式属性的使用:声明式属性叫编译期语法 @property(retain,nonatomic)Some *s; @property(参数一,参数二)Some *s; 参数1:retain:修饰引用( ...

  8. 两种方法设置disabled属性

    //两种方法设置disabled属性 $('#fileup').attr("disabled",true); $('#fileup').attr("disabled&qu ...

  9. PHP魔术常量

    与J2E相比PHP没有九个内置对象,但他有八个魔术变量分别是: '__LINE__' 文件中的当前行号. '__FILE__ 文件的完整路径和文件名. '__DIR__' 文件所在的目录. '__FU ...

  10. addEventListener和attachEvent的区别

    addEventListener共有3个参数,如下所示:element.addEventListener(type,listener,useCapture); 参数 参数说明 element 要绑定事 ...