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. Ionic2学习笔记(8):Local Storage& SQLite

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5557947.html              Ionic2可以有两种方式来存储数据,Local S ...

  2. css3+visbibilty解决淡入淡出问题

    .fade{ visibility: hidden; opacity: ; transition: all .5s; } .fade.on { visibility: visible; opacity ...

  3. 在CentOS 6.5上安装python2.7

    1.yum groupinstall “Development tools” 2.安装编译Python需要的组件 yum install zlib-devel bzip2-devel openssl- ...

  4. .NET多线程总结和实例介绍

    摘要:.Net提供了许多多线程编程工具,可能是因为太多了,所以掌握起来总是有一些头疼,我在这里讲讲我总结的一些多线程编程的经验,希望对大家有帮助. 1.多线程的总结 不需要传递参数,也不需要返回参数 ...

  5. C# 特性学习之一、CallerMemberName、CallerFilePath和CallerLineNumber

    在开发中经常会写个公有静态类记录日志,如下: /// <summary> /// Writes the error. /// </summary> /// <param ...

  6. Hadoop多节点集群安装配置

    目录: 1.集群部署介绍 1.1 Hadoop简介 1.2 环境说明 1.3 环境配置 1.4 所需软件 2.SSH无密码验证配置 2.1 SSH基本原理和用法 2.2 配置Master无密码登录所有 ...

  7. stm32 usart 异步传输示例

    STM32F103xE的USART异步数据传输示例 USART全称Universal Synchronous/Asynchronous Receiver/Transmitter,是一种可以进行同步/异 ...

  8. 高性能 TCP & UDP 通信框架 HP-Socket v3.2.2 正式发布

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  9. jQuery刮彩票兑奖效果

    效果体验:http://keleyi.com/a/bjad/uaq24pxt.htm 其中拖拽刮涂层效果使用jquery UI的draggable方法,请参考:http://keleyi.com/a/ ...

  10. Sublime Text 2 windows8安装插件失败解决

    事件是这样的: 1.安装Package Control组件后, 2.调出Install Package选项安装插件,状态栏显示成功, 3.但打开Packages目录也看不到,Sublime插件管理也没 ...