SQL SERVER - Inserto dentro de função e CASE
24/10/2017
0
Tenho uma função em SQL que exporta fotos do banco TOTVS:
So que ao tentar recriar a função da um erro logo no insert. Ou seja, nesse trecho:
Alguém sabe me dizer se há como fazer da maneira que preciso ou há outra forma ?
CREATE FUNCTION EXPORTAIMAGEMALUNO(@RA VARCHAR(MAX)) RETURNS VARCHAR(MAX) as BEGIN DECLARE @pctStr INT DECLARE @image VARBINARY(MAX) DECLARE @MENSAGEM VARCHAR(MAX) SET @image= (SELECT IMAGEM FROM GIMAGEM INNER JOIN PPESSOA ON PPESSOA.IDIMAGEM=GIMAGEM.ID INNER JOIN SALUNO ON SALUNO.CODPESSOA=PPESSOa.CODIGO WHERE SALUNo.RA=@RA) DECLARE @filePath VARCHAR(8000) SET @filePath = 'C:\\FOTOS\\pessoa_'+CONVERT(VARCHAR,CONVERT(INT,@RA))+'.jpg' EXEC sp_OACreate 'ADODB.Stream', @pctStr OUTPUT EXEC sp_OASetProperty @pctStr, 'Type', 1 EXEC sp_OAMethod @pctStr, 'Open' EXEC sp_OAMethod @pctStr, 'Write', NULL, @image EXEC sp_OAMethod @pctStr, 'SaveToFile', NULL,@filePath, 2 EXEC sp_OAMethod @pctStr, 'Close' EXEC sp_OADestroy @pctStr SET @MENSAGEM=(SELECT CASE WHEN @IMAGE IS NULL THEN 'ERRO!' ELSE (INSERT INTO [DMPACESSO_V100].[DBO].UNI_FOTOSDIMEP VALUES('pessoa_'+Convert(INT,@RA)+'.jpg',GETDATE())) END) RETURN @MENSAGEM END
So que ao tentar recriar a função da um erro logo no insert. Ou seja, nesse trecho:
SET @MENSAGEM=(SELECT CASE WHEN @IMAGE IS NULL THEN 'ERRO!' ELSE (INSERT INTO [DMPACESSO_V100].[DBO].UNI_FOTOSDIMEP VALUES('pessoa_'+Convert(INT,@RA)+'.jpg',GETDATE())) END)
Alguém sabe me dizer se há como fazer da maneira que preciso ou há outra forma ?
Chromusmaster
Curtir tópico
+ 0
Responder
Post mais votado
24/10/2017
Chromusmaster
Você teria que fazer assim:
Você teria que fazer assim:
IF @IMAGE IS NULL SET @MESSAGE = 'ERRO' ELSE INSERT INTO [DMPACESSO_V100].[DBO].UNI_FOTOSDIMEP VALUES('pessoa_'+Convert(INT,@RA)+'.jpg',GETDATE())
Luiz Santos
Responder
Mais Posts
24/10/2017
Chromusmaster
Vou tentar, mas dessa aneira funciona ? Acredito que não pode ser feito insert dessa maneira dentro de função, pode ?
Responder
Clique aqui para fazer login e interagir na Comunidade :)