データベースにいくつかのクエリを格納するテーブルがあり、sqlcmdを使用してクエリを取得しようとしています。これにより、select * from abcが "select from abc"に置き換えられます。
この問題を克服する方法は?
編集する:
Max_Values=5
n=1
while [ $n -le $Max_Values ]
do
Sql_Qry="set nocount on;Select Query from dbo.abc With(nolock) Where RowID=$n"
Query=`/opt/mssql-tools/bin/sqlcmd -S Server_name -U UserID -P Password -d database -Q "$Sql_Qry" -h -1`
echo $Query
n=$(( n+1 ))
done
予想出力:
Select * from Int.Table1
実際の出力:
Select Script1.txt script2.sh script3.sh from Int.Table1
script1、script2、およびscript3は現在ディレクトリにあるファイルです。
答え1
印刷したい変数を二重引用符で囲むことで問題は解決します。つまり
echo "$Query"