Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ошибка при вызове ХП через BCP  [new]
Easygoing
Member

Откуда: SPB.RU
Сообщений: 560
Коллеги, здравствуйте.
У меня есть ХП создающая временную таблицу и производящая из нее выборку

if not object_id('[tempdb]..##GISRU05') is null
drop table [tmp].##GISRU05

declare @table nvarchar(150)
set @table = '##GISRU05'

declare @p varchar(150)
set @p = 'StartDate;' + convert(varchar,@date1,104) + ';EndDate;' + convert(varchar,@date2,104)

exec clr.p_1c_data_get_with_params @QueryName='Incomes', @tablename = @table, @prms=@p, @result = @table out

bla-bla-bla


Процедура прекрасно работает в Managment Studio, однако, стоит ее вызвать через BCP появляется следующая ошибка:

Executed as user: SQLState = S0002, NativeError = 208  Error = [Microsoft][SQL Native Client][SQL Server]Invalid object name '##GISRU05'.  Process Exit Code 1.  The step failed.

Буду очень признателен за помощь в решении проблемы.
31 мар 09, 11:57    [6997758]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при вызове ХП через BCP  [new]
Glory
Member

Откуда:
Сообщений: 104760
А вы смотрели в Профайлере, что делает bcp перед выполнением процедуры ?
Посмотрите - будет интересно
31 мар 09, 12:01    [6997817]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при вызове ХП через BCP  [new]
Easygoing
Member

Откуда: SPB.RU
Сообщений: 560
Подозреваю дело в этом:

declare @p1 int
set @p1=1
exec sp_prepare @p1 output,NULL,N'exec orderstables.jpn.p_gisru05',1
select @p1

Msg 8179, Level 16, State 2, Procedure sp_prepare, Line 1
Could not find prepared statement with handle 1.

Но как это побороть?
31 мар 09, 12:06    [6997876]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при вызове ХП через BCP  [new]
Glory
Member

Откуда:
Сообщений: 104760
Easygoing
Подозреваю дело в этом:

declare @p1 int
set @p1=1
exec sp_prepare @p1 output,NULL,N'exec orderstables.jpn.p_gisru05',1
select @p1

Msg 8179, Level 16, State 2, Procedure sp_prepare, Line 1
Could not find prepared statement with handle 1.

Но как это побороть?

Дело в том, что утилита bcp желает заранее знать структуру возвращаемых данных. Потому что по ней она создает выходной файл.
Так что самым правильным способом борьбы будет такой, при котором ваша процедура будет правильно сообщать информацию о выходном наборе
В данном случае придется избавляться от временных таблиц, если они участвуют в формировании выходного набора
31 мар 09, 12:13    [6997930]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при вызове ХП через BCP  [new]
Easygoing
Member

Откуда: SPB.RU
Сообщений: 560
Огромное спасибо. Пришлось на предыдущем шаге job создавать суррогатную таблицу, т.к. временную таблицу из ХП, как слова из песни не выкинуть :)
31 мар 09, 13:18    [6998525]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при вызове ХП через BCP  [new]
Сторонний Гость
Guest
Доброго времени суток.
Сейчас тоже борюсь с BCP, но уже по другой причине.
По Вашей причине, по моему, актуально следующее
http://support.microsoft.com/kb/952723/en-us/
18 дек 09, 18:38    [8088964]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить