2

いくつかの異なるデータベースを使用して同様の情報を収集するアプリケーションがあります。これは、アプリケーション層から持続性層を効果的に抽象化する ODBC インターフェースを介して行いますが、これはかなりうまく機能します。

これが問題です:私はもう少し具体的なクエリが欲しいです

SELECT * FROM [TableName]

私が知る限り、これはすべての ODBC データベースで機能しますが、もう少し具体的に理解し始めると、構文と言語の使用法がより問題になります。MySQL で機能するクエリが、MSSQL で機能するとは限りません。Oracle に対して正常に実行されるクエリは、PostgreSQL に対してはうまくいきません。

しかし、ODBC は抽​​象化レイヤーであるため、ODBC 準拠のすべてのデータベース システムがサポートする言語リファレンスが必要であると考えています。これらの言語構造を使用してクエリを作成すると、データベース システムに関係なく、同様の結果が返されるはずです。

私は正しいですか?そのような基準はありますか?もしそうなら、それに応じてクエリを書くことができるように、言語リファレンスはどこにありますか? 私が特に興味を持っているのは、次のような構造です。

  • トップ (リミット)
  • ミッド (SUBSTR)
  • キャスト (変換)

など お世話になりました!

4

1 に答える 1

1

関数については、ODBC 標準が「付録 E: スカラー関数」にリストされています。これには部分文字列が含まれます。構文 {fn func_name(arguments)} を使用する必要があります。SQL 92 のキャスト関数は、ODBC では変換されます (たとえば、SQL92 の CAST (値 AS 型) は、ODBC の {fn CONVERT (値、型)} です)。ただし、Top は関数ではなく、SQL 構文の一部であり、データベースがサポートする場合とサポートしない場合があります (たとえば、Oracle には top がありません)。

于 2012-04-19T08:56:53.493 に答える