引数のない関数は、関数名の後に空の括弧を付けて呼び出すことができるという印象を受けました。つまり、他のデータベースで実行できることです。
current_timestamp()
オラクルでは、私は書く必要があります
current_timestamp
ユーザー定義関数では、このルールは適用されません(11g)。私は両方を書くことができます
my_function
my_function()
私の質問は次のとおりですCURRENT_TIMESTAMP
。本当に真の関数なのか、それともOracle SQL方言の言語構造/疑似列(SQL標準と互換性がある)と見なす必要があるのでしょうか。()
いつ(オプションで、強制的に)追加できるのか、いつそれらを省略しなければならないのかについての正式な定義はありますか?
背景情報:
SQL1992は次のように定義しています。
<current timestamp value function> ::= CURRENT_TIMESTAMP [ <left paren> <timestamp precision> <right paren> ]
Derby、HSQLDB、Ingres、Postgres、SQLite、SQL ServerはOracleのように動作し、括弧は使用できません。
CURRENT_TIMESTAMP
- Sybase SQL Anywhereは
CURRENT TIMESTAMP
関数を認識しています(括弧なし、アンダースコアなし) - CUBRID、MySQL、SybaseASEは使用を許可します
CURRENT_TIMESTAMP()