Parámetros SP vs JSON
Contrasta una llamada a un procedimiento con un JSON: claves que faltan, sobran o cambian de tipo.
Funciona por completo en tu navegador. Nada de lo que pegues aquí se envía a ningún sitio.PrivadoProcedimiento almacenado
Cuerpo JSON
Parámetros
Sobre esta herramienta
Pega a la izquierda la llamada al procedimiento almacenado que funciona en la base de datos y a la derecha el cuerpo JSON que recibe tu servicio. Cada @parámetro se empareja con la clave del mismo nombre y el resultado se lista parámetro a parámetro: falta en el JSON, está en el JSON pero el procedimiento no lo recibe, tiene otro tipo —como "100.00" enviado como texto donde la llamada pasa un número— o tiene el mismo tipo con otro valor. Haz clic en una fila para llevarla a la vista en los dos editores.
El lado SQL puede ser una llamada EXEC, una lista suelta de pares @nombre = valor o la firma de un CREATE PROCEDURE, en cuyo caso se comprueban los tipos declarados: un int que recibe un string, un varchar(10) que recibe once caracteres, un datetime que recibe algo que no es una fecha. Una variable pasada como valor toma su tipo de un DECLARE anterior del script; si no hay DECLARE, se marca como no comparable en lugar de darla por buena. Los números se comparan por su valor, así que 100.00 es igual a 100.
Las opciones cubren cómo se diferencian los payloads reales del SQL: «Ignorar @» empareja @s_ssn con s_ssn, «Ignorar mayúsculas» empareja @i_SecCabecera con i_seccabecera e «Ignorar OUTPUT» deja fuera los parámetros que devuelve el procedimiento. Cuando un nombre falta en un lado y en el otro sobra uno parecido, la fila lo sugiere. Los parámetros que faltan se copian como propiedades JSON y las claves sobrantes como argumentos @nombre = valor alineados.
Nada de lo que pegues se transmite. La página es HTML estático y los dos parsers se ejecutan en tu pestaña, así que las llamadas de producción, los números de cuenta y los nombres de clientes de un payload de pruebas no salen de tu dispositivo.
Preguntas frecuentes
¿Se sube mi SQL o mi JSON a algún sitio?
No. La llamada y el JSON se leen y se comparan con JavaScript en tu navegador, y la página no tiene backend al que enviarlos. Sigue funcionando con la red desconectada.
¿Qué hace «Ignorar @»?
Los parámetros de SQL Server empiezan por @ y las claves JSON normalmente no. Con la opción activada, @s_ssn y s_ssn son el mismo nombre; desactivada, la clave del JSON tiene que ser "@s_ssn" para coincidir. Se aplica a los dos lados, así que un cuerpo que ya usa claves con @ coincide en ambos casos.
¿Por qué un parámetro aparece como «No comparable»?
Porque la llamada pasa una variable o una expresión, como @s_date = @w_fecha o getdate(), y su valor solo se conoce al ejecutar el script. El parámetro está en los dos lados, pero su valor no se puede comprobar. Si la variable está declarada en el script pegado, su tipo sí se comprueba.
¿Qué dialectos SQL entiende?
T-SQL tal como lo escriben SQL Server y Sybase: EXEC y EXECUTE, cadenas N'…', nombres entre corchetes, OUT y OUTPUT, comentarios y líneas DECLARE. Los argumentos posicionales se cuentan pero no se pueden emparejar, porque no tienen nombre. La sintaxis de argumentos con nombre de Oracle y PostgreSQL (=> y :=) todavía no se lee.
¿Compara JSON anidado?
Los parámetros se emparejan con las claves de primer nivel del objeto, que es como se traduce un cuerpo a una llamada. Un objeto o un array anidado que llega donde la llamada pasa un valor simple se marca como tipo distinto.