摘要:Oralce多表联合查询时,Oracle优化器会选择相应的索引以提高性能。一些情况下,Oracle优化器不能选择正确的索引,此时可以通过查询语句指定特定的索引以提高性能。例:有两个表A和B 要进行联合查询 A表有索引 IDX_A1_A2,A表和B表的关联条件是A.ID=B.ID通常的SQL查询是 select A.c1,A,c2,B.c3,B.c4 from A,B where A.ID=B.ID 但是数据量在的时候感觉很慢,建立的索引起作用,需要手动指定一下.加指定索引的语法是:/*+ index(表名,索引名) */例如:select /*+ index(A,IDX_A1_A2) */A.
阅读全文
随笔分类 - 数据库
摘要:ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁 3:Row-X 行专用(RX):用于行的修改 4:Share 共享锁(S):阻止其他DML操作 5:S/Row-X 共享行专用(SRX):阻止其他事务操作 6:exclusive 专用(X):独立访问使用 数字越大锁级别越高, 影响的操作越多。 一般的查询语句如select ... from ... ;是小于2的锁, 有时会在v$locked_object出现。 select ... from ... for update; 是2的锁。 当对话使用f...
阅读全文
摘要:查看锁表进程SQL语句1:select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sesswhere ao.object_id = lo.object_id and lo.session_id = sess.sid;查看锁表进程SQL语句2:select * from v$session t1, v$locked_object t2 where t1.s
阅读全文
摘要:rpad函数从右边对字符串使用指定的字符进行填充 rpad(string,padded_length,[pad_string]) string 表示:被填充的字符串 padded_length 表示:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,rpad函数将会把字符串截取成从左到右的n个字符; pad_string 是个可选参数,这个字符串是要粘贴到string的右边,如果这个参数未写,lpad函数将会在string的右边粘贴空格。 例如: rpad('tech', 7); 将返回'tech ' rpad('tech',
阅读全文
摘要:包含以下子过程: Broken()过程。 change()过程。 Interval()过程。 Isubmit()过程。 Next_Date()过程。 Remove()过程。 Run()过程。 Submit()过程。 User_Export()过程。 What()过程。 1、Broken()过程更新一个已提交的工作的状态,典型地是用来把一个已破工作标记为未破工作。 这个过程有三个参数:job 、broken与next_date。 PROCEDURE Broken (job IN binary_integer, Broken I...
阅读全文
摘要:create or replace function f_ywm(chinese1 in varchar2)return varchar2/*说明:此函数用于获取汉字的拼音声母,本函数只生成前10位汉字音序码。用法:将要处理的字符作为参数传给此函数。示例:SQL> select f_ywm('我爱中华') from dual ;输出:WAZH*/isls_one_hz varchar2(10);ls_temp_py varchar2(100);li_length integer;i integer;j integer;li_count integer;ls_py varc
阅读全文
摘要:今天在开发接口时候,需要给接口开发公司提供一个ORACLE 用户,只能访问指定的表或视图,把过程记录到此1.创建一个ORACLE 的用户create userusername identified by pws;2.给用户授权grant connect,resource to username;grant select on表或视图名 tousername;到此,这个用户就可以访问指定的表了,可是用户登录在PLSQL中用 Select * from 表或视频图名;提示表或视图不存在查其原因:因为指定的表或视图不在新建的用户下,要查询,语句如下:select * from 用户名.表或视频图名
阅读全文
摘要:错误产生原因:date类型不能包含秒以后的精度。 如日期:2012-06-20 21:01:24在使用to_date() 函数时有可能出现此错误解决办法:to_date('2012-06-20 21:01:24','yyyy-mm-dd') 是错误的使用instr(详细用法 http://www.cnblogs.com/BetterWF/archive/2012/06/20/2556444.html)函数配合使用,例如:to_date( substr('2012-1-1 00:00:00',0,INSTR('2012-1-1 00:00:
阅读全文
摘要:oracle instr函数在oracle PL/SQL中,instr函数返回string2在string1中出现的位置,语法如下:instr(string1,instring2[,start_position[,nth_appearance]])string1:被搜索的字符串string2:在string1里面寻找的字符串start_position:从string1中开始搜索的位置,这是个可选参数,默认为1。sting1中第一个字符的位置为1。如果这个参数为一个负数,那么搜索将从string1的末尾开始,并向string1的开始位置进行搜索。nth_appearance:string2在s
阅读全文
摘要:比较大小函数 sign函数语法:sign(n)函数说明:取数字n的符号,大于0返回1,小于0返回-1,等于0返回0示例:一、select sign( 100 ),sign(- 100 ),sign( 0 ) from dual; SIGN(100) SIGN(-100) SIGN(0) ———- ———- ———- 1 -1 0二、a=10,b=20 则sign(a-b)返回-1流程控制函数 DECODE 函数介绍 DECODE函数是ORACLE PL/SQL的功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能。DECODE有...
阅读全文
摘要:从oracle 9i 开始,提供了一个叫做“管道化表函数”的概念,来解决这个问题这种类型的函数,必须返回一个集合类型,且标明 pipelined这个oracle函数不能返回具体变量,必须以一个空 return 返回这个oracle函数中,通过 pipe row () 语句来送出要返回的表中的每一行调用这个oracle函数的时候,通过 table() 关键字把管道流仿真为一个数据集具体写法如下:create type row_type2 as object(username1 varchar2(100),dw1 varchar2(100),ts number); //创建行类型,同要返回的表的类
阅读全文
摘要:今天往Oracle 中导入数据时,有一个列导入的数据应该时‘2011-10-11’ 的格式,结果导入的数据为 ‘2011/10/11’格式的,5000多条记录要一条条改基本不可能。后来想到了replace这个函数,具体用法如下:update表1 t set t.列1=replace((select 列1from表1 a where a.主键列=t.主键列) , '/' , '-' ) 解决了我们问题。replace 函数用法如下:replace('将要更改的字符串','被替换掉的字符串','替换字符串')例:sel
阅读全文
浙公网安备 33010602011771号