Oracle
 sql >> база данни >  >> RDS >> Oracle

Връща променлива на курсора на съхранена процедура в cx_oracle

Извикването на процедура приема последователност като параметър и също връща последователност.

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

Така че можете да получите достъп до върнатия курсор чрез индекс :

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

или

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

След това можете да отпечатате резултата с for цикъл

for line in ret_cursor:
    print line

или с print ret_cursor.fetchall() , или с pprint инструмент, ако е необходимо.

В документацията сте свързали, върнатата стойност се разопакова директно в l_query и l_emp :

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

Между другото, може да се наложи да затворите върнатия курсор в края със същия метод като основния курсор:ret_cursor.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 Когато има множество съвпадения?

  2. Използване на OracleParameter с C# TimeSpan - Литералът не съвпада

  3. Как работи сумата с условен оператор за регистър в sql

  4. Sql заявка с изпълнение на променливи за свързване в Jdbc

  5. (Oracle SQL) Прихващане на уникална грешка в ограничението