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

Trả về một thủ tục được lưu trữ trong biến con trỏ trong cx_oracle

Lệnh gọi đến một thủ tục nhận một chuỗi làm tham số và cũng trả về một chuỗi.

l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
print(type(l_test))
#>>> <class 'list'>

Vì vậy, bạn có thể truy cập con trỏ trả về theo chỉ mục:

ret_cursor = self.__cursor.callproc("prc_get_some_data",[l_cur])[0]

hoặc

l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
ret_cursor = l_test[0]

Sau đó, bạn có thể in kết quả bằng vòng lặp for

for line in ret_cursor:
    print line

hoặc với print ret_cursor.fetchall() hoặc với pprint công cụ nếu cần.

Trong tài liệu bạn đã liên kết, giá trị trả về được giải nén trực tiếp thành l_queryl_emp :

l_query, l_emp = self.__cursor.callproc("PKG_HR.FIND_EMPLOYEES", [p_query, l_cur])

Nhân tiện, bạn có thể cần phải đóng con trỏ trả về ở cuối, với cùng phương thức với con trỏ chính:ret_cursor.close() . Nếu không, nó có thể đưa ra một ngoại lệ về việc không thể đóng kết nối .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. doanh thu trung bình của quý với doanh thu trung bình của quý trước

  2. Oracle Kết hợp nhiều cột thành một

  3. DBMS OUTPUT PUT không in bất kỳ thứ gì

  4. ký tự Ả Rập không được chèn đúng cách (như ????) trong cơ sở dữ liệu oracle?

  5. Các kế hoạch thực thi của Oracle khi sử dụng toán tử LIKE với hàm DETERMINISTIC