>  기사  >  백엔드 개발  >  Oracle 데이터베이스를 운영하기 위해 cx_Oracle 모듈을 사용하는 Python에 대한 자세한 설명

Oracle 데이터베이스를 운영하기 위해 cx_Oracle 모듈을 사용하는 Python에 대한 자세한 설명

不言
不言원래의
2018-05-07 11:47:556197검색

이 글에서는 주로 Python의 cx_Oracle 모듈을 사용하여 Oracle 데이터베이스를 운영하는 방법을 소개합니다. cx_Oracle 모듈의 다운로드 및 설치, Oracle 데이터베이스에 대한 연결, SQL 문 실행, 저장 프로시저 및 기타 관련 운영 기술을 자세히 분석합니다. 친구는 이 기사를 참조할 수 있습니다.

이 기사의 예는 Python이 cx_Oracle 모듈을 사용하여 Oracle 데이터베이스를 작동하는 방법을 설명합니다. 참고용으로 모든 사람과 공유하세요.

ORACLE_SID 매개변수입니다. 이 매개변수는 운영 체제에서 사용되는 데이터베이스 인스턴스입니다. 수정해야 합니다. 여기에서는 기본 인스턴스 이름이 사용되므로 conn/as sysdba를 통해 연결할 수 있습니다.

간단히 말하면 이름은 Xiao Ming이지만 별명이 많아요. 부모님은 당신을 샤오밍(Xiao Ming)이라고 부르지만, 친구들은 모두 당신을 별명으로 부릅니다.

여기서 부모님은 Oracle 인스턴스이고 Xiao Ming은 sid이며 서비스 이름은 닉네임입니다.

sid는 각 데이터베이스를 인스턴스와 구별하기 위해 사용되며, 서비스 이름은 외부 링크에 사용됩니다. 다를 수 있으므로 어떤 이름을 얻게 되는지 주의해서 적절히 사용하세요. 그렇지 않으면 원격으로 다른 데이터베이스에 연결할 때 오류가 발생할 수 있습니다.

머리말

파일을 조작하기 위해 Python과 함께 제공되는 많은 모듈이 있습니다. 파일에서 데이터를 읽고 처리 후 파일에 데이터를 쓸 수 있습니다. 그러나 데이터 관리 및 분석에 있어 데이터베이스는 여전히 더 전문적입니다. Python을 데이터베이스와 결합할 수 있다면 두 가지의 장점을 결합하고 효율성을 향상시킬 수 있습니다.

저는 직장에서 Oracle 데이터베이스를 사용하는데, Python에는 Oracle에 연결할 수 있는 cx_Oracle 모듈이 있습니다. cx_Oracle을 사용하려면 먼저 다운로드해야 합니다.

1. 풍부한 모듈을 갖춘 공식 웹사이트 PyPI인 cx_Oracle

Python을 다운로드하세요. cx_Oracle은 PyPI에서 다운로드할 수 있습니다. PyPI URL https://pypi.python.org/pypi를 열고 cx_Oracle을 검색하여 모듈을 찾으세요. 다운로드 주소는 http://cx-oracle.sourceforge.net/입니다. 물론 다른 방법으로도 다운로드할 수 있습니다.

다운로드 후 사용 가능합니다.

2. 사용 과정

간단한 사용 과정은 다음과 같습니다.

①. 데이터베이스에 연결합니다.
3. 커서를 사용하여 다양한 작업을 수행합니다. ⑤. 커서를 닫습니다
⑥. 연결을 닫습니다.

다음은 간단한 예입니다.

cx_Oracle.connect("Username/Password@Oracle Server IP/Oracle's SERVICE_NAME")

Get Oracle's SERVICE_NAME:

su - oracle #oracle 사용자로 전환

env | grep ORACLE #Query ORACLE 환경 변수

ORACLE_SID=benguo # benguo는 SERVICE_NAME

import cx_Oracle                     #引用模块cx_Oracle
conn=cx_Oracle.connect('load/123456@localhost/ora11g')  #连接数据库
c=conn.cursor()                      #获取cursor
x=c.execute('select sysdate from dual')          #使用cursor进行各种操作
x.fetchone()
c.close()                         #关闭cursor
conn.close()                       #关闭连接

예:

#coding:utf-8
import cx_Oracle
def main():
  conn = cx_Oracle.connect("zebra/zebra@192.168.0.113/benguo")
  cur =conn.cursor()
  r= cur.execute("select * from userinfo")
  print
  print r.fetchone()
if __name__ == '__main__':
  main()

3 . 여러 용도

Python의 데이터베이스 작업에는 주로 두 가지 측면이 포함됩니다. 하나는 데이터를 쓰는 것이고, 다른 하나는 데이터를 읽는 것입니다. 이 두 가지 측면의 구현은 SQL 문이나 저장 프로시저를 통해 달성할 수 있습니다. 따라서 cx_Oracle의 주요 용도는 다음과 같습니다.

1. SQL 문 실행

2. 저장 프로시저 및 함수 호출.

4. SQL 문 실행

위의 예에서 볼 수 있듯이 SQL 문을 실행하는 것은 매우 간단합니다. 실행하려면 cursor.execute를 사용하세요. 실행 결과를 읽으려면 fetchone 또는 fetchall을 사용하십시오.

다음 예제는 변수 바인딩을 사용한 Insert 문입니다.

cursor.execute即可执行。使用fetchone或fetchall即可将执行结果读出来。

下面一个例子是Insert语句,使用的变量绑定。

import cx_Oracle
conn=cx_Oracle.connect('load/123456@loaclhost/ora11g')
c=conn.cursor()
x=c.execute('insert into demo(v) values(:1)',['nice'])
conn.commit();
c.close()
conn.close()

变量绑定和Oracle的动态SQL一样,都是冒号将占位符,即代码中的:1,对变量的复制就是传入一个List,即代码中的['nice']。有多少个变量,list中就应该对应多少个值,数目要一致,否则会报错。

执行之后,可以使用连接的一个方法connect.commit(),将事务提交。

5. 调用存储过程和方法

直接上代码:

--存储过程代码:
CREATE OR REPLACE PROCEDURE P_DEMO(V1 IN VARCHAR2, V2 OUT VARCHAR2) IS
BEGIN
  V2 := V1;
END;

#Python代码:
import cx_Oracle
conn=cx_Oracle.connect('load/123456@localhost/ora11g')
c=conn.cursor()
str1='nice'
str2='  '#需要有值,即len(str2)>=len(str1)
x=c.callproc('p_demo',[str1,str2])
print(str2)
c.close()
conn.close()

调用存储过程使用的是cursor.callproc方法。上面的存储过程中,一个变量的值是OUT型的,在Python中,对OUT型的变量赋值,主要该变量的长度不能小于存储过程中的。

--函数代码:
CREATE OR REPLACE function F_DEMO(V1 VARCHAR2) RETURN VARCHAR2 IS
BEGIN
  RETURN V1;
END;

#Python代码:
import cx_Oracle
conn=cx_Oracle.connect('load/123456@localhost/ora11g')
c=conn.cursor()
str1='nice'
str2=c.callfunc('f_demo',cx_Oracle.STRING,[str1])
print(str2)
c.close()
conn.close()

调用函数使用的方法是cursor.callfunc

rrreee

변수 바인딩은 Oracle의 동적 SQL과 동일합니다. 콜론은 코드에서 1입니다. 변수의 복사본은 목록에 전달됩니다. 코드]. 변수가 몇 개인지, 목록에 해당하는 값이 몇 개인지, 숫자가 일치해야 하는지, 그렇지 않으면 오류가 보고됩니다. 실행 후 connect.commit() 연결 메소드 중 하나를 사용하여 트랜잭션을 커밋할 수 있습니다.

5. 저장 프로시저 및 메서드 호출

코드로 직접 이동:

🎜🎜rrreee🎜🎜🎜🎜rrreee🎜🎜🎜 cursor.callproc 메서드를 사용하여 저장 프로시저를 호출하세요. 위의 저장 프로시저에서 변수의 값은 OUT 유형입니다. Python에서 OUT 유형의 변수에 값을 할당할 때 변수의 길이는 저장 프로시저의 길이보다 작을 수 없습니다. 🎜🎜🎜rrreee🎜🎜🎜🎜rrreee🎜🎜🎜함수 호출에 사용되는 메소드는 cursor.callfunc입니다. 이 방법과 저장 프로시저 호출의 차이점은 전송 매개변수 유형을 지정해야 한다는 것입니다. 🎜🎜🎜🎜End🎜🎜🎜🎜cx_Oracle을 통해 Python과 Oracle 데이터베이스는 서로 통신할 수 있으므로 둘이 서로의 장점을 보완할 수 있습니다. 🎜🎜예를 들어 Python을 데이터 수집 도구로 사용할 수 있습니다. 웹 및 파일에서 데이터를 얻은 다음 Oracle 데이터베이스의 데이터를 추가로 분석하기 위해 해당 데이터를 Oracle 데이터베이스에 저장할 수 있습니다. 🎜🎜관련 추천: 🎜

Python은 openpyxl 라이브러리를 사용하여 Excel 테이블 데이터 방법을 수정합니다.

Python은 이메일 모듈을 사용하여 이메일을 인코딩하고 디코딩합니다.

위 내용은 Oracle 데이터베이스를 운영하기 위해 cx_Oracle 모듈을 사용하는 Python에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.