テーブルの項目名を取得する方法は色々あるとは思いますが、スクリプトで取得する方法を押さえておくとSQLの生成までスクリプトでやらせることが出来たりして結構便利です。
<#
.SYNOPSIS
Oracleデータベースのテーブルの項目を取得する。
.DESCRIPTION
サンプルスクリプト
#>
using namespace System.Data.OracleClient
# アセンブリのロード
Add-Type -AssemblyName System.Data.OracleClient
# 接続文字列
$User = "ユーザーID"
$Pass = "パスワード"
$DataSource = "データソース"
$Owner = "オーナー"
$TableName = "テーブル名"
$ConnectionString = "Data Source=${DataSource};User ID=${User};Password=${Pass};Integrated Security=false;"
# 接続
$Connection = [OracleConnection]::new($ConnectionString)
$Connection.Open()
# SQL
$sqlString = "SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE OWNER = '${Owner}' AND TABLE_NAME = '${TableName}'"
# コマンドオブジェクトを生成
$Command = [OracleCommand]::new() | % {
$_.Connection = $Connection
$_.CommandText = $sqlString
$_
}
# SQLの結果を読み込み
$Reader = $Command.ExecuteReader()
while($Reader.Read())
{
Write-Host $Reader['COLUMN_NAME']
}
$Reader.Dispose()
$Command.Dispose()
# 切断
$Connection.Dispose()
コメント