Инструмент для sql-запросов по нескольким и разным базам данных?

#sql

#sql

Вопрос:

Кто-нибудь знает простой инструмент SQL, который позволяет мне выполнять запросы и объединения по нескольким и разным базам данных (oracle, sybase, syqlserver, …) с использованием JDBC / ODBC

Что-то подобное вы могли бы сделать с Visual Foxpro

 orclConn = SQLCONNECT({oracle database connection string})
SQLEXECUTE(orclConn, [SELECT ... FROM oracle_table], 'oracle_cursor')
fbConn = SQLCONNECT({firebird database connection string})
SQLEXECUTE(fblConn, [SELECT ... FROM firebird_table], 'firebird_cursor')
SELECT ... FROM oracle_cursor, firebird_cursor ON {join condition}
  

Мне нужно выполнить проверки по разным базам данных, например «доступен ли один ключ клиента в другой системе»

Ответ №1:

Вот руководство о том, как запрашивать несколько баз данных, а также различные методы и опции. Если базы данных не находятся на одном сервере, взгляните на UnityJDBC. Это позволяет вам написать SQL-запрос, который может объединять и сравнивать данные из разных баз данных (MySQL, PostgreSQL, Oracle, Microsoft и т.д.)

Ответ №2:

Вы можете использовать продукт oracle «Database Gateway for ODBC (DG4ODBC)». Я использовал его для прозрачного подключения к базам данных access из Oracle — я не могу вспомнить, делал ли я joins или нет, я в основном использовал его для ETL.

Другая альтернатива, которую я часто использую, — Groovy — http://groovy.codehaus.org — он использует jdbc и невероятно прост в использовании, опять же, несмотря на отсутствие объединений.

hth

Комментарии:

1. с помощью ссылок на БД вы могли бы выполнять объединения, но, к сожалению, шлюз базы данных — serverisde… У меня только ограниченный пользователь… итак, я не могу делать такие вещи на стороне сервера, и наши администраторы инфраструктуры не желают 🙂 а локально установленная база данных Oracle — это своего рода перебор, не так ли? в groovy вы не можете присоединиться, вы могли бы загрузить набор записей в массивы и объединить их… но это тоже своего рода перебор…

2. @christian — это зависит от того, как часто вам нужно это делать — я использовал dg4odbc для проекта миграции. Аналогично, в groovy вы можете выполнить объединение самостоятельно — выберите из oracle_table, где key = var_1, и выберите из firebird_table, где key = var_1, и посмотрите, тот ли ответ, который вы получите, — это зависит от требований вашего приложения.

Ответ №3:

Существует бесплатное средство для выполнения в нескольких базах данных с использованием драйверов ODBC: http://www.geniusconnect.com/articles/DeveloperProducts/2/4/9