日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

用什么方式链接oracle数据库,使用cx_Oracle 连接oracle数据库的几种方式

發布時間:2025/4/5 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用什么方式链接oracle数据库,使用cx_Oracle 连接oracle数据库的几种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

連接oracle數據庫的幾種方式: 語法: cx_Oracle.connect('username','pwd','IP/HOSTNAME:PORT/TNSNAME') import cx_Oracle db1=cx_Oracle.

連接數據庫的幾種方式:

語法:cx_Oracle.connect('username','pwd','IP/HOSTNAME:PORT/TNSNAME')

import?cx_Oracle

db1=cx_Oracle.connect('yang','yang','127.0.0.1:1523/yangdb')

db2=cx_Oracle.connect('yang/yang@127.0.0.1:1523/yangdb')

對于dsn 方式:makedsn(IP/HOST,PORT,TNSNAME)

dsn=cx_Oracle.makedsn('127.0.0.1','1523','yangdb')

db3=cx_Oracle.connect('yang','yang',dsn)

例子:oracle@rac3:/home/oracle/python>vim?conndb4.py

import?cx_Oracle

username?=?"yang"

pwd?=?"yang"

--建立連接dsn=cx_Oracle.makedsn('127.0.0.1','1523','yangdb')

db1=cx_Oracle.connect(username,pwd,dsn)

--獲取游標cursor?=?db1.cursor()

--執行查詢sql?=?"select?*?from?tab"

cursor.execute(sql)

--獲取數據 ,可以有多種方式 fetchall(),fetchmang(N)(N 為正整數),fetchone()result?=?cursor.fetchall()

count?=?cursor.rowcount

print?"====================="

print?"Total:",?count

print?"====================="

for?row?in?result:

print?row

cursor.close

db1.close()

oracle@rac3:/home/oracle/python>python?conndb4.py

=====================

Total:?9

=====================

('BIG_TABLE',?'TABLE',?None)

('BIN$sgD3dAkmWHfgQPoK8Qcq3Q==$0',?'TABLE',?None)

('BIND',?'TABLE',?None)

('IM_SMS_ADD_FRIEND',?'TABLE',?None)

('PARALTAB',?'TABLE',?None)

('T1',?'TABLE',?None)

('T2',?'TABLE',?None)

('T3',?'TABLE',?None)

('T4',?'TABLE',?None)

1 ?分析: cx_Oracle.Cursor.parse([statement]) 在執行語句之前對其進行驗證,當此類語句檢測出錯誤的時候,會引發DatabaseError異常

2 執行a?cx_Oracle.Cursor.execute(statement,[parameters],**keyword_parameters)

此方法可以接受單個參數--一條sql語句直接針對數據庫來運行。通過parameters或keyword_parameters 參數賦值的綁定變量可以指定為字典,學列或者一組關鍵字參數。如果已經提供了字典或關鍵字參數,那么這些值將與名稱綁定。如果給出的是序列,將根據這些值的位置對他們進行解析。如果是查詢操作,此方法返回一個變量對象列表;如果不是則返回None

b cx_Oracle.Cursor.executemany(statement,parameter) 對于批量插入尤其有用,因為操作的數量限制為僅僅一個。

3 獲取 僅僅適用于查詢--DDL,DCL 語句不返回結果。在不執行查詢的游標上,這些方法將引發InterfaceError異常

3.1 cx_Oracle.Cursor.fetchall() 以字節組列表形式獲取結果集中的所有剩余行,如果沒有剩余行。它返回一個空白列表。獲取操作可以通過設置游標的arraysize 屬性進行調整,該屬性可以設置在每個底層請求中從數據庫中返回的行數。arraysize 的設置越高,需要在網絡中往返傳輸的次數越少,arraysize 的默認值為1.

3.2 cx_Oracle.Cursor.fetchmany(N) 從數據庫中獲取N行。默認為arraysize的值。如果N的值大于獲取到的行的數目,該方法獲取的行數是真實的行數。oracle@rac3:/home/oracle/python>cat?conndb2.py

import?cx_Oracle

username?=?"yang"

pwd?=?"yang"

db1=cx_Oracle.connect(username,pwd,'127.0.0.1:1523/yangdb')

cursor?=?db1.cursor()

sql?=?"select?*?from?tab"

cursor.execute(sql)

result?=?cursor.fetchmany(5)

oracle@rac3:/home/oracle/python>python?conndb2.py

=====================

Total:?5

=====================

('BIG_TABLE',?'TABLE',?None)

('BIN$sgD3dAkmWHfgQPoK8Qcq3Q==$0',?'TABLE',?None)

('BIND',?'TABLE',?None)

('IM_SMS_ADD_FRIEND',?'TABLE',?None)

('PARALTAB',?'TABLE',?None)

3.3cx_Oracle.Cursor.fetchone()?獲取一個行數據,單個字節組。如果無剩余行則返回none。

oracle@rac3:/home/oracle/python>cat?conndb2.py

import?cx_Oracle

username?=?"yang"

pwd?=?"yang"

db1=cx_Oracle.connect(username,pwd,'127.0.0.1:1523/yangdb')

cursor?=?db1.cursor()

sql?=?"select?*?from?tab"

cursor.execute(sql)

result?=?cursor.fetchmany(1)

count?=?cursor.rowcount

print?"====================="

print?"Total:",?count

print?"====================="

for?row?in?result:

print?row

cursor.close

db1.close()

oracle@rac3:/home/oracle/python>python?conndb2.py

=====================

Total:?1

=====================

('BIG_TABLE',?'TABLE',?None)

4 綁定變量模式 cx_Oracle 支持oracle綁定變量的特性bind_val={'dept_id':20,'sal':700}

query1=cursor.execute('select?*?from?emp?where?deptno=:dept_id?and?salary>:sal',bind_val)

query2=cursor.execute('select?*?from?emp?where?deptno=:dept_id?and?salary>:sal',bind_val,dept_id=20,sal=700)

可以使用print?coursor.bindnames()來查看綁定變量的值。

oracle@rac3:/home/oracle/python>python?conndb4.py

=====================

Total:?5

=====================

(7369,?'SMITH',?'CLERK',?7902,?datetime.datetime(1980,?12,?17,?0,?0),?800.0,?None,?20)

(7566,?'JONES',?'MANAGER',?7839,?datetime.datetime(1981,?4,?2,?0,?0),?2975.0,?None,?20)

(7788,?'SCOTT',?'ANALYST',?7566,?datetime.datetime(1987,?4,?19,?0,?0),?3000.0,?None,?20)

(7876,?'ADAMS',?'CLERK',?7788,?datetime.datetime(1987,?5,?23,?0,?0),?1100.0,?None,?20)

(7902,?'FORD',?'ANALYST',?7566,?datetime.datetime(1981,?12,?3,?0,?0),?3000.0,?None,?20)

bind_val={'dept_id':20,'sal':700}

cursor.execute('select?*?from?emp?where?deptno=:dept_id?and?sal>:sal',bind_val)

該過程使用的變量為:

['DEPT_ID',?'SAL']

該文由職坐標整理并發布,了解更多相關內容,請關注職坐標Oracle數據庫頻道!

總結

以上是生活随笔為你收集整理的用什么方式链接oracle数据库,使用cx_Oracle 连接oracle数据库的几种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人国产欧美 | 97热视频| 日韩精品毛片 | 无码人妻aⅴ一区二区三区日本 | 2018中文字幕在线观看 | 69xxxx国产| 国产一区二区三区视频免费观看 | 美女爱爱爱 | 中文永久免费观看 | 欧美第十页 | 欧美黄色成人 | 欧美特一级 | 免费在线观看黄视频 | 亚洲欧美日韩成人在线 | 欧美性猛交性大交 | 老司机深夜视频 | 综合激情网五月 | 日本大尺度做爰呻吟 | 玖玖玖视频 | 久久久久精 | 中文av字幕 | 少妇一级淫免费放 | 日本乱淫视频 | 成人 黄 色 免费播放 | 麻豆高清免费国产一区 | 日本啪啪啪一区二区 | 四虎永久在线精品免费网址 | 无码人妻丰满熟妇啪啪网站 | 日韩首页 | 91网址在线播放 | 在线观看国产区 | 欧美性另类 | 黄色片网站免费在线观看 | 娇妻高潮浓精白浆xxⅹ | 日韩福利电影在线 | 中国美女黄色一级片 | javxxx| 激情六月婷婷 | 九九热综合 | 一区二区三区在线不卡 | 女生扒开尿口 | 精品人妻av在线 | 成人在线免费电影 | 国产chinese男男网站大全 | 91在线在线| 欧美一级在线看 | 亚洲美女在线观看 | 欧美最猛黑人xxxx | 懂色aⅴ国产一区二区三区 亚洲欧美国产另类 | 婷婷丁香一区二区三区 | 狠狠干网址 | 啪网站| 国产精品毛片视频 | 9999热视频 | 香蕉久久影院 | 国产精品一区二区在线 | www 在线观看视频 | 国产网红主播精品av | 欧美成人精品一区二区免费看片 | 香蕉久久夜色精品 | 男人捅爽女人 | 亚洲视频网址 | 看片网站在线观看 | 久久三| 碧蓝之海动漫在线观看免费高清 | 人成在线观看 | 天堂中文字幕在线 | 中文字幕亚洲第一 | 色综合久久精品亚洲国产 | 日韩欧美一区二区三区免费观看 | 久久大胆人体 | 全国男人的天堂网 | 天天躁日日躁狠狠躁av | 99热超碰 | 日韩精品久久久久久久 | 国产精品福利影院 | 国产视频在线观看网站 | 天天艹天天射 | 视频二区欧美 | 久久激情片 | 久久久久蜜桃 | 91精品国产综合久久福利软件 | 色黄视频网站 | free性欧美hd另类 | 无码人妻丰满熟妇啪啪 | 中文字幕激情小说 | 天天射夜夜撸 | 国产成人精品777777 | 亚洲高清资源 | 97综合网| 日韩在线一区二区三区 | 精品99视频 | 久久成人a毛片免费观看网站 | 国产精品久久久久久久久久直播 | 韩国成人理伦片免费播放 | 久久国产色av | 亚洲视频在线观看一区 | 国产小视频91 | 亚洲久久久久 |