在Go語言中使用Oracle:完整指南
Oracle資料庫是業界領先的關聯式資料庫之一,它的資料安全性和可靠性備受讚譽。許多企業都在使用Oracle資料庫來保存和管理大量的資料。而現在,隨著Go語言的興起和應用,越來越多的人開始探索如何在Go語言中使用Oracle。
Oracle官方提供了適用於Go語言的驅動程序,即「go-oci8」。在本文中,我們將介紹如何安裝驅動程式、初始化連線和執行查詢、刪除和插入操作。
安裝Oracle驅動程式
首先,我們需要安裝go-oci8驅動程式。此驅動程式透過CGO呼叫Oracle資料庫客戶端程式庫,因此在安裝之前需要檢查是否安裝了Oracle客戶端程式庫。
下載安裝套件:https://oracle.github.io/odpi/doc/installation.html#linux
安裝過程很簡單,只需解壓縮並執行安裝腳本。在完成安裝後,就可以安裝go-oci8驅動程式了。使用以下命令:
go get -v -u gopkg.in/goracle.v2
初始化連線
驅動程式安裝並配置好之後,我們就可以在Go語言中連接Oracle資料庫了。可以使用以下程式碼進行初始化連線:
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") }
我們需要提供Oracle資料庫的連接字串。連接字串包含以下內容:使用者名稱、密碼、主機(或IP位址)、連接埠和資料庫SID。如果您不熟悉Oracle連接字串,可以參考Oracle官方文件了解更多資訊。
執行上述程式碼後,如果連線成功,輸出「Connected successfully」。
查詢操作
下面是一個查詢Oracle資料庫的範例程式碼:
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) } }
此程式碼查詢了僱員表中部門編號為10的所有僱員資訊。注意,查詢中使用了命名參數。如果您需要使用位置參數,請使用“?”代替“:1”。
更新作業
以下是一個更新Oracle資料庫的範例程式碼:
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) }
此程式碼將僱員表中僱員號碼為7369的薪水更新為10000。
插入操作
下面是一個在Oracle資料庫中插入記錄的範例程式碼:
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) }
此程式碼插入僱員表中一筆新記錄。
總結
本文介紹如何在Go語言中使用Oracle資料庫。我們了解如何初始化連線、執行查詢、更新和插入操作。此外,我們也介紹如何安裝必要的驅動程式。如果您的應用程式需要與Oracle資料庫進行交互,以上方法將非常有用。
以上是在Go語言中使用Oracle:完整指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!