freetds 도구 bsqldb에 공급되어야 하는 데이터의 형식은 무엇입니까?

freetds 도구 bsqldb에 공급되어야 하는 데이터의 형식은 무엇입니까?

bsqldb에 데이터를 입력해야 합니다.

다음 명령을 사용하여 변수를 사용하여 bash 스크립트 내에서 bsqldb로 데이터를 전달할 계획입니다.

/usr/bin/bsqldb -S servername -U username -P password <<< ${VARIABLE}

$VARIABLE에는 다음과 같은 방식으로 구성된 데이터가 포함됩니다.

USE databasename
customsqlfunction ('param1','param2','param3','param4','param5')
customsqlfunction ('param1','param2','param3','param4','param5')
customsqlfunction ('param1','param2','param3','param4','param5')
customsqlfunction ('param1','param2','param3','param4','param5')

내가 연결하고 있는 SQL 서버는 MSSQL 2008이고 TDS v 7.1을 실행하는 것 같습니다(이상해 보입니다... 2008은 7.2에 있어야 하지만 tds 도구는 계속해서 프로토콜을 7.1로 다운그레이드한다고 말합니다. 연결했는데... 그건 또 다른 문제입니다)

답변1

나는 이것을 테스트하고 알아 냈습니다.

다음은 bsqldb로 보낼 변수에 포함된 데이터를 구조화하는 적절한 방법입니다.

MyVariable="select @@servername"$'\n'"select @@language"$'\n'"select @@version"

보시다시피 bsqldb로 전송된 각 sql 명령은 별도의 줄에 있어야 합니다. 이것은 \n이 들어오는 곳이며 "개행" 또는 "줄 바꿈" 문자를 나타냅니다. 예를 들어 나머지 "select @@servername"은 실제 SQL 명령입니다.

위에서 $MyVariable을 입력하면 bsqldb에 표시되는 내용은 다음과 같습니다.

select @@servername
select @@language
select @@version

일반적으로 일련의 명령이나 일괄 명령을 실행하려면 GO 명령을 보내야 하지만Freetds 사용자 가이드에서 지적한다6장 Freetd 사용bsqldb로 전송된 명령의 마지막 배치는 실행되기 위해 GO 뒤에 올 필요가 없으며 자동으로 실행됩니다. 또한 tsql과 달리 cmd 목록 끝에서 서버에 대한 연결을 끊는 데 EXIT 명령이 필요하지 않다는 것도 확인했습니다. cmd 목록 끝에 도달하면 자동으로 종료됩니다.

이제 변수를 파악했으므로 다음 구문을 사용하여 bash 스크립트 내에서 bsqldb에 이를 제공할 수 있습니다.

/usr/bin/bsqldb -S servername -U username -P password <<< $MyVariable

즐기다.

관련 정보