sqlplus 删除多余的空格
sqlplus removes extra whitespace
我有一个下面的测试 ksh 文件
#!/bin/ksh
(
sqlplus -s << EOF
${DATABASE}
SET SERVEROUTPUT ON;
SET HEAD OFF
SET FEED OFF
SET DEFINE OFF
SET PAGES 0
SET COLSEP ";"
WHENEVER SQLERROR EXIT SQL.SQLCODE
SELECT 'aaaa vvvv cccc' FROM DUAL;
EXIT
EOF
) | while read sql_out
do
echo ${sql_out}
done
预期输出是
aaaa vvvv cccc
但是观察到的输出是
aaaa vvvv cccc
Sqlplus 正在从我的输出中去除多余的空格,我想保留它。
它不是 SQL*加上这样做,它是 shell。您需要 enclose your variable in quotes:
To preserve whitespace within a string or in a variable, use quoting.
所以不用
echo ${sql_out}
执行以下任一操作:
echo "${sql_out}"
printf "%s\n" "${sql_out}"
然后输出将是:
aaaa vvvv cccc
我有一个下面的测试 ksh 文件
#!/bin/ksh
(
sqlplus -s << EOF
${DATABASE}
SET SERVEROUTPUT ON;
SET HEAD OFF
SET FEED OFF
SET DEFINE OFF
SET PAGES 0
SET COLSEP ";"
WHENEVER SQLERROR EXIT SQL.SQLCODE
SELECT 'aaaa vvvv cccc' FROM DUAL;
EXIT
EOF
) | while read sql_out
do
echo ${sql_out}
done
预期输出是
aaaa vvvv cccc
但是观察到的输出是
aaaa vvvv cccc
Sqlplus 正在从我的输出中去除多余的空格,我想保留它。
它不是 SQL*加上这样做,它是 shell。您需要 enclose your variable in quotes:
To preserve whitespace within a string or in a variable, use quoting.
所以不用
echo ${sql_out}
执行以下任一操作:
echo "${sql_out}"
printf "%s\n" "${sql_out}"
然后输出将是:
aaaa vvvv cccc