Sql “如何插入日期”;00000/00/00:00:00”;(dump=Typ=12 Len=7:1,1,1,1,1,1)在表格中?
我对一个旧的应用程序有问题。我试图用值Sql “如何插入日期”;00000/00/00:00:00”;(dump=Typ=12 Len=7:1,1,1,1,1,1)在表格中?,sql,oracle,Sql,Oracle,我对一个旧的应用程序有问题。我试图用值01-JAN-99更新日期字段,但我的应用程序立即崩溃。 事实上,当我使用oracle函数dump()获取值时,我在表中看到了一个奇怪的日期值: Typ=12 Len=7:1,1,1,1,1,1,1在我用to_char(t$demi,'SYYYY/MM/DD HH24:MI:SS')获取值之后00000/00/00:00:00 select t$demi ,dump (t$demi) ,to_char(t$demi, 'SYYYY/MM/DD HH
01-JAN-99
更新日期字段,但我的应用程序立即崩溃。
事实上,当我使用oracle函数dump()
获取值时,我在表中看到了一个奇怪的日期值:
Typ=12 Len=7:1,1,1,1,1,1,1
在我用to_char(t$demi,'SYYYY/MM/DD HH24:MI:SS')获取值之后
00000/00/00:00:00
select
t$demi
,dump (t$demi)
,to_char(t$demi, 'SYYYY/MM/DD HH24:MI:SS')
from
T;
结果:
01-JAN-99 Typ=12 Len=7: 199,199,1,1,1,1,1 9999/01/01 00:00:00
01-JAN-99 Typ=12 Len=7: 1,1,1,1,1,1,1 00000/00/00 00:00:00
如何在现有表中插入或更新此类值?谢谢您的帖子
我用dbms_stats转换了转储。convert_raw_值('01010101',d)
我用原始值更新了表
create table t42(dt date);
declare
d date;
begin
dbms_stats.convert_raw_value('01010101010101', d);
insert into t42 (dt) values (d);
end;
/
select
dt,
dump(dt),
to_char(dt, 'SYYYY/MM/DD HH24:MI:SS')
from t42
select * from t42
结果
9999-01-01 00:00:00 Typ=12 Len=7: 1,1,1,1,1,1,1 00000/00/00 00:00:00
非常奇怪,因为值小于当前日期…
9999小于2019强>
select
dt,
dump(dt),
to_char(dt, 'SYYYY/MM/DD HH24:MI:SS')
from t42
where dt < SYSDATE ;
9999-01-01 00:00:00 Typ=12 Len=7: 1,1,1,1,1,1,1 00000/00/00 00:00:00
选择
dt,
转储(dt),
至字符(dt,‘SYYYY/MM/DD HH24:MI:SS’)
从t42开始
其中dt
Related:请发布崩溃的[SQL]UPDATE
语句。如果你收到了一条错误信息,那么也发布它。请参考,Oracle的DATE
数据类型使用7(七)个字节的存储空间。这个旧的Oracle 9i包含一个示例和一个解释。