Skip to Main Content

ODP.NET

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Connect to standby database with Oracle.ManagedDataAccess.Client

3546385Aug 8 2018 — edited Apr 10 2019

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

This post has been answered by Alex Keh-Oracle on Dec 17 2018
Jump to Answer

Comments

Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on May 8 2019
Added on Aug 8 2018
57 comments
7,072 views