none
Connect zu einer Oracle Datenbank RRS feed

  • Frage

  • Hallo,

    ich möchte mich an eine Oracle Datenbank connecten um dann mit select Befehlen Daten aus der DB zu lesen.

    Weiss jemand wie man einen solchen connect programmiert.

    Habe mich schon in dieses gebiet eingelesen komme aber nicht so recht weiter.

    MFG

    Stefan

    Donnerstag, 24. März 2011 09:00

Antworten

  • Hast du denn den Oracle-Client installiert? Grundsätzlich wird empfohlen ODP.Net zu benutzen, also den ODP.Net Client zu installieren. Hier ist ein Beispielscript:

     

    $AssemblyFile = "C:\Oracle\product\10.2.0\client_1\ODP.NET\bin\2.x\Oracle.DataAccess.dll"
    $ConnectionString = "User ID=Username;Password=Password;Data Source=Server;Persist Security Info=True"
    $CommandText = "SELECT * FROM Table"
    [Reflection.Assembly]::LoadFile($AssemblyFile) | Out-Null
    $OracleConnection = New-Object -TypeName Oracle.DataAccess.Client.OracleConnection
    $OracleConnection.ConnectionString = $ConnectionString
    $OracleConnection.Open()
    $OracleCommand = New-Object -TypeName Oracle.DataAccess.Client.OracleCommand
    $OracleCommand.CommandText = $CommandText
    $OracleCommand.Connection = $OracleConnection
    $OracleDataAdapter = New-Object -TypeName Oracle.DataAccess.Client.OracleDataAdapter
    $OracleDataAdapter.SelectCommand = $OracleCommand
    $DataSet = New-Object -TypeName System.Data.DataSet
    $OracleDataAdapter.Fill($DataSet) | Out-Null
    $OracleDataAdapter.Dispose()
    $OracleCommand.Dispose()
    $OracleConnection.Close()
    $DataSet.Tables[0]
    

     

    Grüße, Denniver


    http://bytecookie.wordpress.com/
    Donnerstag, 24. März 2011 14:11
    Moderator

Alle Antworten

  • Hallo Stefan, deine Frage ist sehr allgemein gestellt. Ich könnte dir jetzt ein paar Google Treffer zum Thema posten, wenn du dich aber bereits ins Thema eingelesen hast, wäre es hilfreich wenn du genauer beschreibst:

    - was du bisher versucht hast
    - was genau nicht funktioniert
    - welche Fehlermeldungen erscheinen etc.

    Grüße, Denniver


    http://bytecookie.wordpress.com/

    Donnerstag, 24. März 2011 10:07
    Moderator
  • Hallo Denniver,

    anbei mein Code.

    #CONNECT TO Oracle
    $constr = "User Id=system;Password=password;Data Source=PS2"
    $conn= New-Object System.Data.OracleClient($constr)
    $conn.OPEN()

    # CREATE a datareader FOR a SQL statement
    $sql="select * from all_users"
    $command = New-Object Oracle.DataAccess.Client.OracleCommand( $sql,$conn)
    $reader=$command.ExecuteReader()

    echo "User: "$reader

    Fehlermeldungen:

    PS C:\Documents and Settings\ps2adm> #connect to Oracle
    PS C:\Documents and Settings\ps2adm> $constr = "User Id=system;Password=passwd;Data Source=PS2"
    PS C:\Documents and Settings\ps2adm> $conn= New-Object System.Data.OracleClient($constr)
    New-Object : Cannot find type [System.Data.OracleClient]: make sure the assembly containing this type is loaded.
    At line:1 char:18
    + $conn= New-Object <<<<  System.Data.OracleClient($constr)
        + CategoryInfo          : InvalidType: (:) [New-Object], PSArgumentException
        + FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand

    PS C:\Documents and Settings\ps2adm> $conn.Open()
    You cannot call a method on a null-valued expression.
    At line:1 char:11
    + $conn.Open <<<< ()
        + CategoryInfo          : InvalidOperation: (Open:String) [], RuntimeException
        + FullyQualifiedErrorId : InvokeMethodOnNull

    PS C:\Documents and Settings\ps2adm>
    PS C:\Documents and Settings\ps2adm> # Create a datareader for a SQL statement
    PS C:\Documents and Settings\ps2adm> $sql="select * from all_users"
    PS C:\Documents and Settings\ps2adm> $command = New-Object Oracle.DataAccess.Client.OracleCommand( $sql,$conn)
    New-Object : Cannot find type [Oracle.DataAccess.Client.OracleCommand]: make sure the assembly containing this type is loaded.
    At line:1 char:22
    + $command = New-Object <<<<  Oracle.DataAccess.Client.OracleCommand( $sql,$conn)
        + CategoryInfo          : InvalidType: (:) [New-Object], PSArgumentException
        + FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand

    PS C:\Documents and Settings\ps2adm> $reader=$command.ExecuteReader()
    You cannot call a method on a null-valued expression.
    At line:1 char:31
    + $reader=$command.ExecuteReader <<<< ()
        + CategoryInfo          : InvalidOperation: (ExecuteReader:String) [], RuntimeException
        + FullyQualifiedErrorId : InvokeMethodOnNull

    PS C:\Documents and Settings\ps2adm>
    PS C:\Documents and Settings\ps2adm> echo "User: "$reader
    User:

     

    Besten Dank Stefan

    Donnerstag, 24. März 2011 13:00
  • Hast du denn den Oracle-Client installiert? Grundsätzlich wird empfohlen ODP.Net zu benutzen, also den ODP.Net Client zu installieren. Hier ist ein Beispielscript:

     

    $AssemblyFile = "C:\Oracle\product\10.2.0\client_1\ODP.NET\bin\2.x\Oracle.DataAccess.dll"
    $ConnectionString = "User ID=Username;Password=Password;Data Source=Server;Persist Security Info=True"
    $CommandText = "SELECT * FROM Table"
    [Reflection.Assembly]::LoadFile($AssemblyFile) | Out-Null
    $OracleConnection = New-Object -TypeName Oracle.DataAccess.Client.OracleConnection
    $OracleConnection.ConnectionString = $ConnectionString
    $OracleConnection.Open()
    $OracleCommand = New-Object -TypeName Oracle.DataAccess.Client.OracleCommand
    $OracleCommand.CommandText = $CommandText
    $OracleCommand.Connection = $OracleConnection
    $OracleDataAdapter = New-Object -TypeName Oracle.DataAccess.Client.OracleDataAdapter
    $OracleDataAdapter.SelectCommand = $OracleCommand
    $DataSet = New-Object -TypeName System.Data.DataSet
    $OracleDataAdapter.Fill($DataSet) | Out-Null
    $OracleDataAdapter.Dispose()
    $OracleCommand.Dispose()
    $OracleConnection.Close()
    $DataSet.Tables[0]
    

     

    Grüße, Denniver


    http://bytecookie.wordpress.com/
    Donnerstag, 24. März 2011 14:11
    Moderator