使用Shell脚本创建报表时格式化错误

时间:2014-06-04 19:34:45

标签: sql sh

所有我对Shell Scripting都是新手。我正在测试一个示例报告,其中我试图将嵌入在shell脚本中的sql查询的输出假脱机。这是我的代码

#!/bin/sh

ORACLE_ACCESS=hr/hr@xe
# Report file location
FILE_LOCATION=/home/$USER/Documents/loaddata/
#File Name
FILE_NAME=Report_`date +%y%m%d`.csv

sqlplus -s $ORACLE_ACCESS <<EOF 2>log.txt
set serveroutout on
set echo off
set first_name format A120

spool ${FILE_LOCATION}${FILE_NAME}
select first_name,last_name 
from employees;
exit;
EOF

sql_error=$?
if [$sql_error !=0]; then
   echo "Error"
   exit 1
fi

然而,我的格式输出非常糟糕。

以下是样本

FIRST_NAME LAST_NAME


艾伦亚伯 Sundar Ande
Mozhe Atkinson
大卫奥斯汀
赫尔曼贝尔 Shelli Baida
阿米特班达 伊丽莎白贝茨 莎拉贝尔 大卫伯恩斯坦 劳拉比索特

FIRST_NAME LAST_NAME


Harrison Bloom
亚历克西斯公牛 Anthony Cabrio
Gerald Cambrault
Nanette Cambrault
约翰陈 凯莉钟 Karen Colmenares

我的预期输出应该如下所示

First_name Last_name 阿特拉斯莱文 John Doe

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您的预期输出是否

First_name Last_name
Atlas Levine
John Doe

如果是这样,您可以使用set pagesize 10000或类似的东西,以便标题不会重复。如果您想跳过标题,可以将其设置为0您可以参考Formatting output of queries in SQLPlus中的答案和链接以及许多其他类似问题