databricks-sql-python icon indicating copy to clipboard operation
databricks-sql-python copied to clipboard

How to insert arrays into ARRAY<STRING> columns using native parameters?

Open excavator-matt opened this issue 3 months ago • 0 comments

Hi!

I am trying to insert an string array into a table with an ARRAY<STRING> column, but it doesn't seem to register my Python string list.

CREATE TABLE prod_catalog.eu_projects.project_export (project_id bigint, categories ARRAY<STRING>);
def insert_test():
    data = {
        "project_id": 123456,
        "categories": [
            "Public Sector",
            "Healthcare",
        ],
    }
    with get_databricks_connection() as connection:
        cursor = connection.cursor()
        cursor.execute(
            "INSERT INTO prod_catalog.eu_projects.project_export(project_id, categories) VALUES (:project_id, Array(:categories))",
            data
        )
        print("Test insert completed.")

This ends up as an empty array. If I check query history on the SQL Warehouse, it says that categories was an empty array []

I have tried to read the documentation, but it is very confusing.

I am using the following versions Python 3.13.7 databricks-sql-connector==4.1.3 databricks-sdk==0.66.0

excavator-matt avatar Sep 25 '25 12:09 excavator-matt