|
Import help!
|
|||
---|---|---|---|
#18+
Подскажите как импортировать в базу из внешнего файла ? Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2003, 12:24 |
|
Import help!
|
|||
---|---|---|---|
#18+
Берешь базу, прям в нее импортируешь из файла. Поточнее бы вам вопрос сформулировать.. Что за файл? Что содержит - просто данные, разделенные чем-либо, или набор готовых SQL-команд? Результат выполнения pg_dump на другой машине? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2003, 13:02 |
|
Import help!
|
|||
---|---|---|---|
#18+
Есть файл с данными разделенные пробелами, нужно из файла закинуть в базу 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" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2003, 13:23 |
|
Import help!
|
|||
---|---|---|---|
#18+
Проверь, нет ли среди самих данных пробелов. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2003, 13:50 |
|
Import help!
|
|||
---|---|---|---|
#18+
Пробелов нет, не могу понять откуда начать копать, подскажи или я неправильно понимаю (почему он выгребает целую строку?) может пробел между данными на обозначить по другому? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2003, 14:44 |
|
Import help!
|
|||
---|---|---|---|
#18+
Вообще, если есть возможность, то лучше разделителями делать какой-либо нейтральный символ, редко встречающийся в тексте (данных). Наиболее удобен в качестве разделителя символ конвейра "|". Поле int8, где возникают проблемы, какое по счету в таблице идет? Выложи описание таблицы и кусок файла (вкл. строку до и после этой), где возникают проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2003, 15:09 |
|
Import help!
|
|||
---|---|---|---|
#18+
таблица создана так: 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" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2003, 15:36 |
|
Import help!
|
|||
---|---|---|---|
#18+
Естественно, у тебя это работать не будет 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 - не система искусственного интеллекта, а всего-лишь СУБД, пусть и хорошая :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2003, 15:47 |
|
Import help!
|
|||
---|---|---|---|
#18+
сделал вышло теперь так: таблица 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" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2003, 16:13 |
|
Import help!
|
|||
---|---|---|---|
#18+
А то ошибка есть а вот комманды нет! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2003, 19:24 |
|
Import help!
|
|||
---|---|---|---|
#18+
copy name_table from file delimiters ' '; ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2003, 19:32 |
|
Import help!
|
|||
---|---|---|---|
#18+
Я имел ввиду текст _твоей_ комманды :) Возьми произвольный 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"; ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2003, 21:00 |
|
|
start [/forum/topic.php?fid=53&tid=2008047]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
83ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 333ms |
total: | 504ms |
0 / 0 |