ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

Python Á¬½Ó Oracle ʾÀý(Ò»)
2014-11-24 08:20:29 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:0´Î
Tags£ºPython Á¬½Ó Oracle ʾÀý

Python 2.4.3




Python »ù´¡Óï·¨²Î¿¼£º


Python »ù´¡Ó﷨֪ʶ





Python Á¬½ÓOracle Êý¾Ý¿â£¬ÐèҪʹÓÃcx_Oracle °ü¡£


¸Ã°üµÄÏÂÔØµØÖ·£ºhttp://cx-oracle.sourceforge.net/



ÏÂÔØµÄʱºò£¬×¢Òâ°æ±¾£¬¶Ô²»Í¬°æ±¾µÄOracle ºÍƽ̨£¬¶¼Óв»Í¬µÄcx_Oracle¡£




[root@rac1 u01]# rpm -ivh cx_Oracle-5.1-10g-py24-1.i386.rpm


Preparing... ########################################### [100%]


1:cx_Oracl ########################################### [100%]



Linux ƽ̨Ï£¬ÓÃroot Óû§½øÐа²×°£¬²¢ÇÒ»¹ÐèÒª½«Ò»Ð©Oracle µÄ»·¾³±äÁ¿Ìí¼Óµ½rootÓû§µÄ.bash_profile Àï¡£


×î¼òµ¥µÄ·½·¨£¬¾ÍÊÇÖ±½Ó°ÑORACLE Óû§µÄ±äÁ¿copy¹ýÀ´£º



PATH=$PATH:$HOME/bin


export ORACLE_BASE=/u01/app/oracle


export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1


export ORA_CRS_HOME=$ORACLE_BASE/product/crs


export ORACLE_SID=dave1


export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin


export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin


export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin


export ORACLE_TERM=xterm


export TNS_ADMIN=$ORACLE_HOME/network/admin


export ORA_NLS10=$ORACLE_HOME/nls/data


export LD_LIBRARY_PATH=$ORACLE_HOME/lib


export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib


export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib


export CLASSPATH=$ORACLE_HOME/JRE


export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib


export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib


export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib


export THREADS_FLAG=native


export TEMP=/tmp


export TMPDIR=/tmp



È»ºósource Ó¦ÓÃһϡ£




¶þ. Python Á¬Oracle µÄ»ù±¾²Ù×÷


2.1 DBÁ¬½ÓºÍ¹Ø±ÕDBÁ¬½Ó


2.1.1 ·½·¨Ò»£ºÓû§Ãû£¬ÃÜÂëºÍ¼àÌý ·Ö¿ªÐ´



[root@rac1 u01]# cat db.py


import cx_Oracle


db=cx_Oracle.connect('system','oracle','192.168.2.42:1521/dave')


print db.version


db.close()



[root@rac1 u01]# python db.py


10.2.0.1.0



2.1.2 ·½·¨¶þ£ºÓû§Ãû£¬ÃÜÂëºÍ¼àÌýдÔÚÒ»Æð


[root@rac1 u01]# cat db.py


import cx_Oracle


db=cx_Oracle.connect('system/oracle@192.168.2.42:1521/dave')


print db.version


db.close()



[root@rac1 u01]# python db.py


10.2.0.1.0



2.1.3 ·½·¨Èý£ºÅäÖüàÌý²¢Á¬½Ó



[root@rac1 u01]# cat db.py


import cx_Oracle


tns=cx_Oracle.makedsn('rac1',1521,'dave1')


db=cx_Oracle.connect('system','oracle',tns)


print tns


print db.version


vs=db.version.split('.')


print vs


if vs[0]=='10':


print "This is Oracle 10g!"


db.close()



[root@rac1 u01]# python db.py


(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=rac1)(PORT=1521)))(CONNECT_DATA=(SID=dave1)))


10.2.0.1.0


['10', '2', '0', '1', '0']


This is Oracle 10g!




2.2 ½¨Á¢cursor ²¢Ö´ÐÐSQLÓï¾ä



[root@rac1 u01]# cat db.py


import cx_Oracle


tns=cx_Oracle.makedsn('rac1',1521,'dave1')


db=cx_Oracle.connect('system','oracle',tns) --´´½¨Á¬½Ó


cr=db.cursor() --´´½¨cursor


sql='select * from phone'


cr.execute(sql) --Ö´ÐÐsql Óï¾ä



print "\nThis is Fetchall!"


rs=cr.fetchall() --Ò»´Î·µ»ØËùÓнá¹û¼¯



print "print all:(%s)" %rs


print "\n print by row:"


for x in rs:


print x



print "\nThis is Fetone!"


cr.execute(sql)


while(1):


rs=cr.fetchone() --Ò»´Î·µ»ØÒ»ÐÐ


if rs ==None:break


print rs



--ʹÓòÎÊý²éѯ


print "\n select with parameter:"


pr={'id':3,'tel':13888888888}


cr.execute('select * from phone where id=:id or phone=:tel',pr)


--ÕâÀïÎÒÃǽ«²ÎÊý×÷Ϊһ¸ö×ÖµäÀ´´¦ÀíµÄ


rs=cr.fetchall()


print rs



cr.execute('select * from phone where id=:myid or phone=:myphone',myid=2,myphone=13888888888)


--ÕâÀïÎÒÃÇÖ±½Óд²ÎÊý


rs=cr.fetchall()


print rs



cr.close()


db.close()



[root@rac1 u01]# python db.py



This is Fetchall

Ê×Ò³ ÉÏÒ»Ò³ 1 2 ÏÂÒ»Ò³ βҳ 1/2/2
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºPython »ù´¡Ó﷨֪ʶ ÏÂһƪ£ºARM Linux¾²Ì¬Ó³Éä·ÖÎö

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Spring Boot Java£º (2025-12-26 16:20:19)
¡¤Spring Boot¤ÇHello (2025-12-26 16:20:15)
¡¤Spring ¤Î»ù±¾¤«¤éŒ (2025-12-26 16:20:12)
¡¤C++Ä£°å (template) (2025-12-26 15:49:49)
¡¤C ÓïÑÔÖÐÄ£°åµÄ¼¸ÖÖ (2025-12-26 15:49:47)