Ubuntu 16.04 LTS + Perl で Linux版 SQL Server 2017 Express にアクセスしてみる
Ubuntu 16.04 LTS + Perl で Linux版 SQL Server 2017 Express にアクセスしてみる
Linux版 SQL Server 2017 Express をインストールしたので ODBCでアクセスしてみる
Ubuntu 16.04 LTS + Perl + DBI::DBD + unixODBC <-> SQL Server 2017 Express
になるのかな?
※こういう検証用だとやはりPerlが楽だよなぁ・・・
環境はこちら
Ubuntu 16.04 LTS で SQL Server 2017 Express を試してみる
Ubuntu 16.04 LTS で SQL Server 2017 Express をもう少し試してみる
Ubuntu 17.10 + VsCode + Perl で Windows10 + SQL Server 2017 Express にアクセスする
参考にしたのは以下のサイト
# perl -v
This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux-gnu-thread-multi
(with 68 registered patches, see perl -V for more detail)
・DBI::DBDのインストール
コンソールより、以下を実行する
# apt-get install perl-doc
# apt install cpanminus
# cpanm install DBD::ODBC (DBIはここでインストールされる)
# cpanm install DDP
・unixodbcは以下でツール系でまとめてインストールしている
Ubuntu 16.04 LTS で SQL Server 2017 Express を試してみる
・/etc/odbc.ini の設定
# for remote windows
[MSSQLWin10]
Driver = /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.1.so.0.1
Server = tcp:xxx.xxx.xxx.xxx\SQLEXPRESS,1433
Database = DEMO
ClientCharset = UTF-8
# for local ubuntu
[MSSQLLocal]
Driver = /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.1.so.0.1
Server = tcp:xxx.xxx.xxx.xxx,1433
Database = DEMO
ClientCharset = UTF-8
# odbcinst -i -d -f /etc/odbc.ini でインストールする
登録済の設定を表示する
# odbcinst -q -d
[ODBC Driver 17 for SQL Server]
[MSSQLWin10]
[MSSQLLocal]
指定した設定を削除する
# odbcinst -u -d -n MSSQLLocal
# odbcinst -u -d -n MSSQLWin10
サンプル(使いまわし)
use strict; use utf8; use DBI; my $dbh=DBI->connect('dbi:ODBC:MSSQLLocal','demo','demo') or die $!; my $sth=$dbh->prepare("select * from ZIPCODE") or die $dbh->errstr; # 出力エラー対策 $sth->{LongTruncOk}=1; $sth->{LongReadLen}=2000000; $sth->execute or die $dbh->errstr; while(my $arrayref = $sth->fetchrow_arrayref){ use DDP; p $arrayref; } $sth->finish; $dbh->disconnect; perl samp0001.pl \ [ [0] "00000001", [1] "01101", [2] "060", [3] "0600000 ", [4] "ホッカイド鐔\0", [5] "サッポロシチュウオウク \0", [6] "イカニケイサイガナイバアイ \0", [7] "北海道 \0", [8] "札幌市中央区 \0", [9] "以下に掲載がない場合 \0", [10] 0, [11] 0, [12] 0, [13] 0, [14] 0, [15] 0 ] ~