问题场景:
线上环境数据库中某些基础数据导入进测试库中,测试功能失效,经过排查发现,测试库导入的数据均以过期,数据无效。
数据库为Oracle11g
客户端工具PLSQL
数据过去字段类型为TIMESTAMP类型,线上数据插入时间为“2099-01-01 00:00:00”
插入后数据库中数据显示为“01-JAN-9912.00.00.000000 AM”
to_char此字段显示也为2099年
至此处为任何问题
将数据刷入测试库中,数据库中显示“01-JAN-9912.00.00.000000 AM”
to_char数据变为1999年01月01日
在此处发生问题
通过网上搜索未发现怎么解决,加了个oracle的qq交流群被一大哥点醒。应该是timestamp类型显示相关问题
最后解决
为本地客户端配置环境变量:
变量名:MLS_TIMESTAMP_FORMAT
变量值:YYYY-MM-DD HH24:MI:SS
PLSQL显示timestamp时对其格式读取从注册表读取,默认格式是啥俺也不清楚,估计就是“01-JAN-9912.00.00.000000 AM”这么个类型滴
配上环境变量后再显示时间戳时时根据自己配置格式显