繁体   English   中英

Oracle SQL语句从双重选择u''

[英]Oracle SQL Statement select u'' from dual

我已经在oracle关键字和保留字的列表上搜索了很长时间,但都无济于事。

u''意思是什么?

我一直在尝试将Oracle数据库对象转换为PostgreSQL。 我遇到了一个语句Coalesce(some_field,u'') ,该语句在Postgres中返回语法错误

如果没有一个参数返回任何非空值,那么Coalcece应该返回null。 但是当select u'' from dual执行select u'' from dual ,我可以看到结果为null。 我不确定为什么他们将其包含在语句Coalesce(some_field,u'')

如果语句中根本不存在u''部分,是否可以安全地假定该语句将起作用?

人我见过,完全否认甲骨文这种用法的存在, u'' google搜索并没有被证明是卓有成效的,怎么我不知道这个概念。

注意:但是在执行时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执行select Coalesce(u'sampleee text',u'') from dual ,我得到了'sampleee text'作为结果,并且没有错误...

因此,我怀疑这与将类型转换为Unicode字符集有关。 但是我可能是错的。

A̶n̶y̶̶O̶r̶a̶c̶l̶e̶r̶s̶/̶T̶O̶M̶(̶T̶h̶e̶O̶r̶a̶c̶l̶e̶M̶a̶s̶t̶e̶r̶s̶)̶̶w̶h̶o̶̶c̶a̶n̶s̶l̶̶

更新:似乎u是前缀,表示字符串包括Unicode字符串... select chr(222),u'\\00DE' from dual; 参考这个

非常感谢任何PostgreSQL的狂热者给我建议另一种解决方案,将其转换为Postgres

这更多的是评论。 如果@a_horse_with_no_name是真实的,则coalesce(some_fild, '')应该起作用。

与Oracle不同,Postgres转换是隐式的

对于显式转换,请使用convert_to(string text, dest_encoding name) 参考在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM