スクリプト言語から PostgreSQL にアクセスする方法をまとめておいてみようかなぁと思う
PostgreSQL の test というデータベース上に Memo というテーブルがあるので、その中身をDumpするスクリプト
- Perl
#! /usr/local/bin/perl use Pg; $con = Pg::connectdb("host=**** user=**** dbname=test"); $res = $con->exec("select * from \"Memo\";"); while(@row = $res->fetchrow) { print @row; print "\n"; }
- Python
#! /usr/local/bin/python # -*- coding:utf-8 -*- import io import sys import psycopg2 sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='euc-jp') con = psycopg2.connect("dbname=test host=**** user=****") cur = con.cursor() cur.execute("SELECT * FROM \"Memo\";") res = cur.fetchall() for row in res: print(row[0] , end=" ") print(row[1]) cur.close() con.close()
- PHP
#! /usr/local/bin/php <?php $con = pg_connect("dbname=test host=**** user=**** password=****"); password=****"); $res = pg_query($con , "SELECT * FROM \"Memo\";"); for($i = 0 ; $i < pg_num_rows($res) ; $i++) { $dat = pg_fetch_row($res , $i); echo $dat[0] . " " . $dat[1] . "\n"; } ?>
- Ruby
#! /usr/local/bin/ruby -Ke require "rubygems" require "pg" con = PG::connect(:host => "****" , :user => "****" , :dbname => "test") res = con.exec("select * from \"Memo\";") res.each do |a| p a end
一通りメモとして残しておこう