2011-06-14 5 views
2

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

Например, это 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

выглядит как во втором случае хранимые процедуры возвращает два набора результатов. первым является сообщение результата выполнения инструкции INSERT – heximal

+0

Я этого не осознавал. Ты прав. +1 – cbmeeks

ответ

6

Случайные мысли: попробуйте добавить 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. Первый не имеет никакого специального набора результатов.

... и бесстыдный штепсель моего вопроса SET NOCOUNT ON usage где разбивающихся ORMs и такие упомянута из-за этого

+1

BAM! Вот и все. +100000, если бы мог. Спасибо – cbmeeks

+0

приятно поймать! sql-сервер ftf – angryip

Смежные вопросы