반응형
어떻게 하면 cx-oracle이 쿼리 결과를 튜플이 아닌 사전에 바인딩할 수 있습니까?
여기 제 코드가 있습니다.쿼리 결과를 튜플 목록이 아닌 사전 목록으로 반환하는 방법을 찾고 싶습니다.cx_oracle은 설명서의 일부에서 '바인딩'에 대해 언급하면서 이를 지원하는 것 같습니다.어떻게 작동하는지는 알 수 없지만요.
def connect():
dsn = cx_Oracle.makedsn("host", 1521, "sid")
orcl = cx_Oracle.connect('scott/tiger@' + dsn)
curs = orcl.cursor()
sql = "select * from sometable"
curs.execute(sql)
result = curs.fetchall()
for row in result:
print row[13] #CATEGORY field order
print row['CATEGORY'] # <- I want this to work ('CATEGORY' is the name of a field in the 'sometable' table)
curs.close()
바인드바는 다음과 같은 쿼리를 실행하는 데 사용됩니다.
이름별(지정된 매개 변수 지정)
cursor = self.db.cursor() cursor.execute("SELECT bookName, author from books where Id=:bookId" , bookId="155881") print cursor.bindnames()
인쇄 예정: ['BOOKID']
가치 목록이 주어진 위치에 따라.
cursor = self.db.cursor() cursor.prepare("insert into books (bookId,title,author,price) values(:1, :2, :3, :4)") cursor.executemany(None, listOfbookwhichAreTuppleOf4Field )
기대했던 것을 얻기 위해 다음과 같은 방법을 시도할 수 있습니다.
def connect():
dsn = cx_Oracle.makedsn("host", 1521, "sid")
orcl = cx_Oracle.connect('scott/tiger@' + 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()
여기 빠르고 더러운 것이 있습니다.더 나은 방법으로 게시하십시오.
def connect():
dsn = cx_Oracle.makedsn("host", 1521, "sid")
orcl = cx_Oracle.connect('scott/tiger@' + dsn)
curs = orcl.cursor()
sql = "select * from sometable"
curs.execute(sql)
fieldNumber = 0
fieldNames={}
for desc in curs.description:
fieldNames[desc[0]]=fieldNumber
fieldNumber+=1
result = curs.fetchall()
for row in result:
print str(row[fieldNames['CATEGORY']])
curs.close()
언급URL : https://stackoverflow.com/questions/4468071/how-can-i-make-cx-oracle-bind-the-results-of-a-query-to-a-dictionary-rather-than
반응형
'programing' 카테고리의 다른 글
인라인 함수 v. 매크로 in C -- 오버헤드(메모리/속도)는 얼마입니까? (0) | 2023.07.22 |
---|---|
().sum()에 의해 판다 그룹의 출력에서 새 열을 만들려면 어떻게 해야 합니까? (0) | 2023.07.22 |
Mysql/Mariadb 사용자가 여러 데이터베이스에 부여 (0) | 2023.07.22 |
장고 프로젝트에서 from django.conf 가져오기 설정과 가져오기 설정의 차이점은 무엇입니까? (0) | 2023.07.22 |
C의 부동 소수점 데이터 유형 범위는? (0) | 2023.07.22 |