我试图在脚本下面运行而不能正常工作。
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;
答案 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;