我们已经在Winform应用程序中从非托管Oracle切换到托管Oracle,除了一个细节外,一切正常。如果我将字符串"≤"
保存到数据库然后尝试再次检索它,我会返回"="
。它存储为nvarchar,我可以看到(通过Toad)它实际上保存为"≤"
。当我们运行非托管数据访问时,我们使用"NLS_LANG = SWEDISH_SWEDEN.WE8MSWIN1252"
,但据我所知,托管驱动程序不支持此功能。托管驱动程序应该使用.NET语言环境,其中的代码页设置为1252
。有谁看过这个,也许找到了解决方案?
答案 0 :(得分:0)
你是对的,ODP.NET托管驱动程序不是NLS_LANG
敏感的。它只对.NET语言环境敏感。
但是,TOAD不使用ODP.NET托管驱动程序,因此您必须正确设置NLS_LANG
。如果您将其设置为.WE8MSWIN1252
,那么您必须在选项中设置 - >文件 - >一般 - >默认编码为ANSI
,分别为。在“保存”对话框中设置ANSI。