Python讀寫Oracle的BLOB類型

      網友投稿 1232 2025-04-01

      假定Oracle的表結構是這樣的:


      CREATE TABLE aurora( date_forecast VARCHAR2(10), filename VARCHAR2(24), content BLOB );

      1

      2

      3

      4

      5

      BLOB寫操作

      現在我有3個python的數據,分別是:

      date_forecast = ‘2011-06-29’ filename = ‘aurora.jpg’’ file = open('aurora.jpg', 'rb')’ content = fp.read() fp.close()

      1

      2

      3

      4

      5

      網上的資料說,插入包含blob的記錄,需要先插入空的blob對象,然后再update該記錄——這意味著,一次INSERT操作,至少要訪問3次數據庫。但是,這里面有個問題無法解決:python如何給Oracle的blob對象賦值?仔細閱讀Oracle的文檔,發現在SQL語句中,可以使用冒號(:)來定義變量,而cx_Oracle模塊中也的確有cx_Oracle.BLOB對象。至此,可以整理出這樣的一個思路:

      sqlStr = "INSERT INTO aurora (date_forecast, filename, content) VALUES ('%s', '%s', :blobData)" % (date_forecast, filename)

      1

      請注意blobData前邊的冒號,是定義了一個叫做blobData的Oracle變量。然后:

      cursor.setinputsizes(blobData=cx_Oracle.BLOB)

      1

      將blobData變量定義為cx_Oracle.BLOB的實例,終于讓python和Oracle握手了。接下來,就是水到渠成的事情了:

      cursor.execute(sqlStr, {'blobData':content}) cursor.execute('commit')

      1

      2

      BLOB讀操作

      sqlStr = "SELECT date_forecast, filename, content FROM (SELECT date_forecast, filename, content FROM aurora ORDER BY date_forecast DESC) where ROWNUM < 2 " cursor.execute(sqlStr) result = cursor.fetchall()

      1

      2

      3

      此時,result[0][2]就是BLOB對象,python如何操作它呢?

      print dir(cx_Oracle.BLOB)

      1

      發現cx_Oracle.BLOB有一個read方法:

      print type(result[0][2].read())

      1

      終于看到熟悉的str類型,搞定!

      file = open('aurora.jpg', "wb") file.write(result[0][2].read()) file.close()

      1

      2

      3

      Python讀寫Oracle的BLOB類型

      Oracle Python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:WPS演示中倒計時滾動條的制作方法
      下一篇:怎么打出分數線(電腦上怎么打出分數線)
      相關文章
      亚洲色av性色在线观无码| 国产91精品一区二区麻豆亚洲| 亚洲无人区一区二区三区| 亚洲成av人在线观看网站| 亚洲情A成黄在线观看动漫软件| 亚洲精品电影天堂网| 老司机亚洲精品影院无码| 久久91亚洲精品中文字幕| 亚洲av福利无码无一区二区| 国产v亚洲v天堂无码网站| 亚洲AV无码专区电影在线观看| 亚洲欧洲美洲无码精品VA| 亚洲精品无码MV在线观看| 亚洲乱亚洲乱妇无码麻豆| 亚洲精品你懂的在线观看| 亚洲色精品vr一区二区三区| 亚洲精品字幕在线观看| 亚洲成AV人片在线观看无码 | 亚洲av无码国产精品夜色午夜 | 精品亚洲456在线播放| 国产99在线|亚洲| 久久国产亚洲精品| 亚洲gay片在线gv网站| 亚洲av乱码中文一区二区三区| 麻豆亚洲AV成人无码久久精品 | 亚洲成AV人片在线观看WWW| 亚洲精品亚洲人成人网| 久久精品国产96精品亚洲| 久久99国产亚洲精品观看| 亚洲色欲www综合网| 亚洲一区在线免费观看| 亚洲精品成a人在线观看夫| 在线亚洲v日韩v| 浮力影院亚洲国产第一页| 国产精品亚洲片在线观看不卡 | 亚洲高清不卡视频| 亚洲国产午夜电影在线入口| 亚洲AV日韩综合一区尤物| 亚洲爆乳无码精品AAA片蜜桃| 成人亚洲网站www在线观看| 国产亚洲美女精品久久久2020 |