Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 21:13 03.07.25 
Компютри и Интернет
   >> Бази данни
*Кратък преглед

Тема cyrilic Upper function  
АвторUSER (Нерегистриран)
Публикувано05.07.05 21:28



Има ли някой написана Upper функция която да работи с кирилица и да е за Postgresql а така също и lower.



Тема Re: cyrilic Upper functionнови [re: USER]  
Автор phpGuruАдминистратор (член)
Публикувано06.07.05 13:34



стандартните функции upper/lower си работят, ето:

test=# select upper('абвцчшщъьюя');
upper
-------------
АБВЦЧШЩЪЬЮЯ
(1 row)

test=# select lower('АБВЦЧШЩЪЬЮЯ');
lower
-------------
абвцчшщъьюя
(1 row)


но, има уловка - настройките :-))
за съжаление при pg-то този вид настройки се прави още в началото на инициализирането на клъстер, а именно при initdb-то

ако може да пресъздадеш клъстера, решението е ясно :-)
initdb --locale bg_BG.UTF8
например



Тема Re: cyrilic Upper functionнови [re: phpGuru]  
АвторUSER (Нерегистриран)
Публикувано06.07.05 13:51



Axaaaaaa......... Значи от там била цялата работа. Благодаря ти. Ще взема да си преоткрия клъстера. А пък аз докато виках неволята взех ,че си написах и една функция за първо време. Ако на някой му потрябва.....

CREATE OR REPLACE FUNCTION "cyrupper" (varchar) RETURNS varchar AS'
DECLARE
string ALIAS FOR $1;
temp_str varchar;
length integer;
temp_char varchar;

BEGIN
temp_str='''';
length:=char_length(string);
FOR i IN 1..length LOOP
temp_char:=substr(string,i,1);
IF ascii(temp_char)>=223 then
temp_char:=chr(ascii(temp_char)-32);
else
temp_char=upper(temp_char);
end if;
temp_str:=temp_str||temp_char;
END LOOP;
RETURN temp_str;
END;
'LANGUAGE 'plpgsql';



Тема Re: cyrilic Upper functionнови [re: phpGuru]  
Авторnull (Нерегистриран)
Публикувано28.02.06 16:44



Добре,
ама ако вече имам създадена база и тя е с няколко стотин хиляди реда вече.
Как трябва да се процедира тогава?



Тема Re: cyrilic Upper functionнови [re: null]  
Автор phpGuruАдминистратор (ентусиаст)
Публикувано28.02.06 19:55



за съжаление няма автоамтичен начин ....

варианта е dump -> iconv -> recreate cluster -> reload data



Тема Re: cyrilic Upper functionнови [re: phpGuru]  
Автор phpGuruАдминистратор (ентусиаст)
Публикувано28.02.06 19:59



забравих и за варианта при който се стартира нов клъстер с правилните параметри и може да се пробва вариант нещо от сорта

pg_dump -h old_host | iconv -f windows-1251 -t UTF8 | psql -h new_host

(не гарантирам, че ще стане, ама не виждам и голяма причина с малки модификации да не стане)



Тема Re: cyrilic Upper functionнови [re: phpGuru]  
Авторmutant (Нерегистриран)
Публикувано01.03.06 10:24



точно така е както казва гуруто правих тази операция онзи ден базата беше UTF-8 но нямаше никакво сетнато локале съсзадох нов клъстър със bg_BG.utf8 и заспа :> не всичко заспа де тука девелопера каза нещо от рода на "е регулярните изрази пак не работи lower и upper" но нас и така ни устройваше :> то май на сайта на постгрето си пише че там не работи.
ако настоящата база е utf-8 няма нужда от iconv



Тема Re: cyrilic Upper functionнови [re: mutant]  
Авторnull (Нерегистриран)
Публикувано01.03.06 14:08



Базата беше UTF8
и сега работи - успях да я прехвърля без сътресения
но пак излезе въпроса - как да проработят UPPER и LOWER



Тема Re: cyrilic Upper functionнови [re: null]  
Авторnull (Нерегистриран)
Публикувано01.03.06 16:12



Оказа се, че upper и lower работят
Не съм бил имал подходящия локал инсталиран
Проработи по следния начин
bglinux - слага локала bg_bg.UTF8
pg_dump - базата ми е в UTF8
initbg --locale bg_BG.UTF8
createdb
pg_restore
Довечера ще го приложа на продакшън базата.
Стискайте палци :)




*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.