#oracle #nhibernate #stored-procedures
#Oracle #nhibernate #хранимые процедуры
Вопрос:
Работает ли хранимая процедура с NHibernate для возврата выходного параметра / ref_cursor или мне нужно написать функцию для этого.Потому что она работает с функцией, а не с сохраненным процессом
@Diego: Файл сопоставления
< ?xml version=»1.0″ encoding=»utf-8″ ?>
< hibernate-mapping xmlns=»urn: nhibernate-mapping-2.2″>
< имя класса= «DomainObject.Employee,DomainObject» таблица =»Employee»>
< id name=»EmployeeID» столбец = «Emp_ID» тип = «int» несохраненное значение =»0 «>
< класс генератора=»native»>
< /generator>
< /id>
< имя свойства= «EmployeePassword», столбец=»EMP_PASSWORD», тип =»string»/>
< имя свойства=»EmployeeName», столбец=»EMP_NAME», тип=»string»/>
< имя свойства=»TeamAssociatedWith», столбец=»TEAM_ASSOCIATED_WITH», тип =»int»/>
< имя свойства= «IsCaptain», столбец= «IS_CAPTAIN», тип=» строка»/>
< имя свойства=»NumberOfMOM» столбец=»NO_OF_MOM» тип=»int»/>
< имя свойства= «Баланс» столбец= «БАЛАНС» тип =»int»/>
< / class>
< имя sql-запроса=»selemployee», вызываемый=»true» >
< возвращаемый класс=»DomainObject.Employee,DomainObject»>
< возвращаемое имя свойства= столбец «EmployeeID»=»Emp_ID»/>
< возвращаемое имя свойства = столбец «EmployeeName» =»EMP_NAME»/>
< возвращаемое имя свойства = столбец «EmployeePassword»= «EMP_PASSWORD»/>
< возвращаемое имя свойства=»TeamAssociatedWith» столбец=»TEAM_ASSOCIATED_WITH»/>
< возвращаемое имя свойства= «IsCaptain» столбец =»IS_CAPTAIN»/>
< возвращаемое имя свойства= «NumberOfMOM» столбец = «NO_OF_MOM»/>
< возвращаемое имя свойства= «Balance» столбец = «БАЛАНС»/>
< /return>
{ ? = вызвать GETPERSONTEST}
< /sql-query>
< /hibernate-mapping>
Хранимая процедура Oracle
создать или заменить процедуру GETPERSONTEST(io_cursor out SYS_REFCURSOR)
— ЭТО
НАЧАТЬ
ОТКРЫВАТЬ io_cursor Для ВЫБОРА EMP_ID, EMP_NAME, EMP_PASSWORD, TEAM_ASSOCIATED_WITH, IS_CAPTAIN, NO_OF_MOM, BALANCE ОТ employee ;
ЗАВЕРШИТЬ GETPERSONTEST;
Ответ №1:
курсор out ref: да.
Что-нибудь еще: нет.
Смотрите http://www.nhforge.org/doc/nh/en/index.html#querysql-limits-storedprocedures
Комментарии:
1. Это моя процедура в Oracle ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: создать или заменить процедуру test(p_cursor OUT SYS_REFCURSOR) — это начать открывать p_cursor Для ВЫБОРА EMP_ID, EMP_NAME, EMP_PASSWORD, TEAM_ASSOCIATED_WITH, IS_CAPTAIN, NO_OF_MOM, BALANCE ОТ employee ; завершить тест; При вызове он выдает ORA-06550: строка 1, столбец 15: NPLs-00306: неверно количество или типы аргументов в вызове ‘TEST’nORA-06550
2. @anupam: добавьте свои сопоставления к вопросу
3. Обновленный вопрос с процедурой сопоставления и сохранения в Oracle 10g
4. Большое спасибо, теперь она работает нормально. способ вызова был неправильным, это было {? = вызов GETPERSONTEST} который должен быть { вызов GETPERSONTEST }