![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Oracle
shanhuhauu
这个作者很懒,什么都没留下…
展开
-
/*+ BYPASS_UJVC*/ 的使用技巧
在使用implict update table 时,发现其中一个表一定要有唯一约束,否则会报错!但是oracle可以使用hints:/*+ BYPASS_UJVC*/ 屏蔽掉队唯一性的检查。具体测试过程如下:SQL> CREATE TABLE test_a( 2 id NUMBER , 3 score NUMBER );Table created.Elapsed: 00...原创 2012-05-09 13:27:52 · 235 阅读 · 0 评论 -
解决简单的双数据源问题想到的
[size=medium] 一个交易系统每天数据量都很大,日积月累历史表中就会有很多的数据,如果在交易过程中后台查询报表以及查看交易情况,会严重干扰到交易的进行,导致交易进行缓慢。 这个时候想到了由于数据库采用了实时备份策略,准备后台数据库查询的时候才用备用数据库查询数据,前台只用来处理交易。 沿着这个思路添加了备用库的数据源,在查看代码的过程中,将查询和非查询放到两个不...2012-08-01 16:56:58 · 118 阅读 · 0 评论 -
Oracle查询表中指定字段的数据是否含有某个字符
[size=medium]采用user_table_column即可,该视图主要字段说明如下:TABLE_NAME 表、视图或Clusters名称COLUMN_NAME 列名DATA_TYPE 数据类型我的需求如下:要在当前用户的表里面找到所有商品ID为A的字段并将其更新[/size][code="sql"]declare v_sql varch...2012-11-03 11:12:53 · 1860 阅读 · 0 评论 -
oracle数据库创建索引
系统中有一张记录登录和注销的日志表,时间长了之后,数据量很大,又没有历史表。而客户端登录时都会去数据库查询用户上次登录的IP和时间,由于没有索引所以很慢有时侯。故需要对此表加入索引,一提高查询效率 首先先查下表中存在哪些索引 select index_name from all_indexes where table_name = 'SYSLOG'; 如果不存...原创 2012-04-11 17:26:05 · 140 阅读 · 0 评论 -
关于历史表使用trunc的问题
最近改一个BUG,需要根据时间区间进行查询,但是反应查询时间特别长, select * from A t, B mbf, C m where t.firmId = mbf.firmId and mbf.brokerId = m.brokerId and trunc(cleardate ) <= to_Date('20120312','yyyymmdd')...2012-04-06 14:19:12 · 136 阅读 · 0 评论 -
关于DECODE
DECODE是Oracle公司独家提供的功能,它是一个功能很强的函数。它虽然不是SQL的标准,但对于性能非常有用。到目前,其他的数据库供应商还不能提供类似DECODE的功能,甚至有的数据库的供应商批评Oracle的SQL不标准。实际上,这种批评有些片面或不够水平。就象有些马车制造商抱怨亨利。福特的“马车”不标准一样。1 DECODE 中的if-then-else逻辑 在逻辑编...原创 2012-04-05 13:17:59 · 95 阅读 · 0 评论 -
Oracle10g JDBC ojdbc14 DATE类型Spring查询时分秒问题
一般的数据库中,DATE字段仅仅表示日期,不包括日期信息,而Oracle数据库中的DATE数据类型是包括日期、时间的,对于不同的Oracle jdbc驱动版本,对于该问题的处理都有些区别。 最近用ORACLE 10G,时间字段因需求,设为了DATE类型,发现SpringJDBC 查询,显示不了时分秒,一看,原来是JDBC驱动自动把date映射为 java.sql.date,故截断了...2012-07-23 15:51:19 · 126 阅读 · 0 评论 -
to_chat 和to_date
TO_CHAR 是把日期或数字转换为字符串TO_DATE 是把字符串转换为数据库中得日期类型转换函数TO_NUMBER 将字符转化为数字 TO_CHAR 使用TO_CHAR函数处理数字 TO_CHAR(number, '格式') TO_CHAR(salary,’$99,999.99’); 使用TO_CHAR函数处理日期 TO_CHAR(date,’格式’); TO_NUMBER 使用TO_N...原创 2012-03-31 17:43:34 · 134 阅读 · 0 评论 -
关于Flashback table tablename to before drop的应用—恢复drop掉的表
在oracle10g中,如果不小心drop掉一张表,能不能恢复呢?答案是肯定的,在oracle10g中,当使用命令drop table tablename 命令时,其实不会真正的删除该表,而是把表放到了回收站中(回收站的概念类似windows中的回收站),所以我们可以通过flashback命令来恢复drop掉的表,下面就该问题做一个小小的研究我们先创建一张表Cr...原创 2012-03-30 15:13:23 · 234 阅读 · 0 评论 -
for update和for update of
对比区别: select * from TTable1 for update 锁定表的所有行,只能读不能写 select * from TTable1 where pkid = 1 for update 只锁定pkid=1的行 select * from Table1 a join Table2 b on a.pkid=b.pkid for update 锁定两个表的所有记录 select * f...原创 2012-05-25 14:22:58 · 413 阅读 · 0 评论 -
Oracle给存储增加调试权限
[size=large]给Function增加调试权限GRANT debug any procedure, debug connect session TO 用户;GRANT debug any function, debug connect session TO 用户;grant debug connect session to 用户ALTER FUNCTION DAY ...原创 2012-05-22 09:30:13 · 261 阅读 · 0 评论 -
Oracle数据库的事务隔离级别
1、ANSI/ISO SQL92标准定义了一些数据库操作的隔离级别:l 未提交读(read uncommitted)l 提交读(read committed)l 重复读(repeatable read)l 序列化(serializable) 也就是隔离级别,0,1,2,3。ANSI/ISO SQL92标准有很详细的说明 隔离级别0与事务无关,并且不加锁,...原创 2012-02-01 15:42:58 · 103 阅读 · 0 评论 -
ORA-00604: 递归 SQL 级别 1 出现错误,ORA-01000: 超出打开游标的最大数
[size=medium]今天调试程序,错误如下 ORA-00604: 递归 SQL 级别 1 出现错误,ORA-01000: 超出打开游标的最大数程序是在一个线程里循环调用数据库获取数据做处理,结果跑步了几十秒就报这个错误。上网查了解释如下:这两个错误一般出现在利用代码循环执行数据库命令(例如将数据导入到数据库)时,例如在C#中 1)建立一个OracleCon...2012-09-18 17:26:58 · 560 阅读 · 0 评论