不幸的是,我们正在使用Advantage数据库服务器Torture Edition版本8.1。 完成我的项目后,我听说数据库配置为区分大小写。于是我改变了表结构,把所有的Char数据类型都改为CIChar,这是一个不区分大小写的字段。但是,我得到这个错误在执行我的计划:Advantage数据库服务器(ADS)CIChar数据类型ISNULL
Advantage.Data.Provider.AdsException:
Error 7200: AQE Error: State = HY000; NativeError = 2214; [Extended Systems][Advantage SQL Engine]Invalid coercion: Result of expression is an ambiguous character type.
我发现ISNULL(myciChar,“”)是导致此问题,但我不明白,为什么呢? 我该如何解决这个问题? cichar数据类型是否存在其他已知问题?
任何帮助将不胜感激。谢谢。
[更新]
我发现这个错误的原因。有两点需要澄清。
- 数据库版本为8.1,但数据架构师版本为7.1,在本地模式下,架构师引擎版本为7.1。这意味着这是一个v7.1的问题。
- isnull函数中的第二个参数是版本7.1中的默认区分大小写排序规则,而我的列mytext是cichar,这是模糊字符类型。因此,如果有人有同样的问题,它会在V7.1工作与整理声明:在V7.1
作品:
select myid, isnull(mytext, '-' COLLATE ads_default_ci) as mytext from mytable
错误V7.1:
select myid, isnull(mytext, '-') as mytext from mytable
谢谢!看到我的更新。 – ibram 2011-05-16 12:24:31