Oracle in Go verwenden: Eine vollständige Anleitung
Oracle-Datenbank ist eine der führenden relationalen Datenbanken der Branche und wird für ihre Datensicherheit und Zuverlässigkeit hoch gelobt. Viele Unternehmen nutzen Oracle-Datenbanken, um riesige Datenmengen zu speichern und zu verwalten. Mit dem Aufstieg und der Anwendung der Go-Sprache beginnen immer mehr Menschen, sich mit der Verwendung von Oracle in der Go-Sprache zu befassen.
Oracle stellt offiziell einen Treiber für die Go-Sprache zur Verfügung, nämlich „go-oci8“. In diesem Artikel erfahren Sie, wie Sie den Treiber installieren, die Verbindung initialisieren und Abfrage-, Lösch- und Einfügevorgänge durchführen.
Installieren Sie den Oracle-Treiber
Zuerst müssen wir den go-oci8-Treiber installieren. Der Treiber ruft die Oracle-Datenbank-Clientbibliothek über CGO auf. Sie müssen daher vor der Installation prüfen, ob die Oracle-Clientbibliothek installiert ist.
Laden Sie das Installationspaket herunter: https://oracle.github.io/odpi/doc/installation.html#linux
Der Installationsprozess ist einfach: Entpacken Sie einfach das Installationsskript und führen Sie es aus. Nach Abschluss der Installation können Sie den go-oci8-Treiber installieren. Verwenden Sie den folgenden Befehl:
go get -v -u gopkg.in/goracle.v2
Initialisieren Sie die Verbindung
Nachdem der Treiber installiert und konfiguriert wurde, können wir eine Verbindung zur Oracle-Datenbank in der Go-Sprache herstellen. Sie können den folgenden Code verwenden, um die Verbindung zu initialisieren:
package main import ( "database/sql" "fmt" _ "gopkg.in/goracle.v2" ) func main() { // 格式:[账号]/[密码]@[主机名]:[端口号]/[SID] connectionString := "scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))" db, err := sql.Open("goracle", connectionString) if err != nil { fmt.Println("Connection Failed : ", err) return } defer db.Close() fmt.Println("Connected successfully") }
Wir müssen die Verbindungszeichenfolge der Oracle-Datenbank bereitstellen. Die Verbindungszeichenfolge enthält Folgendes: Benutzername, Passwort, Host (oder IP-Adresse), Port und Datenbank-SID. Wenn Sie mit Oracle-Verbindungszeichenfolgen nicht vertraut sind, finden Sie weitere Informationen in der offiziellen Dokumentation von Oracle.
Wenn nach dem Ausführen des obigen Codes die Verbindung erfolgreich ist, wird „Erfolgreich verbunden“ ausgegeben.
Abfragevorgang
Das Folgende ist ein Beispielcode für die Abfrage der Oracle-Datenbank:
package main import ( "database/sql" "fmt" _ "gopkg.in/goracle.v2" ) func main() { // Initialize connection connectionString := "scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))" db, err := sql.Open("goracle", connectionString) if err != nil { fmt.Println("Connection Failed : ", err) return } defer db.Close() // Execute SQL query rows, err := db.Query("SELECT EMPNO, ENAME, SAL FROM EMP WHERE DEPTNO = :1", 10) if err != nil { fmt.Println("Error executing SQL query: ", err) return } defer rows.Close() // Process rows for rows.Next() { var empno int var ename string var sal int if err := rows.Scan(&empno, &ename, &sal); err != nil { fmt.Println("Error scanning row: ", err) return } fmt.Println(empno, ename, sal) } }
Dieser Code fragt alle Mitarbeiterinformationen mit der Abteilungsnummer 10 in der Mitarbeitertabelle ab. Beachten Sie, dass in der Abfrage benannte Parameter verwendet werden. Wenn Sie Positionsparameter verwenden müssen, verwenden Sie „?“ anstelle von „:1“.
Aktualisierungsvorgang
Das Folgende ist ein Beispielcode zum Aktualisieren der Oracle-Datenbank:
package main import ( "database/sql" "fmt" _ "gopkg.in/goracle.v2" ) func main() { // Initialize connection connectionString := "scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))" db, err := sql.Open("goracle", connectionString) if err != nil { fmt.Println("Connection Failed : ", err) return } defer db.Close() // Execute SQL update result, err := db.Exec("UPDATE EMP SET SAL = :1 WHERE EMPNO = :2", 10000, 7369) if err != nil { fmt.Println("Error executing SQL update: ", err) return } rowsAffected, err := result.RowsAffected() if err != nil { fmt.Println("Error getting affected rows: ", err) return } fmt.Println("Rows affected:", rowsAffected) }
Dieser Code aktualisiert das Gehalt des Mitarbeiters mit der Nummer 7369 in der Mitarbeitertabelle auf 10000.
Einfügevorgang
Hier ist ein Beispielcode zum Einfügen eines Datensatzes in die Oracle-Datenbank:
package main import ( "database/sql" "fmt" _ "gopkg.in/goracle.v2" ) func main() { // Initialize connection connectionString := "scott/tiger@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))" db, err := sql.Open("goracle", connectionString) if err != nil { fmt.Println("Connection Failed : ", err) return } defer db.Close() // Execute SQL insert result, err := db.Exec("INSERT INTO EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (:1, :2, :3, :4, :5, :6, :7, :8)", 1000, "Test", "Test", 7369, "01-JAN-00", 10000, 0, 10) if err != nil { fmt.Println("Error executing SQL insert: ", err) return } rowsAffected, err := result.RowsAffected() if err != nil { fmt.Println("Error getting affected rows: ", err) return } fmt.Println("Rows affected:", rowsAffected) }
Dieser Code fügt einen neuen Datensatz in die Mitarbeitertabelle ein.
Zusammenfassung
In diesem Artikel wird erläutert, wie Sie die Oracle-Datenbank in der Go-Sprache verwenden. Wir haben gelernt, wie man eine Verbindung initialisiert, Abfragen durchführt, Aktualisierungen durchführt und Vorgänge einfügt. Darüber hinaus erfahren Sie, wie Sie die erforderlichen Treiber installieren. Die obige Methode ist nützlich, wenn Ihre Anwendung mit der Oracle-Datenbank interagieren muss.
Das obige ist der detaillierte Inhalt vonVerwendung von Oracle in Go: Eine vollständige Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!