PL-SQL

目标:

  1.理解PL/SQL组成及体系结构

  2.了解变量及其用法

  3.使用控制语句进行编程

  4.掌握游标的基本原理,理解游标的工作过程和分类

  5.会创建动态sql语句

  6.能够使用异常处理问题

1.PL/SQL

PL(过程语言)SQL(结构化查询语言)结合而成的编程语言,下面需要讲:变量和类型、控制语句、子程序和函数、对象类型和方法。

原理:用户发送PL/SQL块发给Oracle服务器,由服务器中的PL/SQL引擎进行判断,是过程语句就由过程语句执行器来执行,SQL语句就由SQL语句执行器来执行。

组成:分为三部分(声明部分、可执行部分、异常处理部分)

语法:

[declare
  -- Local variables here
  i integer;]
begin[Exception  hanlers]end;

2.声明部分:

这里能使用的数据类型包括:

  标量类型:数字、字符、布尔、日期时间

  LOB类型:BFILE、BLOB、CLOB、NCLOB

  属性类型:%TYPE、%ROWTYPE

v_name varchar2(20):=‘张三‘;
v_sal number default 1000;
c_rate constant number(4,3):=0.037;
v_income number(10,3);v_name teacher.tname%type;

注:常量为constant

对变量进行赋值:

begin
  select tname,tcal into v_name,v_sal from teacher where no=1004;
   dbms_output.put_line(v_name);//输出语句
end;

3.控制语句结构

条件控制:if、case

循环控制:loop、while、for

顺序控制:null、goto

//1.if语句
if  <布尔表达式> then
elsif <布尔表达式>  then
else
end    if;

//2.case语句
case 条件表达式
when  结果1    then  语句段1
when  结果2     then 语句段2
else    语句段
end case;
//3.loop循环语句
loop
    要执行的语句
exit when <条件语句>
end loop;

//4.while语句
while <布尔表达式> loop
    要执行的语句;
end loop;

//5.for 循环
for 循环计数器 in [reverse] 下限..上限 loop
    要执行语句;
end loop;

4.游标的使用

什么是游标:游标是系统为用户开设的一个数据缓冲区,存放sql语句的执行结果,每个游标区都有一个名字。用户,可以通过游标逐一获取记录。

游标类型:静态游标(编译是知道其select语句的游标)、动态游标(运行时动态决定执行何种查询)

声明游标:cursor cursor_name is query_sql;

打开游标: open cursor_name;

提取游标: fetch cursor_name into variable_list;

(使用fetch语句实现对游标内容的读取,variable_list必须从游标提取的结果集类型相同)

关闭游标:close cursor_name;

游标的属性:

%fount:用于检验游标是否成功,一般在fetch语句前使用,当游标按照条件查询出一条记录时,返回true.

%isopen:用于判断游标是否处于打开状态,尝试打开一个已经打开或者已经关闭的游标,会报错

%notfound:当按照条件无法查询到记录时,会返回ture.

%rowcount:循环执行游标读取数据时,返回检索出的记录数据行数

时间: 2024-12-24 11:50:31

PL-SQL的相关文章

PL/SQL developer 连接oracle数据库报错“initialization error could not load oci.dll”

声明:PL/SQL 版本:PL/SQL Developer 9.0.6 (http://files.allroundautomations.com/plsqldev906.exe) 报错提示如图: 原因:PL/SQL只对32位OS进行支持,解决方法是额外加载一个oci.dll文件 解决办法:1.下载OCI.DLL相关库文件.地址: (需注册Oracle账号) http://www.oracle.com/technetwork/topics/winsoft-085727.html ----->  

使用PL/SQL连接oracle数据库,并将数据进行导出备份和导入恢复

这种操作百度一搜一大片,今天整理以前做的项目时自己备份了一下数据库,试着将数据进行导出备份和导入恢复了一下:下面是操作过程: 1 开启服务 2 配置监听 找到下面文件: 记事本打开 在导航器的下拉菜单中选择:将数据库添加到树, 然后点击确定 然后使用PL/SQL就可以登录了: 3 建立新表空间和新用户 使用system用户登录:执行如下sql语句建立表空间和新用户,以及给用户授权 建立表空间 Create tablespace myyyjc datafile 'D:\app\Administra

解决pl\sql乱码问题

查看数据库服务器的字符集 select * from nls_database_parameters where parameter='NLS_CHARACTERSET'; PARAMETER                     VALUE NLS_CHARACTERSET              ZHS16GBK select sys_context('USERENV', 'LANGUAGE'); 客户端字符集 select * from nls_instance_parameters

PL/SQL Developer使用技巧、快捷键

1.类SQL PLUS窗口:File->New->Command Window,这个类似于oracle的客户端工具sql plus,但比它好用多了. 2.设置关键字自动大写:Tools->Preferences->Editor,将Keyword case选择Uppercase.这样在窗口中输入sql语句时,关键字会自动大写,而其它都是小写.这样阅读代码比较容易,且保持良好得编码风格,同理,在Tools->Preferences->Code Assistant(助手)里可

PL/SQL在win7/win8 x64位下使用客户端连接oracle

新做了win8 x64位的系统.需要使用plsql连接oracle数据库.之前的机器装有64位的oracle11g,plsql可以直接找到oracle_home连接到数据库. 这次不想在本地安装数据库,因此只装了一个32位的数据库客户端.配置环境变量时遇到一些小问题,在此记录下来. 1.下载oracle客户端,然后解压到任意目录下 2.安装好plsql,然后配置plsql的oracle_home和oci库的地址 plsql的preference设置 ORACLE_HOME:F:\oracle\p

Oracle之PL/SQL编程_流程控制语句

选择语句 1. if...then 语句 语法: if < condition_expression > then plsql_sentence end if; condition_expression:表示一个条件表达式,其值为 true 时,程序会执行 if 下面的 PL/SQL 语句: 如果其值为 false,则程序会跳过if 下面的语句而 直接执行 end if 后边的语句. plsql_sentence:condition_expression 为 true 时,要执行的语句. 2.

PL/SQL 编程(二)游标、存储过程、函数

游标--数据的缓存区 游标:类似集合,可以让用户像操作数组一样操作查询出来的数据集,实质上,它提供了一种从集合性质的结果中提取单条记录的手段. 可以将游标形象的看成一个变动的光标,他实质上是一个指针,在一段Oracle存放数据查询结果集或者数据操作结果集的内存中,这个指针可以指向结果集任何一条记录. 游标分静态游标和REF游标两类,静态游标包含显式游标和隐式游标. 显式游标: 在使用之前必须有明确的游标声明和定义,这样的游标定义会关联数据查询语句,通常会返回一行或多行.打开游标后,用户可以利用游

(十六)PL/SQL日期及时间

PL/SQL提供两个日期和时间相关的数据类型: 1.日期时间(Datetime)数据类型 DATE TIMESTAMP TIMESTAMP WITH TIME ZONE TIMESTAMP WITH LOCAL TIME ZONE 2.间隔数据类型 INTERVAL YEAR TO MONTH INTERVAL DAY TO SECOND   一.日期时间字段值和间隔数据类型这两个日期时间和间隔数据类型包括字段.这些字段的值确定的数据类型的值.下表列出了时间和间隔的字段及其可能的值. 字段名称

(十)PL/SQL记录

PL/SQL记录就是可以容纳不同类型的数据项的数据结构.记录由不同字段,类似于数据库表的行.例如,要保留跟踪图书馆中的书籍.可能要跟踪有关每本书下面的属性类似:标题,作者,主题,图书ID.包含一个字段为每个这些项目记录允许进行处理书籍作为一个逻辑单元信息. PL/SQL可以处理记录的以下几种类型:   基于表的记录   基于游标的记录   用户自定义记录      附:  Select * from customers;+----+----------+-----+-----------+---

(五)PL/SQL运算符及优先级 | 条件控制 | 循环控制

一.运算符 PL/SQL语言有丰富的内置运算符,运算符提供的以下几种类型:  .算术运算符  .关系运算符  .比较运算符  .逻辑运算符  .字符串运算符 二.运算符优先级 算数运算符 运算符 操作符 ** 指数运算 +, - 加法,取反 *, / 乘法,除法 +, -, || 加,减,并置    关系运算符    比较运算符 =, <, >, <=, >=, <>, !=, ~=, ^=,  IS NULL, LIKE, BETWEEN, IN 比较    逻辑运算