Go 言語での Oracle の使用: 完全ガイド
Oracle データベースは業界をリードするリレーショナル データベースの 1 つであり、そのデータのセキュリティと信頼性が高く評価されています。多くの企業が 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 の公式ドキュメントで詳細を参照してください。
上記のコードを実行後、接続に成功すると「接続に成功しました」と出力されます。
クエリ操作
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) }
このコードは、employees テーブルに新しいレコードを挿入します。
概要
この記事では、Go 言語で Oracle データベースを使用する方法を紹介します。接続の初期化、クエリ、更新、挿入操作の実行方法を学習しました。さらに、必要なドライバーをインストールする方法についても説明します。上記の方法は、アプリケーションが Oracle データベースと対話する必要がある場合に役立ちます。
以上がGo での Oracle の使用: 完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。