2016-09-19 3 views
0

Мой сценарий, как показано нижеКак отлаживать ошибку хранимой процедуры «Процедура или функция« X »ожидает параметр« @Y », который не был указан»?

ALTER Procedure [dbo].[spSearch_Stock] 
    (@KeyW varchar(50), 
    @Empty int) 
AS 
BEGIN 
    SET @Empty = (SELECT COUNT(Customer) FROM tbl_Stock) 

    IF @Empty > 0 
     SELECT 
      StockID, Abb, LotNo, InvoiceNo, TeaState, Customer, Broker, 
      TeaGrade, Pkgs, NetWeight, TotWeight, PriceUSD, CurrencyRate, 
      TotalAmtUSD, BrokerageUSD 
     FROM 
      tbl_Stock 
     WHERE 
      (Abb) LIKE '%'[email protected]+'%' 
     ORDER BY 
      StockID ASC, Abb ASC 
    ELSE 
     SELECT 
      'null' as StockID, 'null' as Abb, 'null' as LotNo, 
      'null' as InvoiceNo, 'null' as TeaState, 'null' as Customer, 
      'null' as Broker, 'null' as TeaGrade, 'null' as Pkgs, 
      'null' as NetWeight, 'null' as TotWeight, 
      'null' as PriceUSD, 'null' as CurrencyRate, 
      'null' as TotalAmtUSD, 'null' as BrokerageUSD 
END 

Я получаю эту ошибку:

Procedure or function 'spSearch_Stock' expects parameter '@Empty', which was not supplied

+1

Возможно, вы вызываете свой SP с передачей двух параметров. – TheGameiswar

+0

Пометьте используемые вами dbms. (Это специфичный для продукта SQL.) – jarlh

+0

Oops @marc_s, просто необходимо отремонтировать заголовок - вы извлекли полезный бит и оставили «пожалуйста, помогите мне с ошибкой» ';-)' – halfer

ответ

0

Ваша хранимая процедура имеет два параметра и вы, кажется, не проходит как ..

Далее я вижу тебя устанавливают @Empty в запросе независимо от пройденного значения, поэтому я предлагаю изменить хранимую процедуру, как показано ниже:

ALTER Procedure [dbo].[spSearch_Stock] 
    (@KeyW varchar(50)) 
AS 
BEGIN 
    Declare @empty int 

    select @empty = COUNT(Customer) FROM tbl_Stock 

    -- Body of stored procedure 
END 
Смежные вопросы