powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема в процедуре с exec-ом
8 сообщений из 8, страница 1 из 1
Проблема в процедуре с exec-ом
    #32063406
AlexKaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть процедура, которая вызывают процедуру GetPropertyValue передает все необходимые параметры, та в свою очередь тоже принимает все нормально

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE PROCEDURE GetPropertyValue (@unitID int, @viewName varchar( 100 ), @viewProp varchar( 100 ), @tier int out)
AS

declare @unitIDvar varchar( 10 )
set @unitIDvar = convert(varchar( 10 ), @unitID)

declare @set varchar( 1000 )

set @set = 'declare @tier int set @tier = (select ' + @viewProp + ' from ' + @viewName  + ' where DU_ID = ' + @unitIDvar + ')'

exec (@set)

GO


Мне нужно вернуть параметр @tier обратно в процедуру
По идеи после выполнения этой процедуры я должен получить значение @tier = 3, но я получаю пустоту!
Подскажите, что не так!
...
Рейтинг: 0 / 0
Проблема в процедуре с exec-ом
    #32063414
mishgan2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вызов процедуры должен быть таким (обрати внимание на слово OUTPUT):
EXEC GetPropertyValue @unitID, @viewName, @viewProp, @tier OUTPUT
...
Рейтинг: 0 / 0
Проблема в процедуре с exec-ом
    #32063417
mishgan2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, когда писал предыдущий ответ - невнимательно прочитал вопрос.
Ответ такой:
вместо EXEC используй SP_EXECUTESQL
...
Рейтинг: 0 / 0
Проблема в процедуре с exec-ом
    #32063428
AlexKaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
А какая разница между out и output?

На счет SP_EXECUTESQL

Он пишет ошибку:

Код: plaintext
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
...
Рейтинг: 0 / 0
Проблема в процедуре с exec-ом
    #32063432
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FAQ ]
...
Рейтинг: 0 / 0
Проблема в процедуре с exec-ом
    #32063442
Фотография Chicago
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короткий пример

Код: plaintext
1.
2.
declare @rc int
execute sp_executesql  N'select top 1 @rc=rc from theTable', N'@rc int out', @rc=@rc out
print @rc


По поводу ошибки. Все ж написано в сообщении... Просто делаешь

Код: plaintext
declare @statement nvarchar( 1000 )


nvarchar, а не varchar. sp_executesql рассчитана на Unicode (См. в примере на букву N перед открывающими кавычками в строковых константах).
...
Рейтинг: 0 / 0
Проблема в процедуре с exec-ом
    #32063456
mishgan2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>>А какая разница между out и output?
Никакой. OUT сокращение. Типа как
EXEC <=> EXECUTE
...
Рейтинг: 0 / 0
Проблема в процедуре с exec-ом
    #32063530
AlexKaz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем большое спасибо за участие, мне помог SP_EXECUTESQL! Теперь всё работает
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема в процедуре с exec-ом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]