Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 编程 » SQL Anywhere 数据访问 API » SQL Anywhere JDBC 驱动程序

 

使用 JDBC 转义语法

您可以在任何 JDBC 应用程序(包括 Interactive SQL)中使用 JDBC 转义语法。此转义语法允许您调用存储过程而不管您正在使用哪种数据库管理系统。转义语法的一般格式为

{{ keyword parameters }}

在 Interactive SQL 中,大括号必须 成对使用。连续的括号之间不得有空格:"{{" 是允许的,但 "{ {" 是不允许的。同样,您不能在语句中使用新行字符。由于转义语法不是由 Interactive SQL 执行的,所以在存储过程中不能使用转义语法。

您可以使用转义语法访问由 JDBC 驱动程序实现的函数库,这些函数包括数字、字符串、时间、日期和系统函数。

例如,要以与数据库管理系统无关的方式获得当前用户的名称,您将执行以下语句:

SELECT {{ FN USER() }}

可用的函数取决于您正在使用的 JDBC 驱动程序。以下两个表分别列出了 iAnywhere JDBC 驱动程序和 jConnect 驱动程序支持的函数。

iAnywhere JDBC 驱动程序支持的函数
数字函数 字符串函数 系统函数 时间/日期函数
ABS ASCII IFNULL CURDATE
ACOS CHAR USERNAME CURTIME
ASIN CONCAT DAYNAME
ATAN DIFFERENCE DAYOFMONTH
ATAN2 INSERT DAYOFWEEK
CEILING LCASE DAYOFYEAR
COS LEFT HOUR
COT LENGTH MINUTE
DEGREES LOCATE MONTH
EXP LOCATE_2 MONTHNAME
FLOOR LTRIM NOW
LOG REPEAT QUARTER
LOG10 RIGHT SECOND
MOD RTRIM WEEK
PI SOUNDEX YEAR
POWER SPACE
RADIANS SUBSTRING
RAND UCASE
ROUND
SIGN
SIN
SQRT
TAN
TRUNCATE
jConnect 支持的函数
数字函数 字符串函数 系统函数 时间/日期函数
ABS ASCII DATABASE CURDATE
ACOS CHAR IFNULL CURTIME
ASIN CONCAT USER DAYNAME
ATAN DIFFERENCE CONVERT DAYOFMONTH
ATAN2 LCASE DAYOFWEEK
CEILING LENGTH HOUR
COS REPEAT MINUTE
COT RIGHT MONTH
DEGREES SOUNDEX MONTHNAME
EXP SPACE NOW
FLOOR SUBSTRING QUARTER
LOG UCASE SECOND
LOG10 TIMESTAMPADD
PI TIMESTAMPDIFF
POWER YEAR
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
TAN

使用转义语法的语句应该可以用于 SQL Anywhere、Adaptive Server Enterprise、Oracle、SQL Server 或连接到的其它数据库管理系统。

例如,要使用 SQL 转义语法通过 sa_db_info 过程获得数据库属性,您将在 Interactive SQL 中执行以下语句:

{{CALL sa_db_info( 0 ) }}