达梦设置兼容日期格式导致查询dba_objects报错:[-6118]:Invalid datetime value.
目前在如下版本中发现这个问题:
SQL> select t.*,id_code from v$version t;
LINEID BANNER ID_CODE
---------- ------------------------- ----------------------------
1 DM Database Server 64 V8 1-1-190-21.03.12-136419-SEC
2 DB Version: 0x7000c 1-1-190-21.03.12-136419-SEC
used time: 0.947(ms). Execute id is 2038103.
在8.1(--05134284044-20230417-187846-20040)版本则没有发现此问题。
在问题版本中设置DATETIME_FMT_MODE参数,该参数表示:
是否兼容 ORACLE 日期格式。0:不兼容;1:兼容(可以在线修改即时生效)
如果设置为1表示兼容Oracle日期格式,则会导致无法查询dba_objects。
现象如下:防偷防爬。
SQL> SP_SET_PARA_VALUE(1,'DATETIME_FMT_MODE',1);
DMSQL executed successfully
used time: 10.275(ms). Execute id is 2038105.
重新进去新会话
SQL> select sf_get_para_value(1,'DATETIME_FMT_MODE');
LINEID SF_GET_PARA_VALUE(1,'DATETIME_FMT_MODE')
---------- ----------------------------------------
1 1
used time: 9.546(ms). Execute id is 2041100.
SQL> select * from dba_objects;
select * from dba_objects;
[-6118]:Invalid datetime value.
used time: 31.346(ms). Execute id is 0.
只能将之设置为0了。。。