Skip to content

Passing list parameter to raw SQL query #745

@Real-Gecko

Description

@Real-Gecko

I need to call a stored procedure from Postgres, procedure params look like this:

CREATE PROCEDURE import_metadata(IN table_name TEXT, IN headers ARRAY, IN metadata_file_path TEXT)

But as I use execute method like this

table_name = 'metadata'
headers = ['ID', 'first_name', 'last_name', 'gender', 'age', 'address', 'language']
metadata_file_path = '/path/to/metadata.csv'

db.execute("call import_metadata($table_name, $headers, $metadata_file_path)",
  {
    table_name: table_name,
    headers: headers,
    metadata_file_path: metadata_file_path,
  },
)

I get an error: TypeError: unhashable type: 'list'
Is it really possible to pass lists to raw SQL queries?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions