Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / COPY FROM STDIN / 13 сообщений из 13, страница 1 из 1
06.11.2015, 03:26
    #39096035
kolts
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY FROM STDIN
Хочу использовать эту команду. Чтоб не создавать файл на диске читать с одной базы данных и писать сразу в другую хочу использовать stdin. Создал приложение на Qt которое запускает psql но не получается писать в stdin psql - я. Конечно могу создать файл но по сути он не нужен. В php есть функция pg_put_line. Но я с ним не очень знаком. Как поступить?
...
Рейтинг: 0 / 0
06.11.2015, 08:21
    #39096109
p2.
p2.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY FROM STDIN
koltsСоздал приложение на Qt которое запускает psqlприложение, запускающее приложение. да ты затейник!
...
Рейтинг: 0 / 0
06.11.2015, 11:19
    #39096328
Павел Лузанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY FROM STDIN
kolts,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
postgres@hp-pluzanov:~$ psql -d postgres -c "create table t (col int);"
CREATE TABLE
postgres@hp-pluzanov:~$ psql -d postgres -c "insert into t select generate_series(1,1000);"
INSERT 0 1000
postgres@hp-pluzanov:~$ psql -d template1 -c "create table t (col int);"
CREATE TABLE
postgres@hp-pluzanov:~$ psql -d template1 -c "select count(*) from t;"
 count 
-------
     0
(1 row)

postgres@hp-pluzanov:~$ psql -d postgres -c "copy t to stdout;"|psql -d template1 -c "copy t from stdin;"
COPY 1000
postgres@hp-pluzanov:~$ psql -d template1 -c "select count(*) from t;"
 count 
-------
  1000
(1 row)
...
Рейтинг: 0 / 0
06.11.2015, 12:03
    #39096384
kolts
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY FROM STDIN
p2., Помимо запуска psql мое приложение еще читает данные с другой базы которая совсем не постгресовая(вопрос бы не стоял вообще), еще и через ODBC драйвер.
...
Рейтинг: 0 / 0
06.11.2015, 12:52
    #39096476
p2.
p2.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY FROM STDIN
koltsПомимо запуска psql мое приложение еще читает данные с другой базы которая совсем не постгресовая(вопрос бы не стоял вообще), еще и через ODBC драйвер.и зачем такое неравноправие? тем более, когда не умеешь запустить процесс с перенаправлением io.
либо обе базы оперируй стандартными средствами isql ... | psql .... либо обе через sql-интерфейс, если, конечно, тот же odbc тебе по силам.
либо, при наличии прямой связи, воспользуйся возможностями одной из субд для подключения к другой.
...
Рейтинг: 0 / 0
06.11.2015, 13:07
    #39096512
kolts
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY FROM STDIN
Можно поподробнее? Я могу сделать приложение которое будет выкидывать в stdout и соединить с psql. Это имелось ввиду? Я об этом не думал. Я сделал графическое приложение.
авторвозможностями одной из субд для подключения к другой. Одна база TECDOC(transbase) другая моя постгресовая. Как их можно подключить?
...
Рейтинг: 0 / 0
06.11.2015, 14:48
    #39096677
Lonepsycho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY FROM STDIN
koltsХочу использовать эту команду. Чтоб не создавать файл на диске читать с одной базы данных и писать сразу в другую хочу использовать stdin. Создал приложение на Qt которое запускает psql но не получается писать в stdin psql - я. Конечно могу создать файл но по сути он не нужен. В php есть функция pg_put_line. Но я с ним не очень знаком. Как поступить?

а что вам собственно мешает использовать QSqlQuery и QSqlDatabase?
...
Рейтинг: 0 / 0
06.11.2015, 15:40
    #39096754
kolts
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY FROM STDIN
Lonepsycho, Я то использую, но STDIN там не прокатывает, вот и приходится ухищряться.
...
Рейтинг: 0 / 0
06.11.2015, 15:42
    #39096756
kolts
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY FROM STDIN
Я уже некоторые таблицы перегнал обычными запросами. Но таким макаром это займет еще 2 дня.
...
Рейтинг: 0 / 0
06.11.2015, 20:02
    #39096977
Lonepsycho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY FROM STDIN
kolts,

так, наверное понял что вы пытаетесь сделать. было время когда я такие задачи пытался реализовать с помощю C или C++, но теперь, наверное, смотрел бы в сторону FDW . но незнаю какая у вас версия постгреса, может и не подойдёт. другой вариант писать скрипты, как вам предлагали выше, т.е. сами скрипты могут быть созданы у вас в C++/QT и гонятся затем через QProcess.
...
Рейтинг: 0 / 0
06.11.2015, 22:08
    #39097055
Lonepsycho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY FROM STDIN
kolts,

да, вспомнил, в вашем случяе, скорее всего dblink подойдёт лучше чем FDW.
...
Рейтинг: 0 / 0
06.11.2015, 22:21
    #39097062
kolts
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY FROM STDIN
Lonepsycho, Пока делаю с помощью запросов так как по другому не получается. Хотел сделать приложение которое будет посылать команды на стандартный вывод и соединить с psql, но не получилось. Не нравится ему, пишет что не те данные не utf-8.
Пока я искал варианты таблицы потихоньку копировались. С помощью QProcess тоже никак. Получается послать запрос на исполнение и то только с помощью ключа запуска -с. Писать в STDIN никак.
За участие спасибо.
...
Рейтинг: 0 / 0
09.11.2015, 10:33
    #39098045
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY FROM STDIN
Подключайтесь к постгресу через драйвер(библиотеку), а не через клиента psql.

Думаю, что через odbc драйвер не получится выполнить copy, так эта команда не стандартная.

Попробуйте постгресовый драйвер для Qt. (В библиотеках для других ЯП есть спец. функции для COPY.)
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / COPY FROM STDIN / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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