首页
学习
活动
专区
圈层
工具
发布

游标和触发器

为此,PL/SQL 中引入了游标 (cursor)的概念,使用游标来协调这两种不同的处理方式。...注意:​ 定义参数游标时,游标参数只能指定数据类型而不能指定长度。 6.1 .3游标FOR循环 游标FOR循环是在PL/SQL块中使用游标的最简单方式,它可以简化对游标的处理。当使用游标​。​...开发人员可以在应用中直接使用PL/SQL游标变量。在PL/SQL块中使用游标变量包括定义游标变量、打开游标、提取游标数据、关闭游标4个阶段,具体步骤如下: 1....另外,不能在包内定义游标变量。 隐含游标 隐含游标由 PL/SQL控制。当执行一条DML语句或者 SELECT…INTO语句时,都会创建一个隐含游标。...隐含游标的名称是 SQL,不能对​ ​SQL游标显式地执行OPEN、FETCH和 CLOSE语句。Oracle 隐式地打开、提取,并总是自动地关闭 SQL 游标。

63810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Oracle-Soft ParseHard ParseSoft Soft Parse解读

    当发布一条DML SQL或PL/SQL命令时,Oracle会自动寻找该命令是否存在于共享池中来决定对当前的语句使用硬解析或软解析。...f.执行SQL代码,返回结果。 ---- 软软解析过程 要完全理解软软解析先要理解游标的概念,当执行SQL时,首先要打开游标,执行完成后,要关闭游标,游标可以理解为SQL语句的一个句柄。...那么为什么Oracle需要再次对语句文本进行检测呢?不是SQL语句的HASH值已经对应上了?事实上就算是SQL语句的HASH值已经对应上了,并不能说明这两条SQL语句就已经可以共享了。...至此,解析的步骤已经全部完成,Oracle将会根据解析产生的执行计划执行SQL语句和提取相应的数据。 ---- 不能使用软解析的情形 1.下面的三个查询语句,不能使用相同的共享SQL区。...---- 使用绑定变量的栗子 (软解析/软软解析) 测试数据: create table xgj_test(x_id int ); insert into xgj_test(x_id) values (

    2.5K20

    Oracle PLSQL随堂笔记总结

    1.pl/sql编程 2.存储过程 3.函数 4.触发器 5.包 6.pl/sql基础 -定义并使用变量 7.pl/sql的进阶 8.oracle的视图 1.pl/sql编程 1.理解oracle.../sql表 相当于高级语言中的数组,但是需要注意的是在高级语言中数组的下标不能为负数,而pl/sql是可以为负数的,并且表元素的下标没有限制。...在编写pl/sql时,可以使用游标变量(ref_cursor)和对象类型变量(ref_obj_type)两种参照变量类型。...1).游标变量(ref_cursor) 实例1:请使用pl/sql编写一个块,可以输入部门号,显示该部门所有员工的姓名及其工资。...--pl/sql参照变量 之游标变量 declare --定义一个游标类型 type sp_emp_cursor is ref cursor; --定义一个游标变量

    2.3K40

    绑定变量及其优缺点

    有关更多的硬解析与软解析以及父游标,子游标请作如下参考:     有关硬解析与软解析,请参考:Oracle 硬解析与软解析     有关父游标、子游标,请参考:父游标、子游标与共享游标    .../SQL块中使用绑定变量 SQL> create table t(id number,val number); -->首先创建表t.../sql代码中,Oracle实现自动变量自动绑定,执行了30次的insert操作,但oracle认为每次执行的语句都是一样的 /*****************************...中是使用绑定变量     -->动态SQL中不能自动使用绑定变量,需要手动设定绑定变量...注意:         对于实际的数据库对象,如(表,视图,列等),不能使用绑定变量替换,只能替换字面量。

    1.6K20

    Oracle之PLSQL学习笔记

    PL/SQL定义:PL/SQL是由Oracle开发,专门用于Oracle的程序设计语言。 PL---Procedural Language. SQL—Structure QueryLanguage。...块的三个组成部分: 一:定义部分(declare) PL/SQL中使用的变量,常量,游标和异常的名字都必须先定义后使用。...PL/SQL块的类:   1、    匿名块:只能存储一次,不能存储在数据库中   2、    过程,函数和包(procedure,function,package):是命了名的PL/SQL块,被存储在数据库中...3、    游标的声明:     a)  语法:CURSOR cursor_name IS select_statement;     b)  在游标声明中SELECT语句不能使用INTO语句,可以在字句子中使用...c)  对游标第一次使用FETCH时,游标指向的是第一条记录,使用后游标指向下一条记录。     d)  游标只能向下移动不能回退,如果想回退到上一条记录,只有把游标关闭后在打开。

    1.3K80

    Oracle应用实战八(完结)——存储过程、函数+对象曹组

    游标 在写java程序中有结果集的概念,那么在pl/sql中也会用到多条记录,这时候我们就要用到游标,游标可以存储查询返回的多条数据。...游标可以理解为是PL/SQL中的结果集,我们通过游标可以提取结果集中的每行记录。 ?...在声明区声明游标,语法如下: cursor 游标名称 is SQL语句; 使用游标语法 open 游标名称loop fetch 游标名称 into 变量 exit when 游标名称%...LOGIN_DENIED PL/SQL 应用程序连接到 oracle 数据库时,提供了不正确的用户名或密码 NOT_LOGGED_ON PL/SQL 应用程序在没有连接 oralce 数据库的情况下访问数据.../SQL 系统包 ROWTYPE_MISMATCH 宿主游标变量与 PL/SQL 游标变量的返回类型不兼容 SELF_IS_NULL 使用对象类型时,在 null 对象上调用对象方法 STORAGE_ERROR

    2.1K60

    oracle基本面试题_mongodb面试题

    oracle使用的脚本语言为PL-SQL,而sql server使用的脚本为T-SQL 微观上: 从数据类型,数据库的结构等等回答 2....如何使用Oracle的游标? 1). oracle中的游标分为显示游标和隐式游标 2)....显式游标的操作:打开游标、操作游标、关闭游标;PL/SQL隐式地打开SQL游标,并在它内部处理SQL语句,然后关闭它 3. Oracle中function和procedure的区别? 1)....简述oracle中 dml、ddl、dcl的使用 Dml 数据操纵语言,如select、update、delete,insert Ddl 数据定义语言,如create table 、drop table...分析锁:ORACLE使用共享池存储分析与优化过的SQL语句及PL/SQL程序,使运行相同语句的应用速度更快。一个在共享池中缓存的对象获得它所引用数据库对象的分析锁。

    3.6K20

    【DB笔试面试583】在Oracle中,什么是绑定变量分级?

    如果在PL/SQL代码中使用了文本型绑定变量,只要其SQL文本中文本型绑定变量的定义长度发生了变化,那么Oracle为这些绑定变量所分配的内存空间的大小也可能会随之发生变化,而一旦Oracle为这些绑定变量所分配的内存空间的大小发生了变化...,那么该SQL之前存储在子游标(Child Cursor)中的解析树和执行计划就不能被重用了。...原因是子游标中除了会存储目标SQL的解析树和执行计划之外,还会存储该SQL所使用的绑定变量的类型和长度,这意味着即使该SQL的SQL文本没有发生任何改变,只要其SQL文本中文本型绑定变量的定义长度发生了变化...下面给出一个示例(数据库版本为11.2.0.3): 建表T_BG_20170610_LHR,并给出5个PL/SQL代码: CREATE TABLE T_BG_20170610_LHR(N NUMBER(...所以这里Oracle在执行范例PL/SQL代码1、2、3时每次都是硬解析,但在执行范例PL/SQL代码4和5时会用软解析/软软解析,因为范例PL/SQL代码4和5可以重用之前执行的范例PL/SQL代码3

    82610

    Web-第二十四天 Oracle学习【悟空教程】

    PL/SQL工具包含三种方式导出Oracle表结构及数据,三种方式分别为:Oracle Export 、SQL Inserts、PL/SQL Developer,下面分别简单介绍下区别: 第一种方式导出...第三种方式导出.pde格式的文件,.pde为PL/SQL Developer自有的文件格式,只能用PL/SQL Developer工具导入导出,不能用文本编辑器查看。...这样的需求我们就无法使用一条SQL来实现,需要借助其他程序来帮助完成,也可以使用pl/sql。 PL/SQL的语法 ? 常量和变量的定义 ?...第四天 十一、PL/SQL编程语言 l 游标(光标Cursor) 为什么要使用游标?...在写java程序中有集合的概念,那么在pl/sql中也会用到多条记录,这时候我们就要用到游标,游标可以存储查询返回的多条数据。

    2.2K20

    Oracle笔记

    1.Oracle内容介绍:   (1)基本部分:oracle基本使用、用户管理、表管理   (2)高级部分:表的查询、权限和角色、函数、PL/SQL编程、数据库管理、索引,约束       和事务...不能使用oracle的保留字   (4)只能使用如下字符:A-Z,a-z,0-9,$,#等 10.字符型:   (1)char 定长 最大2000字符      例如:char(10) '小韩',.../或是名字(不能有数据)        sql>alter table student modify (xm char(30))   (4)删除一个字段:        sql>alter table...54.pl/sql块基本构成:   (1)定义部分:declare--定义常量、变量、游标、例外、复杂数据类型   (2)执行部分:begin--要执行的pl/sql语句和sql语句   (3)例外处理部分...当定义触发器时,必须要指定触发的事件和     触发的操作,常用的触发事件包括insert,update,delete语句,而触发操作实际就     是一个pl/sql块。

    1.6K20

    PLSQL --> 异常处理(Exception)

    为了提高程序的健壮性,可以在PL/SQL块中引 入异常处理部分,进行捕捉异常,并根据异常出现的情况进行相应的处理。 一、异常的类型 ORACLE异常分为两种类型:系统异常、自定义异常。...该函数用于在PL/SQL中定义错误消息,且只能在数据库端的子程序中使用(存储过程、函数、包、触发器),不能在匿名块和客户端的 子程序中使用 使用方法 RAISE_APPLICATION_ERROR...从Oracle 10g开始,在编写PL/SQL子程序之前开发人员可以激活警告检查....--> 游标 PL/SQL -->隐式游标(SQL%FOUND) PL/SQL --> 异常处理(Exception) PL/SQL --> PL/SQL记录 PL/SQL --> 包的创建与管理 PL.../SQL --> 包重载、初始化 PL/SQL --> DBMS_DDL包的使用 PL/SQL --> DML 触发器 PL/SQL --> INSTEAD OF 触发器

    2K10
    领券