Quelle: https://gist.github.com/hangtwenty/5547377
#!/bin/bash # INSTALL ORACLE INSTANT CLIENT # ################################# # NOTE: Oracle requires at least 1176 MB of swap (or something around there). # If you are using CentOS in a VMWare VM, there's a good chance that you don't have enough by default. # If this describes you and you need to add more swap, see the # "Adding a Swap File to a CentOS System" section, here: # http://www.techotopia.com/index.php/Adding_and_Managing_CentOS_Swap_Space # Install basic dependencies sudo yum -y install libaio bc flex echo "Now go get some the following two RPMs ..." echo "- basic: oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm" echo "- SDK/devel: oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm" echo "... from this URL: http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html" echo "WARNING: It's pretty annoying, they make you sign up for an Oracle account, etc." echo 'I will assume you have put these two files are into ~/Downloads' echo "Press any key once you're ready" && read -n 1 -s sudo rpm -ivh ~/Downloads/oracle-instantclient11.2-basic-* sudo rpm -ivh ~/Downloads/oracle-instantclient11.2-devel-* # SET ENVIRONMENT VARIABLES # ############################# # Source for this section: http://cx-oracle.sourceforge.net/BUILD.txt # (SIDENOTE: I had to alter it by doing some digging around for where the Oracle RPMs really installed to; # if you ever need to do this, do a command like this: # rpm -qlp <rpm_file_of_concern.rpm>) echo '# Convoluted undocumented Oracle bullshit.' >> $HOME/.bashrc echo 'export ORACLE_VERSION="11.2"' >> $HOME/.bashrc echo 'export ORACLE_HOME="/usr/lib/oracle/$ORACLE_VERSION/client64/"' >> $HOME/.bashrc echo 'export PATH=$PATH:"$ORACLE_HOME/bin"' >> $HOME/.bashrc echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$ORACLE_HOME/lib"' >> $HOME/.bashrc . $HOME/.bashrc # INSTALL cx_Oracle # ##################### pip install cx_Oracle
Gute Anleitung zur Verwendung von cs_Oracle: http://www.oracle.com/technetwork/articles/dsl/prez-python-queries-101587.html
Beispiel:
import cx_Oracle # db helper named arrays def rows_to_dict_list(cursor): columns = [i[0] for i in cursor.description] return [dict(zip(columns, row)) for row in cursor] # Connect to DB dsn_tns = cx_Oracle.makedsn("10.10.10.1",1521,"TESTDB") db = cx_Oracle.connect("testuser","password",dsn_tns) cursor = db.cursor() # Get data from DB cursor.execute("SELECT * FROM test_tab") result = rows_to_dict_list(cursor) # Insert to DB cursor.execute('INSERT INTO test_tab (row1, row2, row2) VALUES ("xxx", "yyy", "zzz")') db.commit() # close db db.close()