gpt4 book ai didi

在 postgreSQL 中删除重音的函数

转载 作者:行者123 更新时间:2023-11-29 11:08:19 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Does PostgreSQL support “accent insensitive” collations?

我正在尝试删除重音符号,因此当我进行 SELECT 时它会忽略它们。

例子:

SELECT * FROM table WHERE
table.id ILIKE 'Jose';

它返回:

José
Jose
Jósé
Jóse

或类似的东西。

我找到了这些功能,但它们不起作用,我想这可能是我使用的 Struts 1.X 的事实,请检查它们并告诉我哪里错了或者我应该使用什么其他功能.

第一个函数

CREATE OR REPLACE FUNCTION unaccent_string(text) RETURNS text AS $$
DECLARE
input_string text := $1;
BEGIN

input_string := translate(input_string, 'âãäåāăąÁÂÃÄÅĀĂĄ', 'aaaaaaaaaaaaaaa');
input_string := translate(input_string, 'èééêëēĕėęěĒĔĖĘĚ', 'eeeeeeeeeeeeeee');
input_string := translate(input_string, 'ìíîïìĩīĭÌÍÎÏÌĨĪĬ', 'iiiiiiiiiiiiiiii');
input_string := translate(input_string, 'óôõöōŏőÒÓÔÕÖŌŎŐ', 'ooooooooooooooo');
input_string := translate(input_string, 'ùúûüũūŭůÙÚÛÜŨŪŬŮ', 'uuuuuuuuuuuuuuuu');

return input_string;
END;
$$ LANGUAGE plpgql;

第二个功能

CREATE OR REPLACE FUNCTION norm_text_latin(character varying) 
RETURNS character varying AS
$BODY$
declare
p_str alias for $1;
v_str varchar;
begin
select translate(p_str, 'ÀÁÂÃÄÅ', 'AAAAAA') into v_str;
select translate(v_str, 'ÉÈËÊ', 'EEEE') into v_str;
select translate(v_str, 'ÌÍÎÏ', 'IIII') into v_str;
select translate(v_str, 'ÌÍÎÏ', 'IIII') into v_str;
select translate(v_str, 'ÒÓÔÕÖ', 'OOOOO') into v_str;
select translate(v_str, 'ÙÚÛÜ', 'UUUU') into v_str;
select translate(v_str, 'àáâãäå', 'aaaaaa') into v_str;
select translate(v_str, 'èéêë', 'eeee') into v_str;
select translate(v_str, 'ìíîï', 'iiii') into v_str;
select translate(v_str, 'òóôõö', 'ooooo') into v_str;
select translate(v_str, 'ùúûü', 'uuuu') into v_str;
select translate(v_str, 'Çç', 'Cc') into v_str;
return v_str;
end;$BODY$
LANGUAGE 'plpgsql' VOLATILE;

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

ERROR: unterminated dollar-quoted string at or near "*the string that starts the function*"

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com