cancel
Showing results for 
Search instead for 
Did you mean: 

Poblema Ejecución SP en Query Manager para Busqueda Formateada

jonathanziga
Explorer
0 Kudos
674

Buenos días

Hice un SP corto para hacer una transformación de una cadena de caracteres a SHA1:

ALTER PROCEDURE [dbo].[JZ_CUFESHA]

@Docnum int = 0

AS
BEGIN

SET NOCOUNT ON;

DECLARE @HashThis nvarchar(4000)
SET @HashThis = CONVERT(nvarchar(4000),(SELECT U_CUFE FROM OINV WHERE DOCNUM = @Docnum))
SELECT HASHBYTES('SHA1', @HashThis)

END

Al ejecutarlo en SQL Server Manager, funciona correctamente; sin embargo al intentarlo ejecutar desde el QueryManager

/*select from [dbo].[OINV] t0*/
declare @CUST INT
/* where*/
set @CUST = /* t0.U_CUFE */ (SELECT $[OINV.Docnum])

EXEC JZ_CUFESHA @CUST

Arroja el siguiente error:

1). [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near 'OINV.Docnum'. 2). [Microsoft][SQL Server Native Client 11.0][SQL Server]Statement '' (SWEI) (s) could not be prepared.

Ven algo mal escrito en la sintaxis o les ha pasado alguna vez lo mismo? (Ya intenté correr la función HASHBYTES directamente desde el QM, pero también marca error)

Accepted Solutions (1)

Accepted Solutions (1)

ogallegosv
Explorer

Hola Jonathan:

La funcion HASHBYTES, devuelve un valor VARBINARIO, el cual no es reconocido naturalmente por el SAP.

En tu SP, deberías de convertir el resultado del HASH así: SELECT CONVERT(VARCHAR(MAX),HASHBYTES('SHA1', @HashThis),1)

De esta forma obtendras el resultado como texto, el cual si es un valor reconocible por SAP.

Slds,

Oscar.

jonathanziga
Explorer
0 Kudos

Oscar PERFECTO!!!

Llevaba varios intentos intentando solucionar esto y era nada mas una conversión de tipo de datos, definitivamente el que sabe sabe!!!

Muchas gracias por la respuesta!!

Answers (2)

Answers (2)

ogallegosv
Explorer
0 Kudos

Hola,

Lo mejor es almacenarlo en un campo de texto adecuado para el tamaño potencial que pueda tener el resultado que puedas recibir, si en el futuro lo vas a utilizar en su formato original, debes tener en cuenta cambiarlo en la ejecucion de la consulta o aplicacion.

Slds,

Oscar.

jonathanziga
Explorer
0 Kudos

Una pregunta adicional Oscar, còmo puedo almacenar ese campo VARBINARIO en un campo de usuario en SAP, pues la respuesta almacenada del campo aparece en NULL (uso el campo LONGTEXT) a pesar que en el documento (factura) se ve el valor correctamente pero no lo almacena la base de datos.

Saludos