Benutzer-Werkzeuge

Webseiten-Werkzeuge


windows:powershell_oracle_db_abfragen

Mit der PowerShell die Oracle Datenbank mit .NET abfragen

Vorbereitung: .Net Objekte auf dem Server installieren

Falls die nicht bereits mit der Installations der Oracle Software erfolgt ist:

    • oder
  • Download Software ODAC112030Xcopy_x64.zip - 64 Bit unter 64bit ODAC 11.2 Release 4 (11.2.0.3.0) XCopy version
  • Software entpacken
  • Software installieren z.B. die 64bit variante unter d:\oracle\product\11.2.0.3\client_64bit
    • Adinistrative Powershell Console öffnen und in das entpackte Verzeichnis wechseln
    • Aufruf .\install.bat .\install.bat all D:\oracle\product\11.2.0.3\client_64bit ora_client_64bit
    • Die Software wird kopiert
  • TNSAdmin.ora auf gewünschte DB einrichten (empfohlen: Speicherort tnsnames.ora über die TNS_ADMIN Variable definieren!)

Aufruf PowerShell

# DataAcess DLL einbinden
 $AssemblyFile ="d:\oracle\product\11.2.0.3\client_64bit\odp.net\bin\2.x\Oracle.DataAccess.dll"
 
# Connect String mit Angabe TNS Alias
$ConnectionString = "User ID=scott;Password=tiger;Data Source=oraGPI;Persist Security Info=True"
 
# Auszuführendes Kommando 
$SQLCommand = "SELECT * FROM EMP where deptno=10"
 
# DLL laden
[Reflection.Assembly]::LoadFile($AssemblyFile) 
 
# Falls der Fehler auftritt : " ist keine zulässige Win32-Anwendung. (Ausnahme von HRESULT: 0x800700C1)"
# auf richtige bit Variante der DLL Achten (64bit OS => 64bit Oracle Home!)
 
#Verbindung zur Datenbank aufbauen
# Object anlegen
$OracleConnection = New-Object -TypeName Oracle.DataAccess.Client.OracleConnection
# Connect string setzen
$OracleConnection.ConnectionString = $ConnectionString
# Datenbank Verbindung öffnen
$OracleConnection.Open()
 
#SQL Kommando initalisieren
$OracleCommand = New-Object -TypeName Oracle.DataAccess.Client.OracleCommand
$OracleCommand.CommandText = $SQLCommand
$OracleCommand.Connection = $OracleConnection
 
# Adapter laden
$OracleDataAdapter = New-Object -TypeName Oracle.DataAccess.Client.OracleDataAdapter
$OracleDataAdapter.SelectCommand = $OracleCommand
 
#Dataset anlegen
$DataSet = New-Object -TypeName System.Data.DataSet
 
#Dataset mit dem Ergebniss der SQL Abfrage "füllen"
$OracleDataAdapter.Fill($DataSet) 
 
 
#Daten ausgeben
$DataSet.Tables[0]

Alternativ mit Reader abfragen: (siehe auch msdn oracledatareader )

$reader=$OracleCommand.ExecuteReader()
 
# Struktur des Ergebniss Records  anzeigen
for ($i=0;$i -lt $reader.FieldCount;$i++) {
    Write-Host  "Position ::" $i "::" $reader.GetName($i)"::" $reader.GetDataTypeName($i)
}
 
# Ausgeben der Ergebnisse
# auf die richtige Nummerierung achten 
 
while ($reader.read()) {
 
   $empno   = $reader.GetInt32(0) 
 
   # Reader "härten", falls ename null sein sollte
   if ( $reader.IsDBNull(1) ) {
       $ename= ""
   } 
   else {
       $ename  = $reader.GetString(1)
   }         
 
   $hiredate= $reader.GetDateTime(4)
 
    Write-Host "$ename $empno $hiredate"
}
Datenbank Verbindung auch wieder schließen .-)!
#Verbindung wieder schließen
$OracleDataAdapter.Dispose()
$OracleCommand.Dispose()
$OracleConnection.Close()

Quellen:

Oracle .Net DB Beispiele

Objekt Referenzen:

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
windows/powershell_oracle_db_abfragen.txt · Zuletzt geändert: 2012/08/04 19:00 von gpipperr

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki