`
百合不是茶
  • 浏览: 351765 次
社区版块
存档分类
最新评论

PL/SQL的过程编程,异常,声明变量,PL/SQL块

阅读更多

PL/SQL;

  

   过程;

    符号;

     变量;

     PL/SQL块;

     输出;

     异常;

 

 

PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言
PL/SQL 是对 SQL 的扩展,sql的执行时每次都要写操作的语句发给数据库 不利于程序的安全,pl/sql是将操作程序的语句放在数据库里面 应用程序只需要发用执行的命令

 

 

 

一, PL/SQL块;是程序的执行标志

declare --声明
begin--开始执行
exception--异常
end;--结束执行

 

 

 

二 ,过程:将操作程序的语句放在数据库里面 应用程序只需要发用执行的命令

 

创建过程;

create or replace procedure pro_1;
--procedure过程的关键字 +关键字的别名

 PL/SQL和过程的应用;

  查询emp表中的ename;

create or replace procedure pro_1 is--定义过程
begin
select ename from emp;
end;

 在PL/SQL工具执行的时候需要在后面按下  /  再按回车;程序才会执行

 

打开程序的输入输出;

set serveroutput on/off打开/关闭

 

调用过程;

exec 过程名

 exec pro_1;调用查询job的过程;

 

三;符号;

:=        赋值操作符
||         连接操作符
--        单行注释
/**/      多行注释
<<>>     标签分隔符
..         范围操作符
**        求幂操作符

 

四;变量的声明;

  变量名  数据类型;

  

declare
--声明变量
v_name varchar2(30);
v_empno number(10);

 

五;输出;

dnms_output.put_line('姓名:'||v_name);

 

  符号,变量的声明,输出的简单应用初步理解;

--查询语句

declare

--申明变量

v_name varchar2(30);

v_empno number(20);

begin--开始查询

select ename into v_name from emp where empno=7369;

--输出,||连接符号

dbms_output.put_line('姓名:'||v_name);

end;

 

 

查询语句,带提示的;

 --查询语句.设置提示输入的
declare
--声明变量
v_ename varchar2(30);
v_sal number(10);

begin
  --开始查询
  select ename into v_ename from emp where empno=&aa;
 dbms_output.put_line('姓名:'||v_ename);
  end;
  

  

 

六;异常

异常有两种类型:
预定义异常 -  当 PL/SQL 程序违反 Oracle 规则或超越系统限制时隐式引发
用户定义异常  -  用户可以在 PL/SQL 块的声明部分定义异常,自定义的异常通过 RAISE 语句显式引发

 

 oracle自定义的异常;

access_into_null 在未初化对象时出现
case_not_found 在CASE语句中的选项与用户输入的数据不匹配时出现
collection_is_null 在给尚未初始化的表或数组赋值时出现
cursor_already_open 在用户试图打开已经打开的游标时出现
dup_val_on_index 在用户试图将重复的值存在使用唯一索引的数据库列中时出现
invalid_cursor 在执行非法游标运算(如打开一个尚未打开的游标)时出现
invalid_number 在将字符串转换为数字时出现
login_denied 在输入的用户名或密码无效时出现
no_data_found 在表中不存在的请求的行时出现,此外,当程序引用已经删除的元素时
storage_error 在内存损坏或PL/SQL耗尽内存时出现
too_many_rows 在执行SELECT INTO语句后返回多行时出现
value_error 在产生大小限制错误时出现
zero_divide 以零作除数时出现
Others针对所有异常

 

异常的综合应用;

  根据提示框输入的查询;

 --查询语句.设置提示输入的
declare
--声明变量
v_ename varchar2(30);
v_sal number(10);

begin
  --开始查询
  select ename into v_ename from emp where empno=&aa;
 dbms_output.put_line('姓名:'||v_ename);
  end;

 

   在根据提示的时候如果用户输入某个数字在表中不存在,那么就会执行不成功,此时我们应该像JAVA中一样把异常捕获,如果出现异常就提示不存在这个人

declare
--声明变量
v_ename varchar2(30);
v_sal number(10);

begin
  --开始查询
  select ename into v_ename from emp where empno=&aa;
 dbms_output.put_line('姓名:'||v_ename);
 
exception
  when no_data_found then
    dbms_output.put_line('这个人不存在');
  end;
  

 

上述的PL/SQL程序汇总只能一次性的查询,不能重复的提示用户查询所需要的数据,过程可以解决这个问题;

在声明过程的时候就需要创建变量:

create procedure pro_1(v_empno number(10)) is 

 

创建可以重复提示用户输入的程序;

create or replace procedure pro_2(v_empno varchar2) is
v_ename varchar2(30);
begin 
  select ename into v_ename from emp where empno=v_empno;
  dbms_output.put_line('姓名:'||v_ename);
  exception
     when no_data_found then
       dbms_output.put_line('不存在这个人');
       
  end;

 在执行前先set serveroutput  on 打开输入输出

使用exec pro_1;可以不断的查找数据

 

0
0
分享到:
评论

相关推荐

    Oracle PL/SQL实例编程(PL/SQL经典书籍)

    1. **基础语法**:PL/SQL是过程化SQL,它包含声明部分、执行部分和异常处理部分。声明部分用于定义变量、常量和游标;执行部分包含了SQL语句和流程控制结构,如循环、条件判断等;异常处理部分则用于捕获和处理运行...

    PL/SQL编程基础知识

    ### PL/SQL编程基础知识 #### 一、PL/SQL简介 PL/SQL(Procedural Language for SQL)是一种过程化语言,它结合了SQL的数据操纵功能和过程化语言的控制结构,使用户能够灵活地控制数据操作流程。作为Oracle数据库...

    PL/SQL基础编程,实例自写

    1. **声明部分(DECLARE)**:定义变量、常量、游标、异常和局部存储过程或函数。 2. **执行部分(BEGIN...END)**:包含实际的业务逻辑和数据处理操作,可以是控制语句、SQL语句或其他PL/SQL构造。 3. **异常处理部分...

    pl/sql最新中文手册

    1. **PL/SQL基础**:手册可能会从基础开始,介绍PL/SQL的基本结构,包括声明变量、常量、游标、记录类型等。还会讲解如何编写存储过程、函数和触发器。 2. **控制流程语句**:这包括条件判断(IF-THEN-ELSIF-ELSE)...

    oracle10g_pl/sql

    - **块结构**:PL/SQL代码由声明、执行和异常处理三部分组成,包括BEGIN...END块、DECLARE...BEGIN...END块以及匿名块。 - **变量和常量**:PL/SQL支持各种数据类型,如NUMBER、VARCHAR2、DATE等,以及声明变量和...

    PL/SQL编程(电子版)

    【PL/SQL编程】是Oracle...通过本章的学习,读者将能够理解和编写基本的PL/SQL代码,包括声明变量、控制流程、处理异常,以及创建和使用存储过程、触发器、游标、包和函数,进一步提升在Oracle数据库管理中的编程能力。

    一个对数据库的操作工具PL/SQLpl/sqL工具

    1. **编程能力**:PL/SQL允许编写包含控制结构(如循环、条件语句)和异常处理的程序块,这些块可以存储在数据库中并按需调用,提高了数据库应用的灵活性和复杂性。 2. **数据处理**:通过PL/SQL,用户可以直接对...

    pl/sql例题代码pl/sql例题代码pl/sql例题代码

    9. **PL/SQL块结构**:一个完整的PL/SQL块由声明部分、执行部分和异常处理部分组成。 10. **包(Package)**:将相关的变量、过程和函数封装在一起,方便管理和复用。 通过"plsql_day02"的学习,你将深入理解PL/...

    PL/SQL 程序设计

    PL/SQL 程序设计 本章主要重点:  PL/SQL概述  PL/SQL块结构  PL/SQL流程  运算符和表达式  游标  异常处理  数据库存储过程和函数  包  触发器

    Oracle PL/SQL实战(待续)

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据处理能力与PL的程序设计特性,是Oracle数据库系统中用于创建存储过程、函数、触发器和包的主要工具。在这个"Oracle PL/SQL实战(待续)"的主题中,我们将深入...

    PL/SQL过程编程的异常解释

    ### PL/SQL过程编程中的异常处理详解 在数据库应用程序开发中,异常处理是确保程序健壮性和稳定性的重要手段之一。PL/SQL(Procedure Language for SQL)作为Oracle数据库的标准编程语言,提供了丰富的异常处理机制...

    oracle 9i pl/sql程序设计笔记

    此匿名块展示了如何使用PL/SQL声明变量、插入数据到表中以及使用`DBMS_OUTPUT`包在屏幕上显示数据。值得注意的是,为了使`DBMS_OUTPUT.PUT_LINE`函数生效,需要确保服务器输出(Server Output)已开启,可通过命令`...

    pl/sql developer11.0

    PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库系统中用于数据库编程的一种扩展SQL语言。它结合了SQL的查询能力与过程化编程元素,使得开发者能够创建复杂的业务逻辑和数据库应用程序。PL/...

    PL/SQL 基本知识

    PL/SQL是Oracle数据库系统中的一个核心组件,全称为“Procedural Language/Structured Query Language”,它是SQL的扩展,增加了编程元素,使得开发者能够编写存储过程、函数、触发器等数据库应用程序。这篇博客主要...

    Oracle PL/SQL编程及最佳实践

    PL/SQL 块可以包含一个或多个语句,例如变量声明、赋值、控制结构等。 十四、PL/SQL 块的组成(结构) PL/SQL 块的组成包括 declare 部分、begin 部分和 exception 部分。declare 部分用于声明变量和数据结构。...

    PL/SQL存储过程编程

    ### PL/SQL存储过程编程详解 #### 一、Oracle应用编辑方法概览 在Oracle数据库的应用开发中,存在多种编辑方法和技术,它们各有特点和适用场景。以下是对这些方法的概述: 1. **Pro*C/C++**: 这是一种C语言与...

    pl/sql64位

    PL/SQL是Oracle数据库系统中的一个关键组件,全称为Procedural Language/Structured Query Language,是一种结合了SQL和过程编程语言的工具,主要用于编写数据库应用程序。64位的PL/SQL开发者工具对于那些处理大数据...

    Oracle PL/SQL程序设计(第5版)(上下册)

    - **块结构**:PL/SQL程序通常被组织成块,每个块由声明部分、执行部分和异常处理部分组成。 - **子程序**:包括存储过程和函数。这些子程序可以被其他PL/SQL代码调用,实现代码复用和模块化。 - **包**:包是一种...

    PL/SQL下载

    4. **块结构**:PL/SQL代码以块为单位,包括声明、执行和异常处理部分,便于组织和管理代码。 5. **动态SQL**:允许在运行时构造和执行SQL语句,增强了灵活性。 **PL/SQL Developer** PL/SQL Developer是一款专为...

    PL/SQL doc 文件

    * 命名程序块可以出现在其他 PL/SQL 程序块的声明部分。 * 匿名程序块可以用在服务器端也可以用在客户端。 存储的 PL/SQL 程序块: * 函数:是命名了的、存储在数据库中的 PL/SQL 程序块。 * 过程:是一种特殊的...

Global site tag (gtag.js) - Google Analytics