J'essaie de transmettre une valeur de paramètre à une fonction table ayant quatre paramètres et "renvoie la table". Cependant, je reçois l'erreur suivante lorsque je passe une valeur de paramètre à l'une de ses paramètre varchar:Passer un paramètre à une fonction table
Msg 8114, niveau 16, état 5, ligne 6 erreur de conversion de type de données varchar à bigint.
declare @Scenario1 as varchar(30)
set @Scenario1 = '2017_B01'
select *
From [dbo].[fn_GetAEAssumptionFacts](@Scenario1,null,null,null) fng
Glimpse à la fonction:
CREATE FUNCTION [dbo].[fn_GetAEAssumptionFacts]
(
@pScenarioName varchar(500) = NULL
,@pBuildingID varchar(500) = NULL
,@pLeaseID varchar(500) = NULL
,@pTenantName varchar(500) = NULL
)
RETURNS TABLE
AS
RETURN
select
.....
from ae11.dbo.rvw_FinancialLineItems fli
....
INNER JOIN ae11.dbo.rvw_Scenarios s on s.Id = pas.ScenarioId
left join
(select
externalID,
PropertyAssetId,
LeaseID,
BeginDate
from ae11.dbo.ivw_Leases
WHERE PropertyAssetID IN
(select ID from AE11.dbo.PropertyAssets where scenarioID =
(CASE WHEN isnull(@pScenarioName, '') = ''
THEN (select ID from AEX.[dbo].[ConfigurationFieldTable]
where [Type] = 'Lease Connect Current Scenario')
ELSE @pScenarioName
END)
)
) lea
ON lea.LeaseID = uni.ExternalID
AND lea.PropertyAssetID = uni.PropertyAssetId
where 1=1
......
AND s.id = (CASE WHEN isnull(@pScenarioName, '') = ''
THEN (select ID from AEX.[dbo].[ConfigurationFieldTable]
where [Type] = 'Lease Connect Current Scenario')
ELSE @pScenarioName
END)
Merci de m'avoir fait prendre conscience de mon erreur. Le scénarioID est une valeur entière et mon paramètre essaie de passer une valeur varchar. – NonProgrammer