Linux Terminalinden MsSQL Sorguları Yapmak

By samed, 26 November, 2013

Linux üzerinden MsSQL sunuculara bağlanmak ve sorgu yapmak için birçok uygulama mevcut.

CentOS 6.4 64-bit için yaptığım bu örnekte FreeTDS isimli paketi kullandım. Bu paket CentOS'un varsayılan repolarında derlenmiş olarak bulunmuyor. Bu nedenle EPEL repolarından faydalanıyoruz.

Bkz: https://fedoraproject.org/wiki/EPEL
Bkz: http://www.freetds.org/
Bkz: http://www.centos.org/

wget http://mirror.vit.com.tr/mirror/Epel/6/i386/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum install -y freetds

Yukarıdaki işlemlerden sonra makinemize EPEL repolarını eklemiş ve FreeTDS sistemimize kurmuş oluyoruz.

#!/bin/bash

//read last 10 record from mssql server
RECS=$(echo "USE dbname GO select id from schema.tableA order by id desc limit 10 exit"| TDSVER=8.0 tsql -H servername -p 1433 -D dbname -U domain\\Administrator -P password|tail -n 10);

//write to mysql db
for i in $RECS
do
  echo "INSERT INTO tableB (data) VALUES ('$i');"|mysql -u user -p[pass] -h host dbname
done

Bu örnekte uzaktaki bir MsSQL sunucusuna bağlanarak tableA tablosundaki son 10 kaydın idlerini alarak yine uzaktaki bir MySQL sunucusunun tableB tablosuna yazıyor.