The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Проблемы с добавлением русских записей в PostgreSQL"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Проблемы с добавлением русских записей в PostgreSQL"
Сообщение от Hostik emailИскать по авторуВ закладки(ok) on 01-Ноя-04, 14:05  (MSK)
Скриптом ниже пытаюсь впихнуть в базу данные из файла, в файле находятся данные в виде

"Имя Фамилия отчество    Login     Passwd       otdel"

он мне выдает ошибку DBD::Pg::db do failed: ERROR:  Unicode >= 0x10000 is not supported at /home/support/cgi-bin/inbase.pl line 30.

Причем в файлике имя/фамилия/отчество выглядит так - Ñòîëáóíîâ Ñåðãåé Âëàäèìèðîâè÷

Как я понимаю, он не понимает эти символы, как мне сделать так, чтобы он добавлял правильно, подскажите плизззз.

#!/usr/bin/perl

use DBI;

my $b_login="login";
my $b_pass = "******";
my $database="DB";
my $host="Host";
my $port="5432";

my $dbh=DBI->connect("dbi:Pg:dbname=$database;host=$host;port=$port", $b_login, $b_pass, {$RaiseError => 1})
    or die  $DBI::errstr;
my $result=$dbh->prepare('select * from users');
$result->execute();

open (FILE, "<users12.txt") or die("Cant open data file to read",$!);
my @lines = <FILE>;
close (FILE);

$i=0;

foreach $line (@lines) {
($name, $login, $pass, $otdel) = split("        ", $line);
($f_name, $l_name, $m_name) = split(" ", $name);
print "$login\n";
$i++;
my $ins="INSERT INTO users VALUES ( '$i','$login', '$pass', '$f_name', '$l_name', '$m_name')";
$dbh->do($ins);

}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Проблемы с добавлением русских записей в PostgreSQL"
Сообщение от Vladislav Lazarenko emailИскать по авторуВ закладки on 01-Ноя-04, 15:01  (MSK)
Добрый день. Читайте в документации к СУБД о том, как включить поддержку юникода (UTF-8 кодировка).

Как перл натравливать на юникод - не знаю :(

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Проблемы с добавлением русских записей в PostgreSQL"
Сообщение от Hostik emailИскать по авторуВ закладки(??) on 01-Ноя-04, 18:02  (MSK)
>Добрый день. Читайте в документации к СУБД о том, как включить поддержку
>юникода (UTF-8 кодировка).
>
>Как перл натравливать на юникод - не знаю :(


В СУБД Юникод включен, через pgAdmina я могу легко добавлять записи русские, а через Perl ни в какую, и в pgadmine конструкция типа
copy users from '/home/support/cgi-bin/users12.txt' выдает такую же ошибку, подскажите как быть, записей много, вручную их добавлять так тяжело будет.....

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Проблемы с добавлением русских записей в PostgreSQL"
Сообщение от chip emailИскать по авторуВ закладки(??) on 03-Ноя-04, 08:38  (MSK)
>Скриптом ниже пытаюсь впихнуть в базу данные из файла, в файле находятся
>данные в виде
>
>"Имя Фамилия отчество    Login     Passwd
>      otdel"

я так понимаю задача сводится к импортированию некоторых данных в таблицу базы данных. Я бы для этого воспользовался "стандартными средствами": sh/awk  + pgsql, поставляемый с БД.

cat <имя_файла> | awk '{ printf("INSERT INTO users ...", $1, $2, $3, ...); }' | pgsql

в данном случае представлена идея.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру