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 뒤에 올 필요가 없으며 자동으로 실행됩니다. 또한 cmd 목록 끝에는 tsql과 달리 서버 연결을 끊는 데 EXIT 명령이 필요하지 않다는 것도 확인했습니다. 명령 목록 끝에 도달하면 자동으로 종료됩니다.
이제 변수를 파악했으므로 다음 구문을 사용하여 bash 스크립트에서 bsqldb에 변수를 제공할 수 있습니다.
/usr/bin/bsqldb -S servername -U username -P password <<< $MyVariable
즐기다.