NHibernate вызывает хранимую процедуру Oracle с префиксом схемы, как? - PullRequest
1 голос
/ 26 июля 2010

У меня есть хранимая процедура вызова NHibernate в Oracle, работающая в настоящее время.Однако, как мне указать префикс схемы в синтаксисе {call} в теге?

Я пытался

<sql-query name="my_sproc">
<return class="my_sproc_class" />
    {call schema2.my_sproc (:p1)}
</sql-query>

Но во время выполнения NHibernate вернулся с 'schema2', не определенным в то время как'schema2' - это определенно определенная схема в моей базе данных Oracle.

спасибо.

Ответы [ 2 ]

0 голосов
/ 28 июля 2010

Я могу ошибаться, но я подумал, что NHibernate требует, чтобы все UDF / SPROCS были снабжены префиксом "dbo"; {call dbo.schema2.my_sproc (:p1)} работает?

0 голосов
/ 27 июля 2010

Это могут быть привилегии?Процедура может существовать в этой схеме, но у вас могут не быть привилегий для ее выполнения, или у вас могут быть привилегии через роль, которая не включена.

Может быть параметрами.Если процедура ожидает два параметра (или является функцией), то попытка вызвать ее с одним может привести к ошибке «Не существует», когда это действительно означает «Нет такого, который я могу вызвать только с одним параметром».

Последний вариант - если в вашей схеме есть пакет с тем же именем, что и у другой схемы.Может случиться с чем-то общим, как «UTILS».Если вы попросите Oracle выполнить UTILS.PROC и у вас будет пакет UTILS, он будет смотреть в этом пакете и выдаст ошибку, если не найдет ее, даже если существует схема UTILS с процедурой PROC.


Отредактировано для добавления

В этом случае я склоняюсь к проблеме параметров. Пример здесь , кажется, использует?в качестве заполнителя параметра.

...