当您尝试将报告写入Oracle SQLplus中的文件时,我知道您使用了spool命令。
MySQL中的等效命令是什么?
这是我的代码:
set termout off
spool ${DB_ADMIN_HOME}/data/Datareport.log @ ${DB_ADMIN_HOME}/Scripts.Datavalidation/Datareportscript.sql
spool off
exit
如何在MySQL中编写它?
答案 0 :(得分:6)
在MySQL中,您需要使用命令 Address
&的 tee
强>:
notee
tee data.txt;
//SQL sentences...
notee;
tee
== data.txt
spool
data.txt
== notee
答案 1 :(得分:0)
如果我得到你的要求:
mysql dbname < ${DB_ADMIN_HOME}/Scripts.Datavalidation/Datareportscript.sql \
> ${DB_ADMIN_HOME}/data/Datareport.log
使用重定向。
答案 2 :(得分:0)
对于Oracle SQLPlus spool
命令,mysql命令行客户端中没有等效命令。
要从保存到文件的mysql命令行客户端获取输出,可以让操作系统将输出重定向到文件,而不是显示。
在Unix中,您在命令行上使用>
符号。 (这里给出一个如何重定向输出的例子似乎有点多余。)
date > /tmp/foo.txt
>
符号基本上是告诉shell将写入STDOUT句柄的内容并将其重定向到指定文件(如果存在则覆盖文件),如果你有权限的话。
问:在mysql中使用set pagesize
和set linesize
?
答:否。这些特定于Oracle SQLPlus。我不知道mysql命令行客户端中的任何等效功能。 mysql命令行客户端在交互模式下运行时具有一些强大的功能(例如pager
和tee
),但在非交互模式下,它不足以替代SQLPlus。