Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào để cx-oracle liên kết kết quả của một truy vấn với một từ điển thay vì một tuple?

Bindvars được sử dụng để thực thi truy vấn như

  • Theo tên (đã cho các thông số được đặt tên)

    cursor = self.db.cursor()
    cursor.execute("SELECT bookName, author from books where Id=:bookId" , bookId="155881")
    print cursor.bindnames()
    

sẽ in:['BOOKID']

  • theo vị trí được cung cấp một danh sách các giá trị

    cursor = self.db.cursor()
    cursor.prepare("insert into books (bookId,title,author,price) values(:1, :2, :3, :4)")
    cursor.executemany(None, listOfbookwhichAreTuppleOf4Field )
    

Để đạt được những gì bạn mong đợi, bạn có thể thử một cái gì đó như vậy:

def connect():  
    dsn = cx_Oracle.makedsn("host", 1521, "sid")
    orcl = cx_Oracle.connect('scott/[email protected]' + dsn)
    curs = orcl.cursor()
    sql = "select * from sometable"
    curs.execute(sql)
    desc = [d[0] for d in curs.description]
    result = [dict(zip(desc,line)) for line in curs]
    curs.close()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORACLE / SQL:wm_concat &đặt hàng trước

  2. cách chọn hàng ngẫu nhiên trong oracle nhanh hơn với bảng có hàng triệu hàng

  3. PostgreSQL tương đương với hàm PERCENTILE_CONT của Oracle

  4. Rails 3.0.3 - Oracle_enhanced không hoạt động

  5. varchar2 (n BYTE | CHAR) mặc định -> CHAR hoặc BYTE