Что эквивалентно команде spool в MySQL?

Я знаю, что вы используете команду spool, когда пытаетесь записать отчет в файл в Oracle SQLplus.

Что такое эквивалентная команда в MySQL?

Это мой код:

set termout off

spool ${DB_ADMIN_HOME}/data/Datareport.log @ ${DB_ADMIN_HOME}/Scripts.Datavalidation/Datareportscript.sql

spool off
exit

Как я могу написать это в MySQL?


person rambokayambo    schedule 25.06.2012    source источник


Ответы (3)


Если я получу то, что вы просите:

mysql dbname < ${DB_ADMIN_HOME}/Scripts.Datavalidation/Datareportscript.sql \
> ${DB_ADMIN_HOME}/data/Datareport.log 

Используйте перенаправление.

person jim mcnamara    schedule 25.06.2012
comment
так какую команду вы подаете в суд, чтобы спулировать эту информацию в этот каталог - person rambokayambo; 25.06.2012
comment
что в приведенном выше синтаксисе означает команду spool в sqlplus? - person rambokayambo; 25.06.2012
comment
@rambokayambo: Нет, это совсем не эквивалентно команде SQLPlus spool. Это просто способ перенаправить весь вывод, отправляемый в STDOUT. (Команду SQLPlus spool можно использовать несколько раз, чтобы запускать и останавливать запись вывода в любое количество выходных файлов.) - person spencer7593; 26.06.2012

В MySQL вам нужно использовать команды tee и notee:

tee data.txt;
//SQL sentences...
notee;

teedata.txt == spooldata.txt

notee == spool off

person Zeta    schedule 06.09.2017
comment
Спасибо за правильный ответ, я подтверждаю, что это так, и следующая документация MySQL поддерживает это. dev.mysql.com/doc/refman/8.0/en/ mysql-commands.html - person Dan Ortega; 24.04.2020

Для команды Oracle SQLPlus spool нет эквивалента в клиенте командной строки mysql.

Чтобы получить вывод из клиента командной строки mysql, сохраненный в файл, вы можете перенаправить вывод операционной системы в файл, а не на дисплей.

В Unix вы используете символ > в командной строке. (Здесь кажется немного излишним приводить пример того, как перенаправить вывод.)

date > /tmp/foo.txt

Этот символ > в основном говорит оболочке взять то, что написано в дескрипторе STDOUT, и перенаправить его в именованный файл (перезаписывая файл, если он существует), если у вас есть привилегии.


В: используются ли set pagesize и set linesize в mysql, когда вы пытаетесь создать отчет?

A: Нет. Они специфичны для Oracle SQLPlus. Я не знаю никаких эквивалентных функций в клиенте командной строки mysql. Клиент командной строки mysql имеет некоторые мощные функции при работе в интерактивном режиме (например, pager и tee), но в неинтерактивном режиме он не является адекватной заменой SQLPlus.

person spencer7593    schedule 25.06.2012
comment
извините, у меня есть еще один вопрос... используются ли setpagesize и setline size в mysql, когда вы пытаетесь создать отчет? Любая помощь будет оценена - person rambokayambo; 26.06.2012
comment
@rambokayambo: нет, клиент командной строки mysql не имеет эквивалентной функциональности для специфичных для SQLPlus set pagesize и set linesize - person spencer7593; 26.06.2012