HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


PowerShellの開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > PowerShell Tips > 自作関数(Oracle用) Tips メニュー

02.SQL*PLUSもどきを作る その2

 
UPDATE:2008/05/03    
 



SQL*PLUSもどきを作る その1の続きです。

接続文字列を作成する関数 Get-OracleConnectionStirng関数を紹介します。

Get-OracleConnectionStirng.ps1

#================================================================================================
# Get-OracleConnectionString: Oracle用接続文字列を作成する
#
# UPDATE: 2008-04-25 Ver.1.0.0
#
# copyright HIRO's.NET(http://hiros-dot.net/)
#================================================================================================
function global:Get-OracleConnectionString([string]$UserID, [object]$Password, [string]$DataSource)
{
if ($args[0] -eq "-?")
{
Write-Host @"
名前:
Get-OracleConnectionString

概要:
Oracle用接続文字列を作成します

構文:
Get-OracleConnectionString [-UserID] [-Password] [-DataSource]

使用方法:
`$ConnString = (Get-OracleConnectString "User" "Password" "ServerName")
"@ -foregroundcolor Cyan
return
}

#パスワードがSecureString型の場合はString型にする
if ( $Password -is [System.Security.SecureString] )
{
$ptr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Password)
$pass = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ptr);
}
else
{
$pass = $Password
}

#接続文字列を作成して返す
return "Data Source=$DataSource;User ID=$UserID;Password=$pass;Integrated Security=no;"
}

使用方法はList1の通りで
Get-OracleConnectionString ユーザー名 パスワード 接続先{Enter]
と入力します。

この接続文字列はOracleClient用のものが作成されます。

また引数の「パスワード」ですが、これにはString型またはSecureString型を渡します。

SecureString型が渡された場合は、関数内部でString型に戻して接続文字列を作成します。

*で伏せられたパスワード文字列も、この関数を通して接続文字列を返すと、上パスワードが丸見えになりますので使用する場合は注意してください。

今回紹介した関数は SQL*PLUSもどきを作る その1 の中で使用していますので、興味がある方は参考にしてみてください。

List1

PS > Get-OracleConnectionString scott tiger OraSvr10g
Data Source=OraSvr10g;User ID=scott;Password=tiger;Integrated Security=no;