﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-学习笔迹-随笔分类-oracle</title><link>http://www.blogjava.net/chenlb/category/24903.html</link><description>好记性不如烂笔头!</description><language>zh-cn</language><lastBuildDate>Thu, 03 Jan 2008 17:54:51 GMT</lastBuildDate><pubDate>Thu, 03 Jan 2008 17:54:51 GMT</pubDate><ttl>60</ttl><item><title>oracle 用户SYS 和 SYSTEM的默认口令</title><link>http://www.blogjava.net/chenlb/archive/2008/01/03/172491.html</link><dc:creator>流浪汗</dc:creator><author>流浪汗</author><pubDate>Thu, 03 Jan 2008 07:10:00 GMT</pubDate><guid>http://www.blogjava.net/chenlb/archive/2008/01/03/172491.html</guid><wfw:comment>http://www.blogjava.net/chenlb/comments/172491.html</wfw:comment><comments>http://www.blogjava.net/chenlb/archive/2008/01/03/172491.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenlb/comments/commentRss/172491.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenlb/services/trackbacks/172491.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oracle 用户SYS 和 SYSTEM的默认口令：TIGER
<img src ="http://www.blogjava.net/chenlb/aggbug/172491.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenlb/" target="_blank">流浪汗</a> 2008-01-03 15:10 <a href="http://www.blogjava.net/chenlb/archive/2008/01/03/172491.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle sql =号左边含有 TRIM 严重影响性能！ </title><link>http://www.blogjava.net/chenlb/archive/2007/12/26/170515.html</link><dc:creator>流浪汗</dc:creator><author>流浪汗</author><pubDate>Wed, 26 Dec 2007 02:42:00 GMT</pubDate><guid>http://www.blogjava.net/chenlb/archive/2007/12/26/170515.html</guid><wfw:comment>http://www.blogjava.net/chenlb/comments/170515.html</wfw:comment><comments>http://www.blogjava.net/chenlb/archive/2007/12/26/170515.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenlb/comments/commentRss/170515.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenlb/services/trackbacks/170515.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这学期的项目中，用hibernate和oracle。表结构我们不能改，这样的遗留系统用hibernate有点麻烦。汗！别人把可变长的字符类型设计为CHAR，郁闷死。这样所有?形式的sql语句基本上无效（不是恰好这么长就找不到数据），这是oracle的JDBC限定了（mysql的JDBC不会）。然后就想到在=号左边用TRIM可以解决PrepareStatement找不到数据的问题。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; 麻烦来了。同学用100W行数据来测试。发现比较卡。然后追踪hibernate的SQL日志发现有trim的语句就慢。然后把此SQL语句在PL/SQL客户端试下，发现在26秒才能找到结果。汗！这么严重！去了TRIM不到1秒的事情。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; 字段类型的设计不好，就这样...<br />
<br />
可以看下 <a class="postTitle2" id="viewpost1_TitleUrl" href="http://www.blogjava.net/chenlb/archive/2007/10/17/153629.html">oracle jdbc char 字段 PreparedStatement 查询问题</a> 
<img src ="http://www.blogjava.net/chenlb/aggbug/170515.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenlb/" target="_blank">流浪汗</a> 2007-12-26 10:42 <a href="http://www.blogjava.net/chenlb/archive/2007/12/26/170515.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORA-14402: 更新分区关键字列将导致分区的更改</title><link>http://www.blogjava.net/chenlb/archive/2007/10/29/156772.html</link><dc:creator>流浪汗</dc:creator><author>流浪汗</author><pubDate>Mon, 29 Oct 2007 13:09:00 GMT</pubDate><guid>http://www.blogjava.net/chenlb/archive/2007/10/29/156772.html</guid><wfw:comment>http://www.blogjava.net/chenlb/comments/156772.html</wfw:comment><comments>http://www.blogjava.net/chenlb/archive/2007/10/29/156772.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenlb/comments/commentRss/156772.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenlb/services/trackbacks/156772.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天，师弟更新数据的时候出现问题。出现&#8220;更新分区关键字列将导致分区的更改&#8221; ，看了下数据库，更新的表有分区，而且更新的字段是分区的关键字（从报错可以看出来了）。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 网上找了下，说用这样可以：<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">alter</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;xxx&nbsp;enable&nbsp;row_movement;</span></div>
<br />
但我没有试也没有这样做，可能是不放心，解决办法是不更新分区的关键字(因为系统不用更新它的，之前更新是因为hibernate处理它了)。如果的确要更新可以先删除了，再添加一个。引用<a href="http://www.itpub.net/283642,1.html">http://www.itpub.net/283642,1.html</a><br />
<br />
<font face="verdana, arial, helvetica" size="2"><span class="javascript" id="text2054986" style="font-size: 12px">Question: Why am I getting an ora-14402 error when I update a partition key <br />
Answer: You cannot update the value of the partition key, the only way you can go about this is by deleting the old row and adding a new row to the table<br />
<br />
<br />
</span></font>
<img src ="http://www.blogjava.net/chenlb/aggbug/156772.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenlb/" target="_blank">流浪汗</a> 2007-10-29 21:09 <a href="http://www.blogjava.net/chenlb/archive/2007/10/29/156772.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORA-01461: can bind a LONG value only for insert into a LONG column</title><link>http://www.blogjava.net/chenlb/archive/2007/10/20/154558.html</link><dc:creator>流浪汗</dc:creator><author>流浪汗</author><pubDate>Sat, 20 Oct 2007 13:08:00 GMT</pubDate><guid>http://www.blogjava.net/chenlb/archive/2007/10/20/154558.html</guid><wfw:comment>http://www.blogjava.net/chenlb/comments/154558.html</wfw:comment><comments>http://www.blogjava.net/chenlb/archive/2007/10/20/154558.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenlb/comments/commentRss/154558.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenlb/services/trackbacks/154558.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 开发项目，今天又难到问题。junit测试写数据到oracle时，出现：<span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">ORA-01461: can bind a LONG value only for insert into a LONG column</span>错误，郁闷，试了几次发现，中文才会有这个问题，而且jsp页面里输入的中文又不会报这个错(前端是struts)。像mysql的话，很有可能是数据库字符编码问题，就怀疑是否为字符编码问题(这种思维不知道会不会很傻)，因为项目所有编码都是utf-8， 看了下oracle是zhs16GBK。然后就建一个gbk的项目来测试，结果还是出现此问题。后来就换用旧系统的classes12.jar驱动测试下，^_^， 不会了，太好了。看了下classes12.jar的版本是<span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">9.0.2.0.0的而且又是classes12.jar不爽，后来看到一个帖子，说：用9的和10.2的没有此问题，我回去看下之前出问题的版本是<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">10.1.0</span></st1:chsdate><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">.2.0，郁闷，用的数据库是<span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">10.2.0.1.0</span>。马上换成<span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">10.2.0.1.0</span>的版本。当初不注意，今天花了我几个小时。我一直以为jdbc是数据库对应的。<br />
<br />
对应的jdbc在oracle安装目录可以找到oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar<br />
<br />
问题总算解决，^_^</span></span> 
<img src ="http://www.blogjava.net/chenlb/aggbug/154558.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenlb/" target="_blank">流浪汗</a> 2007-10-20 21:08 <a href="http://www.blogjava.net/chenlb/archive/2007/10/20/154558.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle jdbc char 字段 PreparedStatement 查询问题</title><link>http://www.blogjava.net/chenlb/archive/2007/10/17/153629.html</link><dc:creator>流浪汗</dc:creator><author>流浪汗</author><pubDate>Wed, 17 Oct 2007 14:22:00 GMT</pubDate><guid>http://www.blogjava.net/chenlb/archive/2007/10/17/153629.html</guid><wfw:comment>http://www.blogjava.net/chenlb/comments/153629.html</wfw:comment><comments>http://www.blogjava.net/chenlb/archive/2007/10/17/153629.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/chenlb/comments/commentRss/153629.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenlb/services/trackbacks/153629.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 昨天出了一个奇怪的问题，hibernate通过实体Id(char(10)型)取得数据，session.find("from TableName where id=?","value");取不到数据，但数据库里是有这个条数据。真奇怪，后来用pl/sql看数据库，鼠标点到Id那时，可以看到内容后面还有一些空格，带着期望与质疑把字段里的值自制过来， session.find("from TableName where id=?","value&nbsp;&nbsp;&nbsp; ");后发现可以。我特别试了下connection.createStatement("select * from table_name where id='value'");则正常取数据，session.find("from TableName where id=?","value");而却找不到数据，然后又试了下 <br />
ptmt = connection.prepareStatement(select * from table_name where id=?");<br />
ptmt.setString(1,"year");<br />
<br />
这样也不行，以是结论是：jdbc驱动PrepareStatement对char字段类型的查找问题，因为hibernate是用PrepareStatement的，自然，hibernate对char对应的属性条件查找出现找不到的情况，<br />
<br />
解决办法是：<br />
1．属性用TRIM函数处理：session.find("from TableName where TRIM(id)=?","value");<br />
2．char改为varchar2类型<br />
<br />
今天试了下mysql，它不会这样的情况，所以结论是：Oracle JDBC PreparedStatement的bug(有可能它故意这样)<br />
<br />
<br />
 <img src ="http://www.blogjava.net/chenlb/aggbug/153629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenlb/" target="_blank">流浪汗</a> 2007-10-17 22:22 <a href="http://www.blogjava.net/chenlb/archive/2007/10/17/153629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle boolean</title><link>http://www.blogjava.net/chenlb/archive/2007/08/13/136438.html</link><dc:creator>流浪汗</dc:creator><author>流浪汗</author><pubDate>Mon, 13 Aug 2007 08:58:00 GMT</pubDate><guid>http://www.blogjava.net/chenlb/archive/2007/08/13/136438.html</guid><wfw:comment>http://www.blogjava.net/chenlb/comments/136438.html</wfw:comment><comments>http://www.blogjava.net/chenlb/archive/2007/08/13/136438.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenlb/comments/commentRss/136438.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenlb/services/trackbacks/136438.html</trackback:ping><description><![CDATA[oracle 没有boolean，mysql用bit(1)而oracle可以用char(1) check(...(0,1))字段，<br>如：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">create</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">table</span><span style="COLOR: #000000">&nbsp;a&nbsp;(&nbsp;a&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">char</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">check</span><span style="COLOR: #000000">&nbsp;(a&nbsp;</span><span style="COLOR: #808080">in</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">0</span><span style="COLOR: #000000">,</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000">)))</span></div>
<br>然后JDBC用getBoolean()可以返回正确的结果。 <br><br>JDBC我用ojdbc14.jar
<img src ="http://www.blogjava.net/chenlb/aggbug/136438.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenlb/" target="_blank">流浪汗</a> 2007-08-13 16:58 <a href="http://www.blogjava.net/chenlb/archive/2007/08/13/136438.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle jdbc url</title><link>http://www.blogjava.net/chenlb/archive/2007/08/13/136409.html</link><dc:creator>流浪汗</dc:creator><author>流浪汗</author><pubDate>Mon, 13 Aug 2007 07:45:00 GMT</pubDate><guid>http://www.blogjava.net/chenlb/archive/2007/08/13/136409.html</guid><wfw:comment>http://www.blogjava.net/chenlb/comments/136409.html</wfw:comment><comments>http://www.blogjava.net/chenlb/archive/2007/08/13/136409.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenlb/comments/commentRss/136409.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenlb/services/trackbacks/136409.html</trackback:ping><description><![CDATA[<br>jdbc:oracle:driver_type:[username/password]@database_specifier<br><br>drive_type有thin和oci<br><br>如:<br>jdbc:oracle:thin:@localhost:1521:my_db 
<img src ="http://www.blogjava.net/chenlb/aggbug/136409.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenlb/" target="_blank">流浪汗</a> 2007-08-13 15:45 <a href="http://www.blogjava.net/chenlb/archive/2007/08/13/136409.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>