WHEN子句说明触发约束条件。Condition为一个逻辑表达时,其中必须包含相关名称,而不能包含查询语句,也不能调用PL/SQL函数。WHEN子句指定的触发约束条件只能用在BEFORE和AFTER行触发器中,不能用在INSTEAD OF行触发器和其它类型的触发器中。

-- 创建记录操作事件的表

CREATE TABLE event_table(

event VARCHAR2(50),

time DATE

);

-- 创建触发器

CREATE OR REPLACE TRIGGER tr_startup

AFTER STARTUP

ON DATABASE

BEGIN

INSERT INTO event_table(event, time)

VALUES(ora_sysevent, SYSDATE);

END;

  1. 不能对rownum使用>(大于1的数值)、>=(大于1的数值)、=(大于1的数值),否则无结果。

2.在使用rownum时,只有当Order By的字段是主键时,查询结果才会先排序再计算rownum,但是,对非主键字段(如:name)进行排序时,结果可能

就混乱了。出现混乱的原因是:oracle先按物理存储位置(rowid)顺序取出满足rownum条件的记录,即物理位置上的前5条数据,然后在对这些数据按照Order By的字段进行排序,而不是我们所期望的先排序、再取特定记录数。

通常有三种执行不同类型的动态SQL方法:

  1. 使用EXECUTE IMMEDIATE语句。 
    除不能处理多行查询语句,其他的动态SQL包括DDL语句,DCL语句以及单行的SELECT查询都可以。
  2. REF CURSOR动态游标,使用OPEN-FOR,FETCH,CLOSE。 
    能处理动态的多行查询操作,必须要使用OPEN-FOR语句打开游标,使用FETCH语句循环提取数据,最终使用CLOSE语句关闭游标。
  3. 使用批量BULK COLLECT执行动态SQL。 
    通过使用批量动态SQL语句,可以加快SQL语句处理,进而提高PL/SQL的性能。

1. 视图简介

视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。

2. 创建视图

3. 视图的优点

4. 索引

为了提高查询的速度,当用户对查询速度不满意而需要对数据库的性能进行调校时,优先考虑建立索引。

转载于:https://www.cnblogs.com/zzwx/p/4604200.html

ORACLE数据库之PL/SQL触发器、rownum、动态SQL、数据库之视图与索引相关推荐

  1. 哈工大数据库系统(上):嵌入式SQL语言之动态SQL(十)课后测验与作业

    文章目录 前引 第十章课后习题 前引 关于这部分 我的JDBC基本上没怎么听 都跳过了 - - 因为真的记不住 不是叫记不住吧 是因为我现在连基本的连接 数据库操作都没有怎么练 就开始到嵌入式的语言 ...

  2. Mybatis中XML的文件SQL语句与动态sql标签(trim|where|set|foreach|if|choose|when|otherwise|bind)

    在xml中写sql语句有很多的规范.标准,有时候想要找对应的例子还得翻一翻以前的代码,这里干脆对遇到的情况做个记录. 一,新建XML文件 <?xml version="1.0" ...

  3. MyBatis 一个动态sql的问题(动态SQL基于OGNL表达式)<if test=“state == ‘0‘“>单个的字符要使用双引号,改为<if test=‘state == “1“‘>或

    MyBatis 一个动态sql的问题(动态SQL基于OGNL表达式) <if test="state == '0'"> 单个的字符要使用双引号,改为<if tes ...

  4. sql 动态写入数据库字段_批处理写入,动态SQL和参数化SQL,数据库的性能如何?...

    sql 动态写入数据库字段 最有效的数据库优化之一是批处理写入. 批处理写入受大多数现代数据库和JDBC标准的一部分支持,并且受大多数JPA提供程序支持. 普通数据库访问包括在单独的数据库/网络访问中 ...

  5. 嵌入式sql语句oracle,第十讲 嵌入式SQL语言之动态SQL

    动态SQL的概念 静态SQL特点:SQL语句在程序中已经按要求写好,只需要把一些参数通过变量(高级语言程序语句中不带冒号) 传送给嵌入式SQL语句即可(嵌入式SQL语句中带冒号) 例如: SpecNa ...

  6. oracle 执行带参数的sql语句_Oracle动态SQL语句的简单执行

    在使用ODP.NET进行Oracle编程时,有时候SQL语句非常复杂,需要采用动态构造查询语句的情况,有两种方法可以构造动态的SQL语句,并执行返回结果集. 1.在数据访问层构造SQL语句 例如下面的 ...

  7. java回顾:MyBatis参数、sql片段、动态sql、高级查询

    目录 一.MyBatis参数 SqlSessiong工具类 1.映射文件配置-入参 1.1 parameterType入参 1.2 单个入参,变量名任意定义: 1.3 多个入参,解决方案: 1.4 p ...

  8. SQL中的动态SQL

    在介绍动态SQL前我们先看看什么是静态SQL 静态SQL 静态 SQL 语句一般用于嵌入式 SQL 应用中,在程序运行前,SQL 语句必须是确定的,例如 SQL 语句中涉及的列名和表名必须是存在的.静 ...

  9. Mysql动态sql之mybatis动态sql

    mysql动态sql想必大家都了解了 举个列子:现在有如下sql语句 select id,name from animals where id = 1 and name ="老虎" ...

  10. sql语句和动态sql语句

    mybatis常用静态sql和动态sql 文章目录 mybatis常用静态sql和动态sql 静态sql 1.select 标签 2.insert, update 和 delete 3.sql标签 动 ...

最新文章

  1. datetime处理日期和时间
  2. Python自动化开发 - 字符编码、文件和集合
  3. W10中给文件夹添加备注或者注释
  4. python开两个守护线程_python 守护线程
  5. Nvidia CUDA初级教程6 CUDA编程一
  6. Maven(2)--- 环境配置
  7. Linux中的configure、pkg-config、pkg_config_path
  8. [R语言绘图]条状图barplot
  9. java中的锁有哪几种
  10. 使用MATLAB搭建用于时间序列分类的1DCNN模型
  11. Go:Cos求余弦(附完整源码)
  12. Cannot find ‘xxx‘ in scope
  13. NeroTrace Pro追踪工具
  14. python线性方程组求解_python求解方程组的三种方法
  15. Java使用策略模式替换掉 if else
  16. Java 搭建高级画图板
  17. 2019社交电商十大平台集锦
  18. 记一笔(mybatis) Could not find a parent resultmap with id xx
  19. python 读取 excels中的sheet
  20. 输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。

热门文章

  1. 吵架后一个老公的检讨书(超经典)
  2. 如何利用CIC滤波器、CIC补偿滤波器和半带滤波器设计一个高频数字抽取滤波器
  3. c语言 sizeof length,size()、length ()和sizeof()的区别
  4. 传播路径可训练的神经网络(云上人二代)
  5. 如何只训练网络中的全连接层
  6. 比较器 Comparable 与compartor 的区别及理解
  7. 想成为牛逼程序员? 先数数编程语言之父们的头发
  8. linux下uptime命令详解
  9. 使用HtmlGenericControl控件动态产生一些HtmlControls
  10. wayos利用easyradius实现WEB认证页面的记住密码及到期提醒功能