이 항목이 실제로 저를 괴롭히기 시작합니다. 우분투 12.04를 실행하고있어 MS SQL 서버 2012 먼저 내 설치에 대한 몇 가지 정보를 제공 할 수 있습니다 실행 상자에 연결을 시도하고있다 :FreeTDS 및 UnixODBC 사용. 연결할 수는 있지만 isql 또는 RODBC의 SQL 명령을 실행할 수 없습니다.
내 freetds.conf : 설정 한 후
[EXNAME]
host = IP
port = 1433
tds version = 7.0
client charset = UTF-8
...
using default charset "UTF-8"
1>
그래서 내 FreeTDS를 설치 괜찮 작업 것으로 보인다 내 freetds.conf 내가 먼저 예상 (및 환영) 프롬프트를 생산 TSQL 내 연결을 테스트합니다. 다음으로 설정 ODBC.INI 및 obdcinst.ini :
ODBC.INI :
[EXNAME]
Driver = FreeTDS
ServerName = EXNAME
UID = Me
PWD = Pass
ODBCINST.INI :
[FreeTDS]
Description = FreeTDS Driver
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
UsageCount = 1
내가 확인 OSQL을 실행이 설정에 따라. 예를 들어 ondcb.ini의 드라이버와 올바른 단락을 찾을 수있는 모든 예상 응답을 출력합니다
[EXNAME] found in /etc/odbc.ini
found this section:
[EXNAME]
Driver = FreeTDS
ServerName = EXNAME
UID = Me
PWD = Pass
looking for driver for DSN [EXNAME] in /etc/odbc.ini
found driver line: " Driver = FreeTDS"
을 등등까지 : OSQL이 될 것 같지 않습니다
DSN [EXNAME] has servername "" (from /etc/odbc.ini)
odbc.ini에서 서버 이름을 감지합니다.
이 검사 후에 isql을 통해 연결할 수 있지만 SQL 명령을 실행할 수 없습니다.
SQL> SELECT name FROM master..sysdatabases;
[37000][unixODBC][FreeTDS][SQL Server]Could not find stored procedure 'SELECT'.
[ISQL]ERROR: Could not SQLExecute
내가 무엇을 시도했다 :
A.) 하나 freetds.conf 두 .INI 파일에서 생각할 수있는 거의 모든 구성 및 명명 규칙 나는 다음과 같은 오류가 발생합니다. 변경 사항 게시 위의 동일한 테스트를 수행하고 동일한 결과를 얻습니다.
B.) isql 외부에서 오류를 재현하십시오. ROBC는 나에게 정확하게 똑같은 오류를 주었다. 물론 이것은 예상되지만 이유는 알 수 없습니다
C.) MS SQL Server 이외의 SQL 변형. 나는 누군가가 나에게 일부 MySQL 명령을 시도했음을 잘못 알린 경우에 대비해 알게되었습니다. 이 SQL 문제가 될 수 있지만 확실하지 않습니다.
디) 가장 가까운 나는 osql이 뱉어 낸 것과 비슷한 오류 (잘 추측 한 결과)를 찾는데왔다. here이다. 마지막 게시물에서 제안했듯이 문제는 osql의 응답과 관련이있는 경우 적어도 awk
과 관련 될 수 있습니다. "
$ SERVER_LINE='ServerName = SERVER'
$ echo ${SERVER_LINE} | awk -F '=[[:space:]]*' '{print $2}'
이것은 SERVER
발생한다 대신 나는"얻을 : 제안한 것처럼 나는 변수를 만들고 서버 이름을 구문 분석을 시도하여 awk
을 테스트합니다.
그게 전부입니다. 요약하면 OSQL은 odbc.ini에서 서버 이름을 찾지 못하는 것일 수 있으며, 이로 인해 ISQL 또는 ROBC에서 어떤 명령도 실행할 수 없게 될 수도 있습니다. 나는이 문제들이 서로 연관되어 있지 않다고 의심하기 시작했다. 그러나 어떤 도움이라도 대단히 감사 할 것이다.
편집 : 7/31/2014 이 모든 기능이 작동합니다. 내가 강조한 것 이외에도 다른 문제가있었습니다. 나는 맥과 리눅스 박스 모두에서 유사한 연결을 설정해야만했다. http://www.joecjr.com/2014/07/27/install-and-use-freetds-unixodbc-and-rodbc-or-pyodbc/
Linux 환경에서 SQL Server에 액세스하려면 자바/JDBC 기반 도구를 사용하는 것이 나을 것입니다. –
나는 이것을 RedHat에서 설정할 수 있었지만 짐승이었다. 일단 작동하면, 그만한 가치가있다. bin 디렉토리에서 "odbcinst -q -d"를 실행하면 어떻게됩니까? - 데이터 소스를 나열합니까? – Hambone
@Hambone 내 관련 질문을 보시겠습니까? 내 문제에 대한 통찰력이있는 것 같습니다. https://stackoverflow.com/questions/25774778/trouble-installing-freetbs-with-unixodbc-on-debian-servername – lennart