为什么 pi() 函数在使用其 JDBC 驱动程序的 Oracle 中不起作用?

Bra*_*uce 1 oracle jdbc

查询 1 适用于 Oracle JDBC 驱动程序,但查询 2 不能。我不明白为什么。拜托,有人可以帮我吗?

查询 1:

SELECT {fn pi()} FROM table;
Run Code Online (Sandbox Code Playgroud)

查询 2:

SELECT pi() FROM table;
Run Code Online (Sandbox Code Playgroud)

a_h*_*ame 5

没有本土的 pi()Oracle 中函数。JDBC 驱动程序将简单地用硬编码值替换它。

如果你跑

SELECT {fn pi()} FROM dual;
Run Code Online (Sandbox Code Playgroud)

司机将发送:

SELECT ( 3.141592653589793238462643383279502884197169399375 ) 
FROM
 dual
Run Code Online (Sandbox Code Playgroud)

到服务器 - 这就是为什么您可以{fn pi()}对 Oracle 数据库使用 ,即使没有这样的功能可用。