Oracle Developer
文章平均质量分 67
gtlions
FuZhou
展开
-
删除非owner job
删除非owner job 在尝试使用sys删除一个用户的job的时候报错了,应该使用DBMS_IJOB下的REMOVE来处理即可。 SQL> Exec DBMS_JOB.REMOVE(62); begin DBMS_JOB.REMOVE(62); end; ORA-23421: job number 62 is not a job in the job queue ORA-0原创 2012-02-09 12:01:45 · 1742 阅读 · 0 评论 -
B*索引:唯一和非唯一索引的区别
阅读笔记 在一个非惟一索引中,Oracle会把 rowid作为一个额外的列(有一个长度字节)追加到键上,使得键惟一。例如,如果有一个CREATE INDEX I ON T(X,Y)索引,从概念上讲,它就是CREATE UNIQUE INDEX I ON T(X,Y,ROWID)。在一个惟一索引中,根据你定义的惟一性,Oracle不会再向索引键增加rowid。在非惟一索引中,你会发现,数据会首先按原创 2010-12-03 15:44:00 · 1457 阅读 · 0 评论 -
ORA-14552: 在查询或 DML 中无法执行 DDL
出现这个问题的原因是在function中执行了DDL语句,而有个过程使用"select func(x) from table"格式调用了这个函数,由于这个过程是别的同事写的,出于种种原因无法去修改这个过程,好在函数中的DDL是个truncate历史表语句,临时解决办法只好是去掉DDL语句,并且加强的条件过滤,保障数据正确性。 换个角度考虑,如果函数中有执行DDL的必要,在调用的时候避免查询语句的原创 2010-05-04 12:12:00 · 7121 阅读 · 0 评论 -
Extensions to DDL and DML:Insert into
1、insert ...all SQL> select * from test; ID NAME SALES ---------- -------- ---------- 1 a 123 2 b 23 3 c 23原创 2008-10-30 22:49:00 · 616 阅读 · 0 评论 -
Oracle中的with as的查询
with as查询功能还是比较有用的,看下面的例子: with t as (select 'a' f1,1 f2,'aa' f3 from dual union select 'a' ,2 ,'bb' from dual union select 'a' ,3 ,'cc' from dual) select distinct f1,max(f2) over(partition by原创 2008-10-04 09:22:00 · 910 阅读 · 0 评论 -
about FTS(Full Table Scan) V db file scattered read&db file sequential read
我们知道全表扫描的时候执行的是多块扫描I/O,一次I/O多块读取块数取决于db_file_multiblock_read_count,每次多块读取的时候都要等到物理I/O结束(关于这个参数,针对不同OS和环境有不通的默认值,要知道所在环境可以设置最大的值是多少,设置一个超大的数字,oracle会设置成允许的最大值)这时候出现了db file scattered read等待事件。 那么会出现原创 2011-01-26 14:05:00 · 697 阅读 · 0 评论 -
事务提交的频率
看看在看文档的时候突然想起了一个问题。 曾经面试过的一个公司,提问我这么一个问题:你要执行insert into或者update数据量在1W(以上)的大量记录的语句,如何处置commit?当时的我刚刚参加工作,刚刚接触到oracle一段时间,也刚刚阅读了"大量"的oracle基础知识、。。。。。。,然后我答到:最后是立即提交。汗,多么幼稚的答案,如果是1w条的insert语句,在每个语句之后插入原创 2010-10-19 16:41:00 · 1369 阅读 · 0 评论 -
oracle序列生成器(sequence)使用的一点小注意
有人遇到这么一个问题,访问一个序列怎么出错了,错误如下: ORA-08002: 序列 SEQ_GX.CURRVAL 尚未在此会话中定义 这是因为在一个新的会话中,序列需要初始化,也就是通过.NEXTVAL来完成序列的初始化。 测试如下: Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 Conn原创 2010-04-21 18:14:00 · 3506 阅读 · 0 评论 -
oracle函数之:translate
今天在阅读一份document的时候发现了一个函数:translate 先看看语法及其介绍吧。 TRANSLATE(char, from, to) Returns Char with all occurrences of each character in From replaced by its cor原创 2009-02-10 19:10:00 · 560 阅读 · 0 评论 -
DBMS_JOB Paceage
DBMS_JOB包提供了强大的定时执行JOB的功能和管理。 看下都提供了哪些有用的函数和过程: FUNCTION BACKGROUND_PROCESS RETURNS BOOLEAN PROCEDURE BROKEN Argument Name Type In/Out Default? ------------------------------ ---------------原创 2011-01-17 16:27:00 · 771 阅读 · 0 评论 -
exp导出操作结果判断
在日常的导出exp操作中,在自动的计划操作脚本中执行命令,有时候需要判断导出操作是否成功执行,以便做下一步的操作,这个时候就需要获取得到exp操作的结果返回值了,对此,oracle提供了3个返回值: 操作结果 返回值 Export terminated successfully without原创 2011-12-15 11:08:22 · 2352 阅读 · 0 评论 -
获取用户和权限SQL语句
在日常维护工作中,会遇到需要将一个库的用户迁移到别的库当中去,在此过程中需要在目标库当中创建相同的用户和相关权限,如果在一个开发文档规范的项目组中,相关的用户和权限信息可以轻易的获取到,但是万一相关的信息没有被记录文档,这个时候就需要从数据库中获取相关的语句了。 以下语句可以获取到相关的所需的创建语句。 -- 获取创建用户 Set pagesize 100; Set linesize原创 2012-05-14 16:14:05 · 3588 阅读 · 0 评论 -
connect by level语法的理解
connect by level的语法由于构造大量的数据的时候特别有用,但是如果没有真正理解其中的含义,滥用就会导致生产大量的数据,通常情况下错误的理解是基数记录和基数记录的笛卡尔积,笛卡尔积是没错,但是两个因子并不都是基数记录,其中一个是上1个level的记录,知道这点很总要,否则会生产大量的超出你预想的记录数出来,具体看测试过程。 SQL> select * from v$version;原创 2011-11-16 12:13:46 · 2311 阅读 · 0 评论 -
sqlplus用户指南和参考
1. 配置文件 sqlplus的配置文件主要有2个,全局配置文件glogin.sql和用户配置文件login.sql。 顾名思义glogin.sql是所有使用sqlplus的用户都会受到影响的配置文件,位于$ORACLE_HOME/sqlplus/admin。 而用户配置文件会在当前目录下查找,接着查找SQLPATH路径下的。 执行顺序是先执行全局配置文件,之后执行用户配置文件。 2.原创 2011-08-04 23:44:55 · 3272 阅读 · 0 评论 -
UNION ALL导致的ORA-07445错误
前几天写到在客户现场处理了一个ORA-07445的oracle bug,当时采取的办法是修改隐含参数"_optimizer_cost_based_transformation"=off。 当时修改的时候由于没有仔细查阅这个参数的用途,只是凭着字面意思猜测感觉和执行、优化相关,当时还说怕怕的,怕又什么影响。 结果,非常杯具的事情在第2天发生了,一个日常的在凌晨执行的数据加工存储过程,平时只要15原创 2011-02-28 10:18:00 · 1403 阅读 · 0 评论 -
insert之后update和insert之中left join效率测试
前天有同事在QQ上问了我个问题: 问一下,insert之后update和insert语句中使用left join哪个效率高一些?每个update 差不多4个字段这样。 我脑海里第1刻闪过的答案是:后者效率更高。 依据如下: 1、从生成redo和undo来考虑 2、直观的执行时间考虑 3、减少访问表的次数 事后把这个问题拿到QQ群,网络讨论的意见基本和我一致。 那么下原创 2011-02-12 10:36:00 · 4371 阅读 · 0 评论 -
频繁提交带来的代价小议
记得之前写过一篇,说我当时刚刚接触oracle的时候,一次面试被问到如何处理大量insert语句的提交频率?我当时的回答是模糊的,说尽量分散提交,针对这个错误的回答,之前的文章已经阐述过了。 今天就针对这个问题带来的代价或者影响做个测试。 频繁的insert&commit不仅仅带来语句维护的难度、失败后工作恢复难度大等等问题,下面我们观察从等待事件上带来的数据。 一般来说每次com原创 2011-01-27 14:14:00 · 925 阅读 · 0 评论 -
Oracle Start with...Connect By子句递归查询
Start with...Connect By子句递归查询一般用于一个表维护树形结构的应用。 SQL> Select * From test2 ; ID NAME MANID ---------- ---------- ---------- 1 Pataballa 0 2 Lorentz原创 2008-10-29 21:31:00 · 820 阅读 · 0 评论 -
oracle 1z007: Enhancements to the group by clause
group by及其高级函数 先看几个例子 Connected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 Connected as system test1表存放1-4个人销售业绩,如下: SQL> Select * From test1 Order By Id ; ID原创 2008-10-24 22:26:00 · 673 阅读 · 0 评论 -
使用正规表达式编写更好的 SQL
Oracle Database 10g 中的正规表达式特性是一个用于处理文本数据的强大工具 Oracle Database 10g 的一个新特性大大提高了您搜索和处理字符数据的能力。这个特性就是正规表达式,是一种用来描述文本模式的表示方法。很久以来它已在许多编程语言和大量 UNIX 实用工具中出现过了。 Oracle 的正规表达式的实施是以各种 SQL 函数和一个 WHERE 子句操作符原创 2008-10-19 09:25:00 · 550 阅读 · 0 评论 -
btiand 位于函数
SQL> select bitand(1,2) from dual ; BITAND(1,2) ----------- 0 如下理解: 1 --的二进制 0001 && 2 --的二进制 0010 ------------------------ 0000 --的十进制 0 所以结果为0. 另外: BI原创 2008-10-24 23:16:00 · 483 阅读 · 0 评论