Переместить данные из внешней таблицы в основную таблицу с помощью процедуры - PullRequest
1 голос
/ 09 июля 2019

Если я передаю значения вручную вместо использования переменных, код работает.Но когда я передаю параметры в процедуру, тот же код не работает.

ALTER PROC [OPTI].[Refreshfinal_GetAllActions] @RunDate [Varchar],@CN [Varchar] AS 
begin
begin tran
print 'deleteing records from Stage_GetAllActions'
delete from Opti.[Stage_GetAllActions] where Input_Date = @RunDate AND Country = @CN
print 'inserting records into Stage_GetAllActions'
insert into Opti.[Stage_GetAllActions]
select distinct
case when ltrim(rtrim(Country)) ='' then null else Country end,
case when ltrim(rtrim(Etl_Batch)) ='' then null else Etl_Batch end,
case when ltrim(rtrim(Input_Date)) ='' then null else Input_Date end,
case when ltrim(rtrim(ActionID)) ='' then null else ActionID end,
case when ltrim(rtrim(ActionName)) ='' then null else ActionName end,
case when ltrim(rtrim(Api_Executed_Datetime)) ='' then null else Api_Executed_Datetime end
from [Opti].[Ext_Stage_GetAllActions]
where Input_Date = @RunDate AND Country = @CN;
commit tran
end 

Ожидается, что код перенесет данные из внешней таблицы в таблицу базы данных.

Но этодает 0 затронутых строк, даже если во внешней таблице есть данные

1 Ответ

1 голос
/ 09 июля 2019

Может произойти неявное усечение, попробуйте явно определить размер параметров varchar, например.@RunDate [Varchar] (30), @ CN [Varchar] (100).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...