Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, bom dia!!
Estou com um problema e queria ver se podem me ajudar!!
Criei um PROC que recebe um parametro text, joga em uma table pra que eu use esse valor dentro do IN, pois o mesmo não aceita o tipo text.
Até ai, tudo bem!! Se eu executo a proc no SQL Server ele retorna a tabela com o resultado!!
Minha PROC
CREATE PROCEDURE [dbo].[AvaliacaoDesempenhoProcuraAvaliacao]
(
@PalavraChave varchar(100),
@IDAreas text
)
AS
BEGIN
DECLARE @INNER_Area varchar(100)
DECLARE @Nome_Area varchar(100)
IF datalength(@IDAreas) > 0
CREATE TABLE #Table (id varchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS)
BEGIN
WHILE charindex(',',@IDAreas) > 0
BEGIN
INSERT INTO #Table VALUES (substring(@IDAreas,0,charindex(',',@IDAreas)))
SET @IDAreas = substring(@IDAreas,charindex(',',@IDAreas)+1,datalength(@IDAreas))
END
INSERT INTO #Table VALUES (@IDAreas)
set @INNER_Area = 'INNER JOIN PESSOAL AS PE2 ON(PE2.ID = U.IDUsuario)'
set @Nome_Area = 'WHERE PE2.AREA IN(SELECT id FROM #Table)'
END
exec ('SELECT
DISTINCT AD.IDAvaliacao,
U.NOUsuario,
convert(char,DTInicio,105) AS DTInicio,
AD.IDAvaliado,
AD.IDAvaliador,
CASE WHEN NOT EXISTS(SELECT TOP 1 convert(varchar,IDFase+1) AS IDFase FROM TBAvaliacaoCompetenciaIndicadorUsuario WHERE IDAvaliacaoIndicador IN(
SELECT IDAvaliacaoIndicador FROM TBAvaliacaoCompetenciaIndicador WHERE IDAvaliacao = AD.IDAvaliacao)
ORDER BY IDFase DESC)
THEN ''0'' ELSE
CASE WHEN
(SELECT TOP 1 convert(varchar,IDFase+1) FROM TBAvaliacaoCompetenciaIndicadorUsuario WHERE IDAvaliacaoIndicador IN(
SELECT IDAvaliacaoIndicador FROM TBAvaliacaoCompetenciaIndicador WHERE IDAvaliacao = AD.IDAvaliacao)
ORDER BY IDFase DESC) = 4
THEN ''1'' ELSE ''0'' END
END AS STAvaliacao
FROM TBAvaliacaoDesenvolvimento AS AD
INNER JOIN TBUsuarioAvaliacao AS UA ON(UA.ID = AD.IDAvaliado)
INNER JOIN TBUsuario AS U ON(UA.CPF = U.CPF AND UA.DSLogin = U.DSLogin)
'+ @INNER_Area +' '+@Nome_Area)
O problema está quando na DAL eu chamo a proc. Ele fala :"Invalid object name '#Table'.", ou seja... ta retornando a table que estou criando, e não o meu select.
Gente, postei nessa área devido o problema estar sendo no meu projeto que é em C#, espero não ter postado na área errada.rs
Alguém tem uma idéia pra resolver isso?
Desde já eu agradeço!!
Carregando comentários...