拓扑园

  • O&M
    • Universal部署
    • PHP+VUE+Laravel相关
  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
    • 标准化文档系列
  • Oracle基础知识
    • LLL的Oracle培训(分类)
    • LLL的docker培训(分类)
    • 标准化文档系列--(分类)
    • Oracle核心经典分析(分类)
    • 图灵小队----(分类并包含以下文章)
    • --MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • --PG安装配置于RHEL/9X系列-运行环境最优配置
    • --自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • --图灵小队—Oracle/PostgreSQL下创建一个用户测试表(自行定义数据行)
    • --图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • --图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • --图灵小队-Oracle常用性能查询SQL语句(文章)
    • --图灵小队-Oracle数据库上线前检查(文章)
    • --图灵小队-Oracle常用SQL语句(文章)
    • --图灵小队—Linux/Oracle脚本/MySQL合集(持续更新)
    • --图灵小队-Oracle技巧记录(文章)
    • ADG
    • RAC
    • ASM
    • OGG
    • RMAN
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
  • MySQL
    • MySQL数据库规范
    • MySQL项目案例
    • MySQL安装配置
    • MYSQL集群项目
    • MySQL常见处理
    • MySQL-Sysbench专题
    • MySQL-Percona Toolkit专题
  • Linux
    • Shell编程
    • kubernetes
    • docker
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 新框架系统集合
    • 工作文档
    • EBS数据文件扩容
    • VMware虚拟化
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • K-Studing
    • D8-Python学习
    • Oracle/MySQl等面试题
    • LG-MySQL
    • LG-Docker/K8S
    • LG-PostgreSQL
    • LG-ORACLE_BBED
    • LG-ORACLE
    • LG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
天高任鸟飞
Oracle/MySQL数据库恢复/数据迁移/生产规范报告技术交流:TEL:18562510581(微信同号);加微信入群
  1. 首页
  2. 技术学习系列
  3. WERN_ORACLE培训
  4. 正文

第19部分 oracle11g的PLSQL基础-2

2020年5月13日 765点热度 0人点赞 0条评论

目录

  • 八、属性类型
    • 1、用于引用数据库列的数据类型,以及表示表中一行的记录类型
    • 2、属性类型有两种:
    • 3、使用属性类型的优点:
  • 九、oracle11g的PL/SQL对序列的改进
    • 2、select语句,可以类似:
    • 3、案例:
  • 十、逻辑比较
  • 十一、控制结构
    • 1、PL/SQL 支持的流程控制结构:
      • (1)条件控制
        • a、LOOP 循环——无条件循环
        • b、WHILE 循环——根据条件循环
        • c、FOR 循环——循环固定的次数
      • (3)continue的使用
      • (4)顺序控制
  • 十二、动态SQL
  • 十三、错误处理
  • 十四、引发应用程序错误

八、属性类型

1、用于引用数据库列的数据类型,以及表示表中一行的记录类型

2、属性类型有两种:

(1)%TYPE  -  引用变量和数据库列的数据类型

(2)%ROWTYPE  -  提供表示表中一行的记录类型

3、使用属性类型的优点:

(1)不需要知道被引用的表列的具体类型

(2)如果被引用对象的数据类型发生改变,PL/SQL 变量的数据类型也随之改变,健壮性

九、oracle11g的PL/SQL对序列的改进

1、在PL/SQL中取出序列的nextval、currval时,可以不使用

2、select语句,可以类似:

 declare    
    aa  int;
    begin
    aa := seq1.nextval; 
   dbms_output.put_line('aa的值是:' || aa );
 end;

3、案例:

(1)在sql语句中,序列这样操作:

SQL>create sequence seq1 start with 1 increment by 1;
SQL>select seq1.nextval from dual;

(2)在pl/sql中,可以如下操作:

SQL>create sequence seq1 start with 1 increment by 1;
SQL>
set serverout on
declare    
    aa  int;
    begin
    aa := seq1.nextval; 
   dbms_output.put_line('aa value is:' || aa );
 end;

(3)SQL>/ 这种操作方式,是上次完整的sql语句重新执行

(4)

十、逻辑比较

1、逻辑比较用于比较变量和常量的值,这些表达式称为布尔表达式

2、布尔表达式由关系运算符与变量或常量组成

3、布尔表达式的结果为TRUE、FALSE或NULL,通常由逻辑运算符AND、OR和NOT连接

4、布尔表达式有三种类型:

(1)数字布尔型

(2)字符布尔型

(3)日期布尔型

十一、控制结构

1、PL/SQL 支持的流程控制结构:

(1)条件控制

  a、IF 语句 
  IF语句根据条件执行一系列语句,有三种形式:IF-THEN、IF-THEN-ELSE 和 IF-THEN-ELSIF


 b、CASE 语句:

CASE 语句用于根据单个变量或表达式与多个值进行比较

执行CASE 语句前,先计算选择器的值

(2)循环控制

a、LOOP 循环——无条件循环

LOOP
  sequence_of_statements
END LOOP;

b、WHILE 循环——根据条件循环

WHILE condition LOOP
  sequence_of_statements
END LOOP;

c、FOR 循环——循环固定的次数

FOR counter IN [REVERSE] value1..value2
LOOP
  sequence_of_statements
END LOOP;

提前结束循环

(3)continue的使用

oracle11g新增了continue语句,可在循环中使用。该语句可将逻辑直接跳到循环结尾,不执行continue之后的循环内的语句,然后再移到循环开头。

 

(4)顺序控制

a、GOTO 语句

b、NULL 语句

十二、动态SQL

1、动态 SQL 是指在PL/SQL程序执行时生成的 SQL 语句

2、编译程序对动态 SQL 不做处理,而是在程序运行时动态构造语句、对语句进行语法分析并执行

3、DDL 语句命令和会话控制语句不能在 PL/SQL 中直接使用,但是可以通过动态 SQL 来执行

4、执行动态 SQL 的语法:

EXECUTE IMMEDIATE dynamic_sql_string

      [INTO  define_variable_list]

      [USING bind_argument_list];

 

十三、错误处理

1、在运行程序时出现的错误叫做异常

2、发生异常后,语句将停止执行,控制权转移到 PL/SQL 块的异常处理部分

3、异常有两种类型:

预定义异常 -  当 PL/SQL 程序违反 Oracle 规则或超越系统限制时隐式引发

用户定义异常  -  用户可以在 PL/SQL 块的声明部分定义异常,自定义的异常通过 RAISE 语句显式引发

十四、引发应用程序错误

1、RAISE_APPLICATION_ERROR 过程

(1)用于创建用户定义的错误信息

(2)可以在可执行部分和异常处理部分使用

(3)错误编号必须介于 –20000 和 –20999 之间

(4)错误消息的长度可长达 2048 个字节

2、引发应用程序错误的语法:

   RAISE_APPLICATION_ERROR(error_number, error_message);

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2020年5月14日

admin

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号