2013-10-03 2 views
0

Итак, у меня есть небольшая проблема ... В моем проекте у нас есть Oracle SQL Server. В базе данных у меня есть доступ к некоторым из Иных таблиц пользователей:Oracle Database Пользователи в синхронизированной базе данных

Tables: 
    |-bla 
    |-bla 
Users: 
    |-otherUser (let's just call him that) 
     |-Tables: 
      |-aTable 

В Oracle, чтобы получить доступ к aTable таблице я использую SELECT * FROM otherUser.aTable

Теперь у нас есть база данных MS SQL CE, к которому я синхронизации данные из OracleDB с использованием MS Sync f/w. И в CE db - после синхронизации - я получаю таблицу otherUser.aTable. Это звучит хорошо, поэтому, даже если CE не имеет концепции User, он просто добавляет одну и ту же таблицу.

Но проблема заключается в том, что при вызове того же SQL-запроса в CE, что и в Oracle, я получаю Недопустимое имя таблицы. Вместо этого, если я хочу получить содержимое таблицы, два способа, которые я нашел для работы, окружают otherUser.aTable либо [], либо «».

Однако ни один из них, похоже, не работает с Oracle. [] Кажется незаконным именем, и «похоже» ищет таблицу, называемую именно этим (не другим пользователем).

Так почему бы мне просто не использовать один путь на Oracle, а другой на CE? ну, я также использую NHibernate как ORM, и для него есть одно и то же имя таблицы для обеих баз данных ...

Есть ли третий способ инкапсулировать имя таблицы, которая работает с пользователями в Oracle, и работает только в CE? или у вас есть другие способы устранить эту проблему?

ответ

0

У меня нет опыта работы с MS SQL, но это похоже на проблему, которая может быть решена с помощью синонимов на стороне Oracle. Попробуйте создать синоним «otherUser.aTable» для otherUser.aTable в Oracle.

Смежные вопросы