cx_Oracle是Python與Oracle數(shù)據(jù)庫通信的API,可以方便地使用Python操作Oracle數(shù)據(jù)庫。cx_Oracle的最新版本支持Oracle 12和Python 3。在cx_Oracle版本8.0之后,支持將JSON數(shù)據(jù)直接存入Oracle數(shù)據(jù)庫中,而且也能從數(shù)據(jù)庫中取出JSON數(shù)據(jù)并進行相應(yīng)的操作。
import cx_Oracle
#建立連接
conn=cx_Oracle.connect("user/password@hostname:port/service_name")
cur = conn.cursor()
#創(chuàng)建表格
cur.execute('create table json_tab(id number primary key,name varchar2(50),data json)')
#插入數(shù)據(jù)
cur.execute('insert into json_tab(id,name,data) values(1,"test",{ "name":"John", "age":30, "city":"New York"})')
#查詢數(shù)據(jù)
cur.execute('select data from json_tab where id=1')
res = cur.fetchone()
#將數(shù)據(jù)庫中的json數(shù)據(jù)轉(zhuǎn)化為Python的dict數(shù)據(jù)
print(res[0])
#輸出:{'name': 'John', 'age': 30, 'city': 'New York'}
在以上代碼中,我們使用cx_Oracle連接到Oracle數(shù)據(jù)庫,在建立表格后插入一條包含JSON數(shù)據(jù)的記錄,然后查詢這條記錄并將JSON數(shù)據(jù)轉(zhuǎn)化為dict類型的Python數(shù)據(jù)。
通過cx_Oracle的這個特性,我們可以便捷地將JSON類型的數(shù)據(jù)存儲到Oracle數(shù)據(jù)庫中,并且能夠方便地進行查詢及操作。