2009年12月27日日曜日

groovyとPostgreSQLでファンクションを一覧表示する

groovyとPostgreSQLでファンクションを一覧表示するには、以下のコードを実行します。


import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:postgresql://localhost:5432/test1",
"postgres",
"postgres",
"org.postgresql.Driver")

schemaName = "public"
query = """
select proc.proname, auth.rolname, lang.lanname, ns.nspname
from pg_proc proc
join pg_authid auth
on (proc.proowner = auth.oid)
join pg_language lang
on (proc.prolang = lang.oid)
join pg_namespace ns
on (proc.pronamespace = ns.oid)
where ns.nspname = ${schemaName}
"""
// ファンクション一覧表示
sql.eachRow(query){
// ファンクション名
println "proname:${it.proname}"
// 所有者
println "rolname:${it.rolname}"
// 言語
println "lanname:${it.lanname}"
// 名前空間
println "nspname:${it.nspname}"
println "----"
}


動作環境
Groovy 1.6.3, JDK6 Update16, Postgres 8.4.0,
8.4-701JDBC4

関連情報
pg_proc
http://www.postgresql.org/docs/8.4/interactive/catalog-pg-proc.html

0 件のコメント:

コメントを投稿