Поддерживает ли JPA 2.0 переменные таблицы SQL Server?

Я использую JPA 2.0 и SQL Server 2008, и я решил, что JPA не любит мои хранимые процедуры, когда я использую переменную таблицы.

Например, этот sproc работает:

declare @t table
(
    id      int identity
,   test    varchar(50)
)

select 'blah' as test  -- I'm ignoring the table variable above

Однако, когда я пытаюсь вставить что-то в переменную таблицы @t с этим кодом, он сбой:

declare @t table
(
    id      int identity
,   test    varchar(50)
)

insert into @t
    select cast(getdate() as varchar(60))

select * from @t

Я получаю следующую ошибку:

Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.2.v20100323-r6872):    org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.
Error Code: 0

Мне бы очень хотелось переписать мои сложные sprocs, чтобы не использовать переменные таблицы, если я могу помочь.

Спасибо за любые предложения.

Ответы

Ответ 1

Случайная мысль: попробуйте добавить SET NOCOUNT ON.

Ваш код

insert into @t
    select cast(getdate() as varchar(60))

select * from @t

... вернет это значение

(1 row(s) affected)
id          test
----------- --------------------------------------------------
1           Jun 14 2011  3:58PM

(1 row(s) affected)

Существуют фактические три результата "элементы" из SQL Server. Первый не имеет никакого специального набора результатов.

... и бесстыдную вставку моего вопроса УСТАНОВИТЬ НАСТОЯЩЕЕ НАСТОЯЩЕЕ НАСТОЯЩЕЕ ВРЕМЯ использования, где разрываются ORM и это упоминается из-за этого