(1). 简单分类 
                          |————过程(存储过程) 
                          | 
                          |————函数 
       块(编程)———| 
                          |————触发器 
                          | 
                          |————包

(2). 编写规范 
      a. 单行注释 -- 
          select * from emp where empno=7788;  --取得员工信息 
      b. 多行注释 /*...*/ 来划分 
(3). 标志符号的命名规范 
      1).当定义变量时,建议用v_作为前缀v_sal 
      2).当定义常量时,建议用c_作为前缀c_rate 
      3).当定义游标时,建议用_cursor作为后缀emp_cursor 
      4).当定义例外时,建议用e_作为前缀e_error

变量 语句函数类架构
 
pl/sql 语句由三部分构成:定义部分、执行部分、例外处理部分(异常)
declear 
/*定义部分--定义常量、变量、游标、例外、复杂数据类型、*/
begin
/*执行部分--要执行pl/sql语句和sql语句
exception
/*例外处理部分--处理运行的各种错误*/
end;

就相当与java里面一个类下面的方法,但是Oracle中观这个叫做包,也就是dbms_output是一个包他下面的put_line实际上是个储过程,他有一个入参A也就是准备打印的字符串,相当于java中的system.out.println()。

代码:
SQL> select * from mytest
2 l
3 ; NAME PASSWD ID
------------------------------ ------------------------------ --
翎野君 123456 1
李超 2222 2
小王 1222 3 SQL>
SQL> declare
2 v_name varchar2(20);
3 v_passwd varchar2(20);
4 begin
5 select name,passwd into v_name,v_passwd from mytest where id=&inpt;
6 dbms_output.put_line('户名:'||v_name||' 密码:'||v_passwd);
7 end;
8 / 户名:翎野君 密码:123456 PL/SQL procedure successfully completed
注意declare的写法不要写错,另外在数据库中尽量都改用单引号,双引号报错很难找;

如上面的查询中如果输入的查询结果随便输一个的话就会报错,不会正常的执行下面的Pl/sql语句
我们新加一个异常处理就可以了。
SQL> declare
2 v_name varchar2(20);
3 v_passwd varchar2(20);
4 begin
5 select name,passwd into v_name,v_passwd from mytest where id=&inpt;
6 dbms_output.put_line('户名:'||v_name||' 密码:'||v_passwd);
7 exception
8 when no_data_found then
9 dbms_output.put_line('请检查输入');
10 end;
11 / 请检查输入 PL/SQL procedure successfully completed
 

PL/SQL编程-块编程的更多相关文章

  1. 同样的一句SQL语句在pl/sql 代码块中count 没有数据,但是直接用SQl 执行却可以count 得到结果

    pl/sql 代码块: SELECT count(distinct t2.so_nbr) INTO v_count2 FROM KFGL_YW_STEP_qd t2 WHERE t2.partitio ...

  2. SQLPLUS执行PL/SQL语句块

    1.首先登录Oracle HR schema: 2.对于PL/SQL程序,分号表示语句的结束:而使用 "."  号表示整个语句块的结束,也可以省略.按回车键后,该语句块不会执行,即 ...

  3. oracle 中使用 pl/sql代码块

    1.写匿名块,输入三角形三个表的长度.在控制台打印三角形的面积. declare -- (p=(a+b+c)/2) --声明三角形的面积 三条边 的 v_a number (10,2):=&n ...

  4. Oracle笔记 十二、PL/SQL 面向对象oop编程

    ------------------------抽象数据类型----------- --创建地址类型,一定要加as object,还可以在类型中加过程或方法 create or replace typ ...

  5. PL/SQL语句块提高1+case语句

    set serveroutput on; declare --默认值的bianliang v_a ; -- v_b integer; --用stud.id 的类型 v_id stud.id%type; ...

  6. pl/sql 语句块循环语句

    ---基本循环declarev1 number(2) :=1;begin loop dbms_output.put_line(v1); v1:=v1+1; exit when v1>10; -- ...

  7. PL/SQL编程基础(一):PL/SQL语法简介(匿名PL/SQL块)

    PL/SQL PL/SQL是Oracle在关系数据库结构化查询语言SQL基础上扩展得到的一种过程化查询语言. SQL与编程语言之间的不同在于,SQL没有变量,SQL没有流程控制(分支,循环).而PL/ ...

  8. PL/SQL编程急速上手

    结构化查询语言(SQL)是第四代编程语言的典型,这种命令式的语言更像一种指令,使用它,你只需要告诉计算机“做什么”,而不用告诉计算机“怎么做”.第四代编程语言普遍具有简单.易学.能更快的投入生产等优点 ...

  9. PL/SQL编程基础——PL/SQL简介

    课程教师:李兴华 课程学习者:阳光罗诺 日期:2018-07-28 知识点: 1. 了解PL/SQL的主要特点 2. 掌握PL/SQL块的基本结构 PL/SQL PL/SQL是Oracle在关系数据库 ...

随机推荐

  1. img src加载失败给默认图片(默认图片加载失败不冒泡)

    Jquery方法 $("img").one("error", function(e){ $(this).attr("src", " ...

  2. ulimit命令学习

    通过ulimit -n命令可以查看linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统里打开文件描述符的最大值.那么应该在 ...

  3. MFC中给控件添加变量,DoDataExchange中

    DoDataExchange函数其实是一项数据动态绑定技术.比如你在写动态按钮过程中须对按钮添加变量时,怎么添加?控件类已经写好了,其变量是已经固定的.你要添加新的变量就要用到DoDataExchan ...

  4. Linux命令之乐--test

    官方文档: help test File operators: -a FILE True if file exists. -b FILE True if file is block special. ...

  5. C#三种字符串拼接方法的效率对比

    C#字符串拼接的方法常用的有:StringBuilder.+.string.Format.List<string>.使用情况不同,效率不同. 1.+的方式 string sql = &qu ...

  6. asp 中创建日志打印文件夹

    string FilePath = HttpRuntime.BinDirectory.ToString(); string FileName = FilePath + "日志" + ...

  7. spring boot 加载jsp

    1.spring boot启动类继承SpringBootServletInitializer ,并且重写configure方法 package com.springapp.mvc;import jav ...

  8. 170502、linux下配置jdk8

    1.下载源码包jdk-8u45-linux-x64.tar.gz(省略) 2.解压 tar -zxvf jdk-8u45-linux-x64.tar.gz 3.配置jdk vi /etc/profil ...

  9. 通过TZ来设置嵌入式ARM+Linux的时区

    1.在/etc/profile或者/root/.profile(/home/username/.profile) 在其中加入: TZ=UTC-08:00 export TZ hwclock -s

  10. kvm_read_guest*函数分析

    2017-06-30 在KVM中基于其搞特权及,可以透明的读写客户机的内存信息,为此KVM提供了一套API,这里姑且称之为kvm_read_guest_virt*/kvm_write_guest_vi ...