如何检索Oracle服务器排序规则以设置链接服务器

问题描述:

在这里和网络上搜索后,我终于决定发布问题。我正在运行SQL 2000服务器,并链接了一个Oracle 9i服务器。当我运行查询时,一切正常,并且甚至使用OPENQUERY方法更新和插入Oracle链接服务器(同时使用Microsoft OLE DB驱动程序和Oracle OLE DB驱动程序)。 问题是,为了清理代码,我想在我的查询中使用四个部分名称。我也在查询其他SQL链接服务器时也这样做。如何检索Oracle服务器排序规则以设置链接服务器

但是,当我用四个部分组成的名称对运行的Oracle查询我得到这个错误:(我正在翻译从西班牙语错误消息大概是在英语标识的原始消息不同)

错误:OLE DB“MSDAORA '返回了一个无效的列定义。 错误代码:7318

挖掘一点,我了解到,这可能与nos在链接的服务器属性中设置了正确的排序规则名称有关。

现在......我不是甲骨文的专家,所以我需要找出什么排序规则是我在Oracle中使用的连接模式(应用程序......是的,我知道,我知道......)

所以,简单的问题是......我如何找出Oracle正在使用的排序规则?我可以通过Toad访问Oracle服务器...是否有任何查询可以运行,以便找出答案?

谢谢!

我认为你正在寻找的NLS设置,您可以从这些观点发现:

  • V $ NLS_PARAMETERS - “当前值”
  • NLS_DATABASE_PARAMETERS - 什么是数据库与创建。
  • NLS_INSTANCE_PARAMETERS - 从通过ALTER SYSTEM变化
  • NLS_SESSION_PARAMETERS - 相结合,再加上ALTER SESSION
  • V $参数 - 系统参数,那里有很多的这种改变(包括各种东西)

这里的文档相当缺乏(或者很可能,我找不到合适的文档),但是这应该会让你得到你想要的。

您可能必须以SYSDBA身份登录才能阅读其中一些视图。

+0

嗨...感谢您的回复。 我已经试过这个,但通过蟾蜍访问这些参数...不幸的是,我无法在这里找到我在找什么... 这是一个[截图](http://dl.dropbox.com/u /5654637/imagenes/NLS.png)我得到的参数。你可以看到,唯一可能与我的整理问题有关的两个参数是** NLS_CHARACTERSET:WE8ISO8859P1 **和** NLS_NCHAR_CHARACTERSET:AL16UTF16 ** – jprealini

+0

如果其中任何一个是,我想我需要找到一个相当于我在[选择列表](http://dl.dropbox.com/u/5654637/imagenes/collat​​e.png)中看到的分类名称,当我在SQL中设置链接服务器时 也许我缺少东西......任何其他提示? 谢谢 – jprealini

+0

@ jprealini:好吧,看起来你正在使用Latin1(ISO 8859-1)和你的排序规则([NLS_SORT,NLS_COMP](http://download.oracle.com/docs/cd/B19306_01/server)。 102/b14225/ch3globenv。htm#sthref362))是二元的。不知道如何映射到SQL Server。 – derobert