游标的解析过程
游标的解析过程(产生shared cursor) 解析过程: A、包含vpd的约束条件: SQL语句如果使用的表使用了行级安全控制,安全策略生成的约束条件添加到where子句中 B、语法、语义、访问权限检查: 检查SQL语句书写的正确性,对象存在性,用户的访问权限 C、父游标缓存: 将该游标(SQL语句)的文本进行哈希得到哈希值并在library cache寻找相同的哈希值,如不存在则生存父游标且保存在library cache 中,按顺序完成D-F步骤。如果此时存在父游标,则进一步判断是否存在子游标。若存在相同的子游标,则直接调用其子游...
Oracle游标的生命周期
session cursor需要从UGA中分配内存,因此有其生命周期。其生命周期主要包括: 打开游标(根据游标声明的名称在UGA中分配内存区域) 解析游标(将SQL语句与游标关联,并将其执行计划加载到Library Cache) 定义输出变量(仅当游标返回数据时) 绑定输入变量(如果与游标关联的SQL语句使用了绑定变量) 执行游标(即执行SQL语句) 获取游标(即获取SQL语句记录结果,根据需要对记录作相应操作。游标将逐条取出查询的记录,直到取完所有记录) 关闭游标(释放UGA中该游标占有的相关资源,但Library Cache中的游标的执行计划按LRU原...
Oracle共享游标
游标是数据库领域较为复杂的一个概念,因为游标包含了shared cursor和session cursor。两者有其不同的概念,也有不同的表现形式。 共享游标的概念易于与SQL语句中定义的游标相混淆。本文主要描述解析过程中的父游标,子游标以及共享游标,即shared cursor,同时给出了 游标(session cursor)的生命周期以及游标的解析过程的描述。 有关游标的定义,声明,与使用请参考:PL/SQL 游标 有关硬解析与软解析请参考:Oracle 硬解析与软解析 shared cursor 也即是共享游标,是SQL语句在游标解析阶段...
ORA-14037 :解决办法
ORA-14037: 分区 "P2" 的分区界限过高 CREATE TABLE PROVINCE_INFO ( PROVINCE_ID VARCHAR2(8) NOT NULL, PROVINCE_NAME VARCHAR2(40) NOT NULL, CREATE_DT DATE ) PARTITION BY RANGE (PROVINCE_ID)( PARTITION P1 VALUES LESS THAN ('8'), PARTITION P2 VALUES LESS THAN ('9'), PARTITION P3 VALUES LESS THAN ('10'), PARTITION P4 VALUES LESS THAN ('11'), PARTITION P5 VALUES LESS THAN (MAXVALUE) ); 查oracle 错误文档 ORA-14037 ORA-14037 partition bound of partition "string"...
wmsys.wm_concat用法 详解
函数名:wmsys.wm_concat 作用:以逗号分隔连接列的值 oracle 10g引入。使用时直接用wm_concat也可以。 以下介绍一些实际使用的状况。介绍实际Case前先建立一个测试table和一些测试数据。 两张表: employee,prject;属性如下 1)employee: 员工ID号,员工名,部门 测试数据 0001 user1 IT 0002 user2 IT 2)prject:项目ID号,负责的员工ID号 测试数据 PN001 0001 PN002 0001 PN003 0001 PN004 0001 PN010 0002 PN011 0002 对应的SQL如下 [sql] view plaincopy create tab...
最简单的oracle数据导入导出
导出时在dos命令里输入:exp username/password@sid file=d:\exp.dmp full=y username/password分别代表你的用户名和密码 sid表示你的数据库名 导入时:imp username/password@sid file=d:\exp.dmp full=y ignore=y 记得当前用户的权限 用pl/sql进行导入导出: 导出步骤: 1 tools ->export user object 选择选项,导出.sql文件 2 tools ->export tables-> Oracle Export 选择选项导出.dmp文件 导入步骤: 1 tools->import tables->SQL Inserts 导入.sql文件 2 tools->import talbes->Ora...
ORA-01810: 格式代码出现两次
问题: ORA-01810: format code appears twice 解决办法: to_date('2006-06-01 18:00:00' 'yyyy-mm-dd hh:MM:ss') 而在Oracle中的日期格式是不区分大小写的,所以 mm 出现了两次。 正确的写法是: to_date('2006-06-01 18:00:00' 'yyyy-mm-dd hh:mi:ss')