데이터베이스에 몇 개의 쿼리를 저장하는 테이블이 있고 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"