powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Экспорт данных в скрипт
25 сообщений из 34, страница 1 из 2
Экспорт данных в скрипт
    #39976541
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДОбрый день. подскажите, как можно из консоли экспортировать результаты select запроса в insert скрипт (как это может делать ibexpert в окошках).
Хотелось бы какое-то решение, использующее isql или что-то типа того..
Нужно для автоматизации кое-какой рутины
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976545
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976557
AltHasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

IBeScript - лучшая тулза для имп/эксп (imho).
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976579
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, так
Код: plsql
1.
2.
3.
4.
with SLCT as (
select 1 as FLD1, 2 as FLD2 from rdb$database)
select 'INSERT INTO MYTABLE ( FIELD1, FIELD2) VALUES (' || SLCT.FLD1 || ',' || SLCT.FLD2 ||');'
from SLCT


Скрипт сохранить как script.sql
Скрипт запускать через isql
Код: powershell
1.
isql -i script.sql -o result.sql -u USERNAME -p USERPASS -role USERROLE source_host/port:source_database_path_or_alias



Результат: в result.txt строка
INSERT INTO MYTABLE ( FIELD1, FIELD2) VALUES (1,2);
Этот скрипт потом выполняется на целевой базе
Код: powershell
1.
isql -i result.sql -u USERNAME -p USERPASS -role USERROLE dest_host/port:dest_database_path_or_alias




Использую под линухом в роботах при синхронизации между базами небольших справочников.
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976604
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
o_v_a, О, спасибо тебе! супер, то что нужно.

Мне как раз под Linux надо.
Пытался подружиться с fbexport, но почему-то не хочет. Ни бинарник ни работает, ни собрать не получается..

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
root@SERV-D:/srv/scripts/fbexport/fbexport-1.90/exe# ./fbexport
-bash: ./fbexport: Нет такого файла или каталога

root@SERV-D:/srv/scripts/fbexport/fbexport-1.90/exe# ls -l
итого 1620
-rw------- 1 serg users 669184 ноя 24  2009 fbcopy.exe
-rwxr-xr-x 1 serg users 366424 ноя 24  2009 fbexport
-rw------- 1 serg users 601600 ноя 24  2009 fbexport.exe
-rw------- 1 serg users  14843 сен 15  2003 mingwm10.dll

root@SERV-D:/srv/scripts/fbexport/fbexport-1.90# make
g++ -pthread -lfbclient ibpp/all_in_one.o fbcopy/args.o fbcopy/fbcopy.o fbcopy/TableDependency.o fbcopy/main.o  -oexe/fbcopy
/usr/bin/ld: cannot find -lfbclient
collect2: error: ld returned 1 exit status
make: *** [Makefile:20: exe/fbcopy] Ошибка 1
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976633
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PATRI0Tсупер, то что нужно.

А после увольнения можешь добавить в экспортируемую таблицу запись со значением "';drop
database;commit;dhn"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976640
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

)) о, мастадонты подъехали
кстати, а как правильно такое делать? Понимаю, что сарказм был в тему, про небезопасность и тд., но что лучше вместо такого решения?
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976647
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PATRI0T,

даже если не учитывать умышленную зловредность, то как минимум это решение не годится при экспорте строковых значений.
Экспорт таблиц с BLOB будет вообще весёлый.

При экспорте в скрипт таблички в 1000000 строк, заливка в БД будет идти оооочень долго.
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976648
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PATRI0Tа как правильно такое делать?

Правильно начинать с постановки задачи , а не способа решения решения. Ибо ответ
может сильно разниться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976656
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

ну, у меня не 1млн, но где-то 20тыс строк.. а как лучше всего это сделать?
у мне подсказали fbexport, но у меня не получилось его завести на Linux..
мне именно и нужно просто синхронизировать пару таблиц между разными базами.
Спасибо.
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976660
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PATRI0T,

Изначально задача такая. Есть мебельная фабрика в глуши с нестабильным интернетом.
На ее территории сервер с базой firebird.
Для клиентов реализовали небольшой личный кабинет, где те могут увидеть статусы своих заказов и прочую небольшую инфу.
ЛК крутится на VPS в облаке, и раньше обращался к серверу фабрики. Но из за проблем с интернетом, решили нужную инфу из базы просто копировать в облако.
Поставил туда firebird, создал пару табличек, ищу способ быстро и просто копировать нужную мне инфу.

Инфа выгружается из главной базы с помощью селектов, и хочу из них сформировать Insert в базу. Изначально мне понравилось как ibexpert мог такое делать - создать скрипт из запроса. Но под Linux решения для работы из консоли я не нашел. Кроме этого - через isql самому формировать инсерты..
Вот такая вот задача и мои мытарства с ней
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976664
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EXTERNAL TABLE
IBPReplicator

Хотя если у тебя на машине даже fbclient отсутствует...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976676
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
не, fbclient стоит. но я не пойму, make почему то его не видит
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
root@SERV-D:~# dpkg -L libfbclient2
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/firebird
/usr/lib/x86_64-linux-gnu/firebird/3.0
/usr/lib/x86_64-linux-gnu/firebird/3.0/firebird.msg
/usr/lib/x86_64-linux-gnu/firebird/3.0/lib
/usr/lib/x86_64-linux-gnu/libfbclient.so.3.0.5
/usr/share
/usr/share/doc
/usr/lib/x86_64-linux-gnu/firebird/3.0/lib/libfbclient.so.2
/usr/lib/x86_64-linux-gnu/libfbclient.so.2
/usr/share/doc/libfbclient2



За IBPreplicator спасибо, но я читаю ман и чет не пойму, как мне с его помощью выгрузить мои данные и залить в другую базу..

*репликацией ни разу не пользовался
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976680
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PATRI0T,
Вот попытка собрать fbexport.. почему он не может найти fbclient? по какому пути он его ищет?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
root@SERV-D:/srv/scripts/fbexport/fbexport-1.90# make --debug exe/fbexport
GNU Make 4.2.1
Эта программа собрана для x86_64-pc-linux-gnu
Copyright (C) 1988-2016 Free Software Foundation, Inc.
Лицензия GPLv3+: GNU GPL версии 3 или новее <http://gnu.org/licenses/gpl.html>
Это свободное программное обеспечение: вы можете свободно изменять его и
распространять. НЕТ НИКАКИХ ГАРАНТИЙ вне пределов, допустимых законом.
Чтение make-файлов...
Обновление make-файлов....
Обновление целей результата...
 Файл «exe/fbexport» не существует.
Необходимо пересобрать цель «exe/fbexport».
g++ -pthread -lfbclient ibpp/all_in_one.o fbexport/ParseArgs.o fbexport/FBExport.o fbexport/cli-main.o -oexe/fbexport
/usr/bin/ld: cannot find -lfbclient
collect2: error: ld returned 1 exit status
make: *** [Makefile:17: exe/fbexport] Ошибка 1


root@SERV-D:/srv/scripts/fbexport/fbexport-1.90# g++ -v -pthread -lfbclient ibpp/all_in_one.o fbexport/ParseArgs.o fbexport/FBExport.o fbexport/cli-main.o -oexe/fbexport
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/8/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 8.3.0-6' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 8.3.0 (Debian 8.3.0-6)
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/8/:/usr/lib/gcc/x86_64-linux-gnu/8/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/8/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/8/:/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/8/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/8/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-pthread' '-o' 'exe/fbexport' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/8/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/8/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/8/lto-wrapper -plugin-opt=-fresolution=/tmp/ccA3i8OS.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o exe/fbexport /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/8/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/8 -L/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/8/../../.. -lfbclient ibpp/all_in_one.o fbexport/ParseArgs.o fbexport/FBExport.o fbexport/cli-main.o -lstdc++ -lm -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/8/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/crtn.o
/usr/bin/ld: cannot find -lfbclient
collect2: error: ld returned 1 exit status
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976687
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PATRI0T/usr/lib/x86_64-linux-gnu/libfbclient.so.3.0.5

А теперь проще:
whereis libfbclient.so
file <результат предыдущей команды>
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976721
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

да, спасибо, так все получилось. Make отработал
Код: sql
1.
ln -s /usr/lib/x86_64-linux-gnu/libfbclient.so.2 /usr/lib/x86_64-linux-gnu/libfbclient.so
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976765
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976771
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
простите.. опять застрял
А как быть с Win1251? fbexport не хочет экспортировать в WIN1251, рисует кракозябры
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
fbexport \
	-Si \
	-A "WIN1251" \
	-H $HOST \
	-D "$DB"  \
	-U $USER \
	-P $PASS \
	-F $EXP_FNAME_ORDERS \
	-Q "$SQL_EXPORT_ORDERS"

Start   : Mon Jul  6 18:04:07 2020
End     : Mon Jul  6 18:04:07 2020
Elapsed : 0 seconds.
1 rows exported to fb-export-orders.sql.

Transaction commited.


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
serg@SERV-D:/srv/scripts$ cat fb-export-orders.sql

INSERT INTO ORDERS 
(ID,ITM_ORDERNUM,STARTDATE,STATUS_DESCRIPTION,TOTALCOST,ORDER_PAY,
DEBT,DATE_PACK,DATE_OUT,BOX_PACKED,BOX_OUT,DRIVER_NAME,FILEPATH_CALC_CLIENT,FILEPATH_CALC_MANAGER,
FILEPATH_BILL,CLIENTNAME) 
values 
(557,'&#65533;&#65533;&#65533;&#65533;&#65533; 29.11 &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;','2019-11-11','&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;',5514,5514,0,'','','','','',NULL,NULL,NULL,'&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;');
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976775
AltHasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
> LANG=ru_RU.cp1251
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976778
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так это не fbexport "рисует кракозябры", а cat. Открой для себя чудной мир линуксовых локалей.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976779
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Спасибо.
не, че-то не то. была LANG=ru_RU.UTF-8, сменил
Код: sql
1.
export LANG=ru_RU.cp1251


и все равно кракозябры. тоже самое и в mcedit и в nano.. где-то я неправильно делаю видимо..
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976782
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dump и смотри что там на самом деле.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976936
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PATRI0T
Dimitry Sibiryakov,

Спасибо.
не, че-то не то. была LANG=ru_RU.UTF-8, сменил
Код: sql
1.
export LANG=ru_RU.cp1251



и все равно кракозябры. тоже самое и в mcedit и в nano.. где-то я неправильно делаю видимо..

Если локаль UTF-8, то и fbexport'у скажите, чтоб при коннекте клиентский набор символов UTF-8 использовал. Тогда в локали с UTF-8 всё увидится нормально.
А ежели в WIN1251 выводится, то тащите результат на виндовую тачку и там открывайте.
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976989
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
o_v_a,
Да, точно, оно. Спасибо огромное.. но я чет опять не могу дальше...
Теперь все по русски выводится, но почему-то не импортируется. Более того, я не могу даже обычный Insert с этими данными сделать,

Версия сервера LI-V3.0.6.33328 Firebird 3.0
Код: sql
1.
2.
3.
4.
5.
6.
Подключаюсь:
isql-fb \
	-u $USER \
	-p $PASS \
	"$HOST:$DB" \
	-ch "UTF8"


Код: sql
1.
2.
3.
4.
5.
6.
CON> INSERT INTO 
ORDERS (ID,ITM_ORDERNUM,STARTDATE,STATUS_DESCRIPTION,TOTALCOST,ORDER_PAY,DEBT,DATE_PACK,DATE_OUT,BOX_PACKED,BOX_OUT,DRIVER_NAME,FILEPATH_CALC_CLIENT,FILEPATH_CALC_MANAGER,FILEPATH_BILL,CLIENTNAME) 
values 
(557,'Хизри 29.11 дозаказ','2019-11-11','Отгружен полностью',5514,5514,0,'','','','','',NULL,NULL,NULL,'Гамзатов Хизри');
Statement failed, SQLSTATE = 22018
conversion error from string ""
...
Рейтинг: 0 / 0
Экспорт данных в скрипт
    #39976997
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PATRI0T,

Пустую строку в дату ну никак не преобразовать
Если конечно DATE_PACK,DATE_OUT это даты
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Экспорт данных в скрипт
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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