sql - Oracle SQL 语句 select u'' from dual

标签 sql oracle postgresql unicode

我在 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/

相关文章:

mysql - 显示 2 个外键的值

mysql - 获取 24 小时内回复对话第一条消息的用户

sql - 如何将日期时间值从行转换为列

sql - TO_DATE ('21-09-1989' ,'DD-MM-YY' ) 和 TO_DATE ('21-09-89' ,'DD-MM-YY' ) 有什么区别?

oracle - 哪个 Hadoop 组件可以处理所有的 oracle 查询?

mysql - 当第一个为空时我们如何切换列

mysql - SQL Select 查询收藏夹系统

database - oracle中没有 "Cube"函数怎么写查询?

SQL选择连续运行数据的最大值

postgresql - spring data jpa 中自定义/ native 查询中 IN 子句的更快/高效替代方案