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 성공적으로"가 출력됩니다.
쿼리 연산
다음은 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" 대신 "?"를 사용하세요.
Update 작업
다음은 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) }
이 코드는 직원 테이블에 새 레코드를 삽입합니다.
요약
이 글에서는 Oracle 데이터베이스를 Go 언어로 사용하는 방법을 소개합니다. 연결을 초기화하고, 쿼리를 수행하고, 업데이트하고, 작업을 삽입하는 방법을 배웠습니다. 또한 필요한 드라이버를 설치하는 방법도 다룹니다. 위 방법은 애플리케이션이 Oracle 데이터베이스와 상호 작용해야 하는 경우 유용합니다.
위 내용은 Go에서 Oracle 사용: 전체 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!