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 de pymssql en la ejecución de la consulta.

Esta es la consulta pymssql con la que estoy trabajando.

query = 'INSERT INTO [dbo].[helios_devops_data_curr] ("iipm.l3_it_org", "iipm.it_custodian","iipm.it_executive") VALUES ({}{}{})'.format("'Innovation and Technology'", "'bob tom'", "'bob tom'")

Estoy usando estos valores como ejemplo, no son los valores reales que estoy intentando subir. Sin embargo, los errores son los mismos:

109, b’Hay más columnas en la declaración INSERT que valores especificados en la cláusula VALUES. El número de valores en la cláusula VALUES debe coincidir con el número de columnas especificadas en la declaración INSERT. Mensaje de error de DB-Lib 20018, gravedad 15: Error general del servidor SQL: Verifique los mensajes del servidor SQL\n’

No estoy seguro de por qué se está produciendo este error, ya que claramente hay 3 columnas y 3 valores que se están insertando.

Cualquier ayuda en esto sería apreciada.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Según el mensaje de error devuelto, parece que se especificaron más columnas en la instrucción INSERT en comparación con el número de valores especificados en la cláusula VALUES. Por lo tanto, es probable que la tabla real [dbo].[helios_devops_data_curr] tenga más de 3 columnas.

    Para resolver este problema, debes asegurarte de que el número de valores especificados en la cláusula VALUES coincida con el número exacto de columnas especificadas en la instrucción INSERT. Una forma de hacer esto es enumerar explícitamente todas las columnas en las que deseas insertar valores, así:

    query = 'INSERT INTO [dbo].[helios_devops_data_curr] ([columna1], [columna2], [columna3]) VALUES ({}, {}, {})'.format("'Innovación y Tecnología'", "'bob tom'", "'bob tom'")
    

    Asegúrate de reemplazar [columna1], [columna2], [columna3] con los nombres reales de las columnas de tu tabla, y asegúrate de que los valores coincidan con sus respectivos tipos de datos.

    Alternativamente, puedes omitir los nombres de las columnas en la instrucción INSERT por completo, pero esto solo funcionaría si estás insertando valores en todas las columnas de la tabla y en el orden correcto. Por ejemplo:

    query = 'INSERT INTO [dbo].[helios_devops_data_curr] VALUES ({}, {}, {})'.format("'Innovación y Tecnología'", "'bob tom'", "'bob tom'")
    

    Nuevamente, asegúrate de que el orden de los valores en la cláusula VALUES coincida con el orden de las columnas en tu tabla.

Comments are closed.