我的印象是,争论少功能可与空括号函数名后调用,即什么样的一些其他数据库允许下做:Oracle的CURRENT_TIMESTAMP函数真的是一个函数吗?
current_timestamp()
而在甲骨文,我必须写
current_timestamp
对于用户定义的函数,此规则不适用(在11g中)。我可以写两个
my_function
my_function()
我的问题是:是CURRENT_TIMESTAMP
真是名副其实的功能,或者我应该认为它是在Oracle SQL方言(SQL标准兼容)的语言结构/伪列?关于什么时候可以(可选地强制)添加()
以及何时必须忽略它们,有没有任何正式的定义?
背景-信息:
SQL 1992定义:
<current timestamp value function> ::= CURRENT_TIMESTAMP [ <left paren> <timestamp precision> <right paren> ]
德比,HSQLDB,安格尔,Postgres的,SQLite的,SQL服务器的行为,如Oracle,那里没有允许
CURRENT_TIMESTAMP
括号- Sybase SQL Anywhere知道
CURRENT TIMESTAMP
函数(没有括号,没有下划线) - CUBRID,MySQL和Sybase ASE的允许使用
CURRENT_TIMESTAMP()
FWIW select CURRENT_TIMESTAMP()是MSSQL中的语法错误(即只有普通的CURRENT_TIMESTAMP是可接受的) – StuartLC 2012-04-10 07:48:33
@nonnb:是的,你说得对。我会用一些背景信息更新这个问题 – 2012-04-10 07:57:17