在一个程序中,我使用了一个函数RPAD()来格式化来自DB2数据库的数据。在一个实例中,该值是。以下函数:
RPAD('Ãmber',10,' ')
仅提供9个字符。‘’的ASCII值是195。我不能理解这种行为的原因。有没有人能分享他们的经验。谢谢
发布于 2013-01-09 03:49:37
默认情况下,DB2会认为其长度为2,这可能是因为它计算的是字节数而不是字符数。
values(LENGTH('Ãmber')) 6
您可以在LENGTH和许多其他函数中覆盖它
values(LENGTH('Ãmber', CODEUNITS16)) 5
不幸的是,RPAD不接受这样的参数。我猜这可能是因为添加该函数是为了与Oracle兼容,而不是基于其本身的优点。
您可以将自己的RPAD函数编写为存储过程或UDF,或者如果这是唯一需要它的地方,则只需使用CASE语句来处理它。
https://stackoverflow.com/questions/14214229
相似问题