Hi,
In powershell I try to connect to a standby database with the following code.
function Get-OracleResultRdr
{
try {
$con = New-Object Oracle.ManagedDataAccess.Client.OracleConnection($conString)
$cmd=$con.CreateCommand()
$cmd.CommandText= $sqlString
$con.Open()
$rdr=$cmd.ExecuteReader()
$columnNames=$rdr.GetSchemaTable() | Select-Object -ExpandProperty ColumnName
while ($rdr.Read()) {
$result=[ordered]@{}
for ($i=0; $i -lt $rdr.FieldCount; $i++) {
# 0..($rdr.FieldCount-1) | %{
$result.Add($columnNames[$i], $rdr.GetOracleValue($i))
}
[pscustomobject]$result
}
} catch {
Write-Error ($_.Exception.ToString())
} finally {
if ($con.State -eq 'Open') { $con.close() }
}
$resultSet
}
$conString = "DBA Privilege=SYSDBA;User Id=sys;Password=xxxx;Data Source=yyyyy;"
$sqlString=@'
select * from v_$session
'@
Get-OracleResultRdr $conString $sqlString|Out-GridView -wait
After the $con.Open() powershell gives the following exception :
Get-OracleResultRdr : System.Management.Automation.MethodInvocationException: Exception calling "Open" with "0" argumen
t(s): "Waarde kan niet null zijn.
Parameternaam: key" ---> System.ArgumentNullException: Waarde kan niet null zijn.
Parameternaam: key
bij System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
bij System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
bij OracleInternal.Common.SyncDictionary`2.ContainsKey(K k)
bij OracleInternal.ConnectionPool.PoolManager`3.CreateServiceCtx(PR pr)
bij OracleInternal.ConnectionPool.PoolManager`3.PutNewPR(PR pr, Boolean bForPoolPopulation)
bij OracleInternal.ConnectionPool.PoolManager`3.CreateNewPR(Int32 reqCount, Boolean bForPoolPopulation, ConnectionSt
ring csWithDiffOrNewPwd, OracleConnection connRefForCriteria, String instanceName, List`1 switchFailedInstNames)
bij OracleInternal.ConnectionPool.PoolManager`3.Get(ConnectionString csWithDiffOrNewPwd, Boolean bGetForApp, OracleC
onnection connRefForCriteria, String affinityInstanceName, Boolean bForceMatch)
bij OracleInternal.ConnectionPool.OraclePoolManager.Get(ConnectionString csWithNewPassword, Boolean bGetForApp, Orac
leConnection connRefForCriteria, String affinityInstanceName, Boolean bForceMatch)
bij OracleInternal.ConnectionPool.OracleConnectionDispenser`3.Get(ConnectionString cs, PM conPM, ConnectionString pm
CS, SecureString securedPassword, SecureString securedProxyPassword, OracleConnection connRefForCriteria)
bij Oracle.ManagedDataAccess.Client.OracleConnection.Open()
bij CallSite.Target(Closure , CallSite , Object )
--- Einde van intern uitzonderingsstackpad ---
bij System.Management.Automation.ExceptionHandlingOps.CheckActionPreference(FunctionContext funcContext, Exception e
xception)
bij System.Management.Automation.Interpreter.ActionCallInstruction`2.Run(InterpretedFrame frame)
bij System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
bij System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
I've tried the following Data Providers :
2.0.120:20180726Beta
4.122.1.1.20170524
4.121.2.20160624
The 4.121.2.20160624 gives an ORA-01219.
Regards,
Hans