es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error al sincronizar la salida de metadatos desde DataFactory en la base de datos de SQL Server utilizando un procedimiento almacenado: Se encontró el carácter inesperado ‘S’ en la posición 0.

Estoy obteniendo este error al intentar escribir la salida de metadatos desde DataFactory a una base de datos de SQL Server.

“errorCode”: “2402”,
“message”: “La ejecución falló contra SQL Server.
Número de error SQL: 13609.
Mensaje de error: El texto JSON no está correctamente formateado. Se ha encontrado el carácter inesperado ‘S’ en la posición 0.”

Estoy utilizando un procedimiento almacenado en la base de datos de SQL Server.

Salida de metadatos:

{
    "childItems": [
        {
            "name": "DemoFile1",
            "type": "Archivo"
        },
        {
            "name": "DemoFile2",
            "type": "Archivo"
        }
    ],
    "effectiveIntegrationRuntime": "AutoResolveIntegrationRuntime",
    "executionDuration": 0
}

Código de procedimiento:

CREATE PROCEDURE prod1
    @parameter1 NVARCHAR(max)
AS
BEGIN
    INSERT INTO [dbo].[Table1] ([name], [type])
        SELECT
            name, type
        FROM 
            OPENJSON(@parameter1)
                WITH (
                      name NVARCHAR(max) '$.name',
                      type NVARCHAR(max) '$.type'
                     ) AS jsonValues
END

¡Gracias de antemano!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que se ha encontrado un carácter inesperado ‘S’ en la posición 0 del texto JSON que se pasa al procedimiento almacenado. Esto podría significar que el texto JSON no está correctamente formateado, como se indica en el mensaje de error.

    Una cosa a verificar es si el texto JSON que se pasa al procedimiento almacenado coincide con el formato esperado especificado en la cláusula WITH de la función OPENJSON. Sería útil imprimir el valor del parámetro @parameter1 para verificar el texto JSON actual que se está pasando.

    Otra cosa a verificar es si la versión de SQL Server que se está utilizando admite la función OPENJSON. Esta función se introdujo en SQL Server 2016, por lo que las versiones anteriores es posible que no puedan manejar esta función correctamente.

    Si las sugerencias anteriores no resuelven el problema, sería útil proporcionar más información sobre el pipeline de DataFactory y cualquier otro componente relacionado para investigar aún más el problema.

Comments are closed.