2

我有一个应用程序,它使用几个不同的数据库来收集类似的信息。我通过一个 ODBC 接口来做到这一点,该接口有效地将我的持久层从我的应用程序层中抽象出来,并且它工作得相当好。

事情是这样的:我想要比

SELECT * FROM [TableName]

据我所知,这适用于所有 ODBC 数据库,但是当您开始变得更加具体时,语法和语言的使用就会变得更加成问题。在 MySQL 中有效的查询不一定在 MSSQL 中有效;对 Oracle 运行良好的查询对 PostgreSQL 来说不会那么好。

但是 ODBC 是一个抽象层,所以我认为必须有一个所有符合 ODBC 的数据库系统都支持的语言参考。如果我使用这些语言结构编写查询,我应该期望得到类似的结果,而不管数据库系统如何。

我对吗?有这样的标准吗?如果是这样,我在哪里可以找到语言参考,以便我可以相应地编写查询?我特别感兴趣的东西是这样的结构:

  • 顶部(限制)
  • 中(子串)
  • 铸造(转换)

等感谢您的帮助!

4

1 回答 1

1

对于函数,ODBC 标准在附录 E:标量函数中列出。这包括子字符串。您需要使用语法 {fn func_name(arguments)}。SQL 92 中的强制转换函数在 ODBC 中进行转换(例如,SQL92 中的 CAST(值 AS 类型)在 ODBC 中是 {fn CONVERT (value, type)})。然而,Top 不是一个函数,而是您的数据库可能支持或不支持的 SQL 语法的一部分(例如,Oracle 没有 top)。

于 2012-04-19T08:56:53.493 回答