PowerShell连接查询Oracle数据库

PowerShell连接查询Oracle数据库

$USER = 'USER'
$PASSWD = 'PASSWD'
$SERVER = 'SERVER'
$DB = 'DB'

# create connection object
Add-Type -AssemblyName 'System.Data.OracleClient'
$CONNECTION_STR = "User Id=$USER;Password=$PASSWD;Data Source=$SERVER/$DB"
$connection = New-Object System.Data.OracleClient.OracleConnection($CONNECTION_STR)

# query
Function Oracle-Query {
    param ([String] $SQL, [HashTable] $parameters, [Bool] $scalar)
    PrintEnv
    $connection.Open()
    $ora_cmd = $connection.CreateCommand()
    $ora_cmd.CommandText = $SQL
    ForEach($key in $parameters.Keys) {
        $param = New-Object System.Data.OracleClient.OracleParameter($key, '')
        $param.Value = $parameters[$key]
        $ora_cmd.Parameters.Add($param) | Out-Null
    }
    If($scalar) {
        $val = $ora_cmd.ExecuteScalar()
        $connection.Close()
        Return $val
    } Else {
        $reader = $ora_cmd.ExecuteReader()
        $columns = @()
        For($i = 0; $i -lt $reader.FieldCount; $i++) {
            $columns += $reader.GetName($i)
        }
        $data = @()
        While($reader.Read()) {
            $row = New-Object -TypeName psobject
            $columns | % { $index = 0 } {
                If($reader.IsDBNull($index)) {
                    $row | Add-Member $_ 'NULL'
                } Else {
                    $row | Add-Member $_ $reader.GetValue($index)
                }
                $index += 1
            }
            $data += $row
        }
        $connection.Close()
        Return $data
    }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值