cx_Oracle简单操作

import socket
import cx_Oracle

szUsername = 'soctt'
szPasswd = 'tiger'
szHostname = '1234456577.com.cn'
szPort = '1521'
szInstance = 'orcl'


sql = 'select * from emp'


szIPAddr = socket.getaddrinfo(szHostname, None)[0][4][0]

db = cx_Oracle.connect(szUsername, szPasswd, szIPAddr + ':' + szPort + '/' + szInstance)
cursor = db.cursor()


cursor.execute(sql)

titles = [i[0] for i in cursor.description]
sqlRet = cursor.fetchall()

for title in titles:
    print(title, end = "\t\t")

print("")

for sqlLine in sqlRet:
    for line in sqlLine:
        print(line, end = "\t\t")
    print('')

cursor.close()
db.close()

PS D:\Desktop\FTP\python\python3\oracle> F:\Python\Python36-32\python.exe test.py
EMPNO           ENAME           JOB             MGR             HIREDATE                SAL         COMM                DEPTNO
7369            SMITH           CLERK           7902            1980-12-17 00:00:00             800.0           None            20
7499            ALLEN           SALESMAN                7698            1981-02-20 00:00:00         1600.0              300.0           30

7521            WARD            SALESMAN                7698            1981-02-22 00:00:00         1250.0              500.0           30

7566            JONES           MANAGER         7839            1981-04-02 00:00:00             2975.0          None            20
7654            MARTIN          SALESMAN                7698            1981-09-28 00:00:00         1250.0              1400.0          30

7698            BLAKE           MANAGER         7839            1981-05-01 00:00:00             2850.0          None            30
7782            CLARK           MANAGER         7839            1981-06-09 00:00:00             2450.0          None            10
7788            SCOTT           ANALYST         7566            1987-04-19 00:00:00             3000.0          None            20
7839            KING            PRESIDENT               None            1981-11-17 00:00:00         5000.0              None            10

7844            TURNER          SALESMAN                7698            1981-09-08 00:00:00         1500.0              0.0             30

7876            ADAMS           CLERK           7788            1987-05-23 00:00:00             1100.0          None            20
7900            JAMES           CLERK           7698            1981-12-03 00:00:00             950.0           None            30
7902            FORD            ANALYST         7566            1981-12-03 00:00:00             3000.0          None            20
7934            MILLER          CLERK           7782            1982-01-23 00:00:00             1300.0          None            10

备注:cx_Oracle这个包无法识别域名,所以调用一下socket包把域名解析成IP地址,否则会报TNS错误。

备注:用的python3.6

参考文章:

《精通 Oracle+Python,第 1 部分:查询最佳应践》    http://www.oracle.com/technetwork/cn/articles/dsl/prez-python-queries-101587-zhs.html

发布了31 篇原创文章 · 获赞 11 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/MrRight17/article/details/81136612
今日推荐