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.

Función de Postgres generando error al ser llamada desde un script de Python pero ejecutándose correctamente en PgAdmin.

Tengo una función de Postgres llamada ‘medrealize()’ en la que estoy creando una tabla temporal y creando un índice para las tablas temporales usando las siguientes líneas.

CREATE INDEX SQLOPS_RefICD_ICD10_idx ON  t$SQLOPS_RefICD_ICD10 USING gist (code gist_trgm_ops );
CREATE INDEX regexes_idx ON  t$regexes  USING gist (icdregex  gist_trgm_ops );

Cuando llamo a la función desde pgAdmin, la función se ejecuta sin problemas. Pero al llamar a la función desde Python utilizando:

cursor.execute("BEGIN")
cursor.execute("CALL medrealize();")
cursor.execute("COMMIT")

Obtengo el siguiente error:

operator class \"gist_trgm_ops\" does not exist for access method \"gist\"\

¿Alguna idea de por qué funciona bien al llamar desde PgAdmin y genera un error al llamar desde Python?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que la clase de operador “gist_trgm_ops” no existe para el método de acceso “gist”. Este error puede ocurrir si la extensión o el módulo necesario no está cargado en el entorno de Python o si la conexión a la base de datos utilizada por Python no es la misma que la utilizada por PgAdmin.

    Para resolver el problema, asegúrese de que las extensiones o módulos de PostgreSQL necesarios estén instalados y cargados en el entorno de Python. Verifique si los parámetros de conexión a la base de datos que utiliza Python son correctos y asegúrese de que la base de datos tenga las extensiones y módulos necesarios instalados y habilitados.

    Además, asegúrese de que los nombres de esquema y objetos utilizados en el código de Python coincidan con los utilizados en la base de datos. Verifique si hay diferencias en la ruta de búsqueda o privilegios entre la sesión de Python y la sesión de PgAdmin.

Comments are closed.