Oracle时间类型数据为0的bug
应用数据库中记录中date列莫名其妙的出现了几个值为0000-00-00的数据。
更可怕的是如果将这样的记录进行读取成为varchar2后再to_date转换回去就会报错。
问题无从查起,只说一下最终同事搜索到的连接结果:http://www.hellodba.com/Doc/oracle_date_zero_bug.htm
看来的确是oracle的一个bug。
另外需要注意的是,在使用java.sql.Date的valueOf()方法的时候,也是不会进行任何检验的。直接将相应的值转换为Date,因此
如果执行了java.sql.Date.valueOf("0000-01-03");这样的方法,在插入到oracle中后就会变成0000-00-00的数据
哇哈哈,不错不错,继itpub之后又发现一个dba的网站。
相关文档:
1.创建过程
与其它的数据库系统一样,Oracle的存储过程是用PL/SQL语言编写的能完成一定处理功能的存储在数据库字典中的程序。
语法:
create [or replace] procedure procedure_name
[ (argment [ { in| in out }] type,
argment [ { in | out | in out } ] type
{ is | as }
<类型 ......
解决方案:
select session_id from v$locked_object; --首先得到被锁对象的session_id
SELECT sid, serial#, username, osuser from v$session where sid = session_id; --通过上面得到的session_id去取得v$session的sid和serial#,然后对该进程进行终止。
&n ......
select dbtimezone from dual ; --查看数据库时区
select sessiontimezone from dual ; --查看会话时区
1.select u.name || '.' || o.name || '.' || c.name TSLTZcolumn
from sys.obj$ o, sys.col$ c, sys.user$ u
&nbs ......
oracle补丁下载
关键字: oracle
9.2.0.4 = 3095277
9.2.0.5 = 3501955
9.2.0.6 = 3948480
9.2.0.7 = 4163445
9.2.0.8 = 4547809(9i最终)
10.1.0.3 = 3761843
10.1.0.4 = 4163362
10.1.0.5 = 4505133
10.2.0.2 = 4547817
10.2.0.3 = 5337014
10.2.0.4 = 6810189
下 ......