2023-12-25

unixODBC isql

unixODBC 提供了 isql 這個命令列工具。要注意的是,有不少資料庫的命令列工具也取名為 isql,使用前應該先使用下列的指令確定:

isql --version

下面是指令的參數:

isql DSN [USER [PASSWORD]] [options]

下面的範例是使用 DSN=PostgreSQL 查詢資料庫版本,並且輸出為 html 的例子:

echo "select version() as version" | isql PostgreSQL -b -w > result.html

(-b 代表不要 interactive mode,而 -w 代表輸出 html table 結果。)

然後接下來撰寫一個 Tcl 程式測試:

#!/usr/bin/env tclsh
if {$argc >= 1} {
    set statement [lindex $argv 0]
} elseif {$argc == 0} {
    puts "Please input a SQL statement"
    exit
}

set var [list echo $statement | isql PostgreSQL -b -w > result.html]
exec {*}$var