与unicode一起使用的Postgresql instr

时间:2013-08-08 23:14:10

标签: postgresql-9.2

我尝试在postgresql查询中执行instr,然后意识到它似乎没有instr函数。

找到此网址http://www.postgresql.org/docs/9.1/static/plpgsql-porting.html#PLPGSQL-PORTING-APPENDIX

显示了如何在postgresql的plpgsql语言中实现instr。

但是它似乎不适用于unicode varchar列,因为我收到以下错误:

ERROR:  character with byte sequence 0xe4 0xb9 0xa6 in encoding "UTF8" has no equivalent in encoding "WIN1252"

即使我已经使用过

SET client_encoding = 'UTF8';

在我的客户端上。任何人都知道如何用unicode完成一个instr?

发现position是与instr等效的postgresql,但它给出了与上面相同的错误。

这也行不通:

select start from cnetd where substr(start, 6, 1) <> '/' and position('/' in convert(start, 'UTF8', 'LATIN1')) > 0 limit 90;

ERROR:  function convert(character varying, unknown, unknown) does not exist
LINE 1: ...re substr(start, 6, 1) <> '/' and position('/' in convert(st...
                                                             ^
HINT:  No function matches the given name and argument types. You might need to
add explicit type casts.

1 个答案:

答案 0 :(得分:0)

原来我必须放弃而忘记这样做:

SET client_encoding = 'UTF8';

当我重新开始时。