Oracle Apex中SELECT sysdate FROM dual返回函数名而非当前日期问题
Oracle Apex SQL Commands执行SYSDATE仅返回函数名的原因
- 自定义对象覆盖系统内置函数:如果当前用户下创建了名为
SYSDATE的函数、视图、同义词或表,Oracle会优先解析这个自定义对象,而不是系统自带的SYSDATE函数。比如手动创建了一个返回固定字符串'SYSDATE'的自定义函数,执行查询时就会返回这个字符串而非系统日期。 - NLS_DATE_FORMAT参数配置错误:如果当前会话的
NLS_DATE_FORMAT被设置成了固定字符串'SYSDATE',SYSDATE的返回值会被强制格式化为这个字符串。可以执行SELECT value FROM nls_session_parameters WHERE parameter = 'NLS_DATE_FORMAT';查看当前参数配置。 - 查询语句存在隐性语法问题:如果输入查询时不小心给
SYSDATE加了双引号(比如SELECT "SYSDATE" FROM dual;),而恰好存在对应名称的数据库对象(比如自定义视图的列),就会返回字符串值;若没有对应对象则会报错,但个别场景下可能显示函数名。 - Apex模块显示异常:极少数情况是Apex的SQL Commands模块出现缓存或渲染bug,导致结果显示错误。可以尝试刷新页面、重新执行查询,或者用SQL*Plus等其他工具验证结果,排除Apex本身的问题。
内容的提问来源于stack exchange,提问作者nam
相关产品推荐
相关产品推荐

