使用 sqlplus 执行查询后,bash 脚本不继续

使用 sqlplus 执行查询后,bash 脚本不继续

在这里,我尝试使用 sqlplus 运行普通查询并将结果转储到 CSV 文件中,然后我还有另一项工作要做,我面临的问题是我的脚本在执行 sqlplus 查询后无法继续,它只是查看结果并将输出转储到csv 文件,但它不会继续,我也不知道如何转储数据而不查看结果

#!/bin/bash

cd /dir/test_dir

    sqlplus -s test/test <<EOF
    set colsep ,
    set underline off,
    set headsep off,
    set feedback off,
    set long 99999,
    set linesize 32767,
    set trimspool on,
    spool report(date +%Y-%m-%d).csv
    select a.s, a.d, a.t, a.ww, a.tt from test a;
    exit;
    EOF
cd ../

mkdir test/
.
.
.

答案1

该行EOF包含前导空格不会终止以 开头的此处文档<<EOF。使用时EOF不带前导空格。代替

    EOF

你应该使用

EOF

或者通过重定向更改行sqlplus -s test/test <<-EOF,然后使用制表符缩进。

如果重定向运算符是<<-,则所有前导制表符将从输入行和包含定界符的行中去除。这允许 shell 脚本中的此处文档以自然的方式缩进。

来源

相关内容