Oracle Datenbank in VB.NET nutzen

Do, 01.07.2010 - 18:14 -- Daniel Espendiller

Um mittels VB.NET oder anderen .NET Sprachen auf eine Oracle Datenank zugreifen zu können und diverse Auswertungen und Abfragen abzusetzen, gibt es mehrere Möglichkeiten und auch seltsame Oracle Kommandos, die man einhalten muss. Vielleicht helfen dem ein oder anderen ja meine zusammengetragenen Informationen.

Oracle mittels ADO.NET

Innerhalb von .NET kann man ohne aufwändige Installation eines Oracle Clients (Mit PHP über Instant Client auf Oracle Datenbank zugreifen) arbeiten, wenn man nicht eine "uralt" Oracle Datenbank am laufen hat. So kann man Anwendungen ohne Zusatzsoftware bereitstellen. Man setzt jediglich einen Verweise auf System.Data.OracleClient und erstellt sich deinen Connectionstring. Dieser enthält den Serverdaten, Benutzer, Kennwort und eine nötige Sid (SERVICE_NAME).

   Imports System.Data.OracleClient
   [...]
    ''' <summary>
    ''' Sample function perform a SQL on a Oracle Database
    ''' </summary>
    ''' <remarks></remarks>
    Sub Connect10g()
        Try
 
            'insert your oracle connection info
            Dim conn As New OracleConnection("Data Source=(DESCRIPTION=" & _
                "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=servername)(PORT=1521)))" & _
                "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=sid)));" & _
                "User Id=user;Password=password;")
 
            conn.Open()
 
            'perform a query
            Dim cmd As New OracleCommand("select myfield, somefields from table", conn)
            Dim dr As OracleDataReader = cmd.ExecuteReader()
 
            'read data out of query and output a known field
            While (dr.Read)
                MsgBox(dr.Item("myfield").ToString)
            End While
 
            'close connection
            conn.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

Oracle über ODBC

In jedem Windows Rechner ist standardmäßig ein ODBC Treiber für Oracle Datenbanken enthalten, dieser ist allerdings recht alt und läuft nicht mit neueren Oracle Versionen. Dazu kann man den Treiber aber updaten, wenn man darauf angewiesen ist. Die ADO.NET Schnittstellen und ODBC sind vom Auruf fast identisch, so dass man sich wunderbar später noch um entscheiden kann.

    Sub Connect8()
        Try
 
            'insert your oracle connection info
            'DBA=R means readonly connection
            Dim conn As New OdbcConnection("DRIVER={Oracle ODBC Driver};SERVER=servername;UID=username;PWD=password;DBQ=sid;DBA=R")
            conn.Open()
 
            'perform a query
            Dim comm As New OdbcCommand("select myfield, somefields from table", conn)
            Dim dr As OdbcDataReader = comm.ExecuteReader()
 
            'read data out of query and output a known field
            While (dr.Read)
                MsgBox(dr.Item("myfield").ToString)
            End While
 
            conn.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub