Function 函数删除postgreSQL中的重音符号

Function 函数删除postgreSQL中的重音符号,function,postgresql,struts-1,Function,Postgresql,Struts 1,可能重复: 我正试图消除口音,所以当我选择时,它会忽略它们 例如: SELECT * FROM table WHERE table.id ILIKE 'Jose'; 它返回: José Jose Jósé Jóse 或者类似的 我发现这些函数不起作用,我想可能是因为我使用的是Struts 1.X,请检查它们,告诉我哪里错了,或者我应该使用什么其他函数 第一个功能 第二功能 在NetBeans中运行文件时,这两个函数都会生成以下错误: ERROR: unterminated dollar-q

可能重复:

我正试图消除口音,所以当我选择时,它会忽略它们

例如:

SELECT * FROM table WHERE
table.id ILIKE 'Jose';
它返回:

José
Jose
Jósé
Jóse
或者类似的

我发现这些函数不起作用,我想可能是因为我使用的是Struts 1.X,请检查它们,告诉我哪里错了,或者我应该使用什么其他函数

第一个功能

第二功能

在NetBeans中运行文件时,这两个函数都会生成以下错误:

ERROR: unterminated dollar-quoted string at or near "*the string that starts the function*"
使用PostgreSQL附带的模块

somedb=# CREATE EXTENSION unaccent;
CREATE EXTENSION
somedb=# SELECT unaccent('Hôtel');
 unaccent
----------
 Hotel

somedb=# SELECT * FROM table WHERE lower(unaccent(table.id)) = lower('Jose');
并通过生成无重音、小写的索引来加快速度:

somedb=# CREATE INDEX CONCURRENTLY ON table (lower(unaccent(id)));

索引创建不起作用,因为uncent不是不可变的。
somedb=# CREATE EXTENSION unaccent;
CREATE EXTENSION
somedb=# SELECT unaccent('Hôtel');
 unaccent
----------
 Hotel

somedb=# SELECT * FROM table WHERE lower(unaccent(table.id)) = lower('Jose');
somedb=# CREATE INDEX CONCURRENTLY ON table (lower(unaccent(id)));