이 글에서는 주로 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을 사용하십시오.
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
변수 바인딩은 Oracle의 동적 SQL과 동일합니다. 콜론은 코드에서 1입니다. 변수의 복사본은 목록에 전달됩니다. 코드]. 변수가 몇 개인지, 목록에 해당하는 값이 몇 개인지, 숫자가 일치해야 하는지, 그렇지 않으면 오류가 보고됩니다. 실행 후 connect.commit()
연결 메소드 중 하나를 사용하여 트랜잭션을 커밋할 수 있습니다.
코드로 직접 이동:
🎜🎜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 중국어 웹사이트의 기타 관련 기사를 참조하세요!