我在 oracle 关键字和保留字列表上搜索了很长时间,但没有结果。
u''
部分是什么意思?
我一直在尝试将 Oracle 数据库对象转换为 PostgreSQL。我遇到了一个语句 Coalesce(some_field,u'')
并且这个语句在 Postgres 中返回一个语法错误
如果没有参数返回任何非空值,Coalesce 应该返回空值。但是当执行 select u'' from dual
时,我可以看到结果为空。我不确定他们为什么将其包含在声明 Coalesce(some_field,u'')
中。
如果 u''
部分根本不存在于语句中,是否可以假设该语句有效?
我遇到的人,完全否认在 oracle 中存在这种用法 u''
谷歌搜索没有结果,因为我不知道这个概念。
注意:
但是当执行 select Coalesce('sampleee text',u'') from dual
我收到以下错误:
ORA-12704: character set mismatch
12704. 00000 - "character set mismatch"
但是当执行 select Coalesce(u'sampleee text',u'') from dual
时,我得到 'sampleee text' 作为结果并且没有错误...
所以我怀疑它与类型转换为 unicode 字符集有关。但我可能错了。
a̶n̶y̶y̶1o̶1a̶C̶l̶e̶e̶e̶s̶/̶T̶o̶m̶(̶T̶H̶H̶E̶O̶A̶A̶A̶C̶C̶L̶C̶L̶C̶L̶MM M 6̶t̶e̶e̶e̶e̶r̶s̶s̶
更新:
似乎 u 是一个前缀,表示该字符串包含 Unicode 字符串... select chr(222),u'\00DE' from dual;
refer this
我很感激任何 PostgreSQL 粉丝向我推荐一个替代解决方案以将其转换为 Postgres
最佳答案
这更像是评论。 @a_horse_with_no_name 是真的,coalesce(some_fild, '')
应该有效。
与 Oracle 不同,Postgres 转换为 implicit .
对于显式转换,使用convert_to(string text, dest_encoding name)
。
引用是 here .
关于sql - Oracle SQL 语句 select u'' from dual,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45997464/