0

好的,所以我有一个小问题......在我的项目中,我们有一个 Oracle SQL Server。在数据库中,我可以访问其他一些用户表:

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

在 Oracle 中,要访问aTable我使用的表SELECT * FROM otherUser.aTable

现在,我们还有一个 MS SQL CE 数据库,我使用 MS Sync f/w 将 OracleDB 中的数据同步到该数据库。在 CE db 中 - 同步后 - 我得到一张表otherUser.aTable。这听起来不错,因此即使 CE 没有用户概念,它也只是添加了同一个表。

但问题是,当在 CE 上调用与 Oracle 相同的 SQL 查询时,我得到一个The table name is not valid错误。相反,如果我想获取表格的内容,我发现的两种工作方式是otherUser.aTable用 [] 或“”包围。

但是,它们似乎都不适用于 Oracle。[] 似乎是一个非法名称,而 "" 似乎正在搜索一个名为该名称的表(而不是其他用户)。

那么,我为什么不在 Oracle 上使用一种方式,而在 CE 上使用另一种方式呢?好吧,我也使用 NHibernate 作为 ORM,它需要为两个数据库使用相同的表名......

是否有第三种方法来封装适用于 Oracle 中的用户并且只适用于 CE 的表名?或者您还有其他方法可以解决此问题吗?

4

1 回答 1

0

我没有使用 MS SQL 的经验,但这似乎是一个可以通过 Oracle 方面的同义词解决的问题。尝试在 Oracle 中为 otherUser.aTable 创建同义词“otherUser.aTable”。

于 2013-10-03T11:48:07.183 回答