Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Import help! / 12 сообщений из 12, страница 1 из 1
14.11.2003, 12:24
    #32324276
Antava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import help!
Подскажите как импортировать в базу из внешнего файла ?
Заранее спасибо!
...
Рейтинг: 0 / 0
14.11.2003, 13:02
    #32324346
Konrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import help!
Берешь базу, прям в нее импортируешь из файла.

Поточнее бы вам вопрос сформулировать..
Что за файл? Что содержит - просто данные, разделенные чем-либо, или набор готовых SQL-команд? Результат выполнения pg_dump на другой машине?
...
Рейтинг: 0 / 0
14.11.2003, 13:23
    #32324396
Antava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import help!
Есть файл с данными разделенные пробелами, нужно из файла закинуть в базу
copy 'name_table' from 'file' delimiters ' '; на это выдает ошибку:

ERROR: copy: line 1, Bad int8 external representation
"1068654573 6 x.x.x.x x 205.188.7.139 x 1 46 eth0"
...
Рейтинг: 0 / 0
14.11.2003, 13:50
    #32324455
Konrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import help!
Проверь, нет ли среди самих данных пробелов.
...
Рейтинг: 0 / 0
14.11.2003, 14:44
    #32324555
Antava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import help!
Пробелов нет,
не могу понять откуда начать копать,
подскажи или я неправильно понимаю (почему он выгребает целую строку?)
может пробел между данными на обозначить по другому?
...
Рейтинг: 0 / 0
14.11.2003, 15:09
    #32324612
Konrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import help!
Вообще, если есть возможность, то лучше разделителями делать какой-либо нейтральный символ, редко встречающийся в тексте (данных). Наиболее удобен в качестве разделителя символ конвейра "|".

Поле int8, где возникают проблемы, какое по счету в таблице идет? Выложи описание таблицы и кусок файла (вкл. строку до и после этой), где возникают проблемы.
...
Рейтинг: 0 / 0
14.11.2003, 15:36
    #32324687
Antava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import help!
таблица создана так:
CREATE TABLE "accounting" (
"seq" BIGSERIAL,
"hostname" VARCHAR(50),
"timestamp" INTEGER,
"protocol" INTEGER,
"src_ip" VARCHAR(15),
"src_port" INTEGER,
"dst_ip" VARCHAR(15),
"dst_port" INTEGER,
"packets" INTEGER,
"bytes" INTEGER,
"in_interface" VARCHAR(10),
"out_interface" VARCHAR(10),
PRIMARY KEY("seq")
) WITHOUT OIDS;

данные из файла:

1068654573 6 192.168.10.73 39576 205.188.7.139 5190 1 46 eth0
1068654583 6 205.188.7.139 5190 192.168.10.73 39576 1 40 eth0

ошибка :

ERROR: copy: line 1, Bad int8 external representation "1068654573 6 192.168.10.73 39576 205.188.7.139 5190 1 46 eth0"
...
Рейтинг: 0 / 0
14.11.2003, 15:47
    #32324727
Konrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import help!
Естественно, у тебя это работать не будет

1068654573 -> "seq" BIGSERIAL,
6-> "hostname" VARCHAR(50),
192.168.10.73 -> "timestamp" INTEGER,
39576 -> "protocol" INTEGER,
205.188.7.139 -> "src_ip" VARCHAR(15),
5190 -> "src_port" INTEGER,
1 -> "dst_ip" VARCHAR(15),
46 -> "dst_port" INTEGER,
eth0 -> "packets" INTEGER,
"bytes" INTEGER,
"in_interface" VARCHAR(10),
"out_interface" VARCHAR(10),

Теперь видно? Либо указывай набор атрибутов для таблицы (благо, в версиях 7.3. и позже это делать можно )))), либо приведи данные в файле в порядок, чтобы они соответствовали структуре таблицы. PostgreSQL - не система искусственного интеллекта, а всего-лишь СУБД, пусть и хорошая :)
...
Рейтинг: 0 / 0
14.11.2003, 16:13
    #32324794
Antava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import help!
сделал вышло теперь так:
таблица CREATE TABLE "acct" (
"timestamp" INTEGER, -> 1068654573
"protocol" INTEGER, -> 6
"src_ip" VARCHAR(15), -> 192.168.10.73
"src_port" INTEGER, -> 39576
"dst_ip" VARCHAR(15), -> 205.188.7.139
"dst_port" INTEGER, -> 5190
"packets" INTEGER, -> 1
"bytes" INTEGER, -> 46
"ip_interface" INTEGER, ->
"out_interface" INTEGER -> eth0
) WITHOUT OIDS;

файл
1068654573 6 192.168.10.73 39576 205.188.7.139 5190 1 46 eth0
1068654583 6 205.188.7.139 5190 192.168.10.73 39576 1 40 eth0


ошибка

ERROR: copy: line 1, pg_atoi: error in "1068654573 6 192.168.10.73 39576 205.188.7.139 5190 146 eth0": can't parse " 6 192.168.10.73 39576 205.188.7.139 5190 1 46 eth0"
...
Рейтинг: 0 / 0
14.11.2003, 19:24
    #32325106
Shweik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import help!
А то ошибка есть а вот комманды нет!
...
Рейтинг: 0 / 0
14.11.2003, 19:32
    #32325112
Antava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import help!
copy name_table from file delimiters ' ';
...
Рейтинг: 0 / 0
14.11.2003, 21:00
    #32325160
Shweik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Import help!
Я имел ввиду текст _твоей_ комманды :)
Возьми произвольный hex-редактор и внимательно посмотри что у тебя
там в этом файле. Например _лишние_ пробелы.
Вообще я в сложных случаях когда формат на входе "плавает" или возможны опечатки пропускаю через самопальный перловый фильтр и раставляю
нейтральные разделители.
Что же касается твоих данных - вопервых обрати внимание что
раз я разделителем выбрал ' ' значит их на строку столько сколько указано колонок. Stdin - тотже файл и поэтому ввод данных начинается сразу после";" без пробелов и прочих табуляций 8) ! Вощем смотри, пробуй и разбирайся.
drop table "accounting";
CREATE TABLE "accounting" (
"seq" BIGSERIAL,
"hostname" VARCHAR(50),
"timest" INTEGER,
"protocol" INTEGER,
"src_ip" VARCHAR(15),
"src_port" INTEGER,
"dst_ip" VARCHAR(25),
"dst_port" INTEGER,
"packets" INTEGER,
"bytes" INTEGER,
"in_interface" VARCHAR(10),
"out_interface" VARCHAR(10),
PRIMARY KEY("seq")
) WITHOUT OIDS;
copy "accounting"("timest","src_ip","src_port",
"dst_ip","dst_port","packets","bytes","in_interface" ) from stdin DELIMITER ' ';
1068654583 205.188.7.139 5190 192.168.10.73 39576 1 40 eth0
1068654513 215.188.7.139 5190 192.168.10.73 39534 1 50 eth0\.

select * from "accounting";
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Import help! / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]