如何在shell脚本中的oracle查询中连接一个字符串

时间:2015-09-18 15:09:01

标签: oracle unix

我试图在脚本下面运行而不能正常工作。

datafile_name="/u02/oraarch/test300.dbf"
FINAL=1
sqlplus -s "/as sysdba" <<END
alter database datafile '$datafile_name' resize '$FINAL'M;
END


expected output:-
alter database datafile '/u02/oraarch/test300.dbf' resize 10M;

1 个答案:

答案 0 :(得分:2)

大小值中不能包含字符串。

'$FINAL'M字符序列包含刻度线;因此,它将被视为字符串而不是大小值。

'$FINAL'M;

相反,你需要这样的东西:

rm /tmp/resize.sql
export datafile_name="/u02/oraarch/test300.dbf"
export size="300M"
echo "alter database datafile '$datafile_name' resize $size;" > /tmp/resize.sql
echo "quit" >> /tmp/resize.sql
sqlplus -s "/as sysdba" @/tmp/resize.sql

您也可以在现有脚本中尝试此操作 - 但不要在大小值中添加刻度:

alter database datafile '$datafile_name' resize ${FINAL}M;