{"library":"sqlalchemy-hana","title":"SQLAlchemy dialect for SAP HANA","type":"library","description":"SQLAlchemy dialect for SAP HANA. It enables Python applications to connect to SAP HANA databases using SQLAlchemy's ORM and Core features, leveraging the `hdbcli` driver for connectivity. The library is currently at version 4.5.0 and follows semantic versioning, indicating that breaking changes are introduced only in major releases.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install sqlalchemy-hana","pip install sqlalchemy-hana[alembic]"],"cli":null},"imports":["from sqlalchemy import create_engine","from sqlalchemy_hana.elements import CreateView","from sqlalchemy_hana.elements import DropView","from sqlalchemy_hana import types","from sqlalchemy_hana import errors"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":null,"github":"https://github.com/SAP/sqlalchemy-hana","docs":null,"changelog":"https://github.com/SAP/sqlalchemy-hana/blob/main/CHANGES.rst","pypi":"https://pypi.org/project/sqlalchemy-hana/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"import os\nfrom sqlalchemy import create_engine, text\n\n# Environment variables for connection details (replace with your actual values or user store key)\nHANA_USER = os.environ.get('HANA_USER', 'your_username')\nHANA_PASSWORD = os.environ.get('HANA_PASSWORD', 'your_password')\nHANA_HOST = os.environ.get('HANA_HOST', 'your_hana_host')\nHANA_PORT = os.environ.get('HANA_PORT', '30015') # Default port for SAP HANA\nHANA_TENANT_DB = os.environ.get('HANA_TENANT_DB', '') # Optional: for tenant databases\nHANA_USERKEY = os.environ.get('HANA_USERKEY', '') # Optional: for hdbuserstore key\n\nconnection_string = f\"hana://{HANA_USER}:{HANA_PASSWORD}@{HANA_HOST}:{HANA_PORT}\"\nif HANA_TENANT_DB:\n    connection_string += f\"/{HANA_TENANT_DB}\"\n\nif HANA_USERKEY:\n    connection_string = f\"hana://userkey={HANA_USERKEY}\"\n\n\ntry:\n    # Create an engine to connect to SAP HANA\n    engine = create_engine(connection_string, echo=False)\n\n    # Establish a connection and execute a simple query\n    with engine.connect() as connection:\n        result = connection.execute(text(\"SELECT 'Hello from SAP HANA!' AS greeting FROM DUMMY\"))\n        for row in result:\n            print(row.greeting)\n\n    print(\"Successfully connected to SAP HANA and executed a query.\")\n\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\n    print(\"Please ensure HANA_USER, HANA_PASSWORD, HANA_HOST, HANA_PORT, \"\n          \"and hdbcli are correctly configured or HANA_USERKEY is set.\")","lang":"python","description":"This quickstart demonstrates how to establish a connection to an SAP HANA database using `sqlalchemy-hana` and execute a simple SQL query. It uses environment variables for connection parameters for security and flexibility. Alternatively, an HDB User Store key can be used with `hana://userkey=my_user_store_key`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"3.0.3","pypi_latest":"4.5.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":3.7,"avg_import_s":0.65,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"sqlalchemy-hana","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.51,"mem_mb":15.5,"disk_size":"56.2M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"alembic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.51,"mem_mb":15.5,"disk_size":"59.4M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"sqlalchemy-hana","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.7,"import_time_s":0.36,"mem_mb":15.5,"disk_size":"55M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"alembic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.1,"import_time_s":0.38,"mem_mb":15.5,"disk_size":"58M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"sqlalchemy-hana","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.8,"mem_mb":17.6,"disk_size":"61.3M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"alembic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.78,"mem_mb":17.6,"disk_size":"65.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"sqlalchemy-hana","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.2,"import_time_s":0.69,"mem_mb":17.6,"disk_size":"60M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"alembic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.7,"import_time_s":0.69,"mem_mb":17.6,"disk_size":"63M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"sqlalchemy-hana","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.86,"mem_mb":17.4,"disk_size":"52.6M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"alembic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.83,"mem_mb":17.4,"disk_size":"56.2M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"sqlalchemy-hana","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3,"import_time_s":0.81,"mem_mb":17.4,"disk_size":"51M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"alembic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.4,"import_time_s":0.85,"mem_mb":17.4,"disk_size":"55M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"sqlalchemy-hana","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.9,"mem_mb":17.6,"disk_size":"52.1M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"alembic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.83,"mem_mb":17.6,"disk_size":"55.7M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"sqlalchemy-hana","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.2,"import_time_s":0.77,"mem_mb":17.6,"disk_size":"50M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"alembic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.5,"import_time_s":0.78,"mem_mb":17.6,"disk_size":"54M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"sqlalchemy-hana","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.45,"mem_mb":15.1,"disk_size":"54.8M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"alembic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.44,"mem_mb":15.1,"disk_size":"57.9M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"sqlalchemy-hana","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.3,"import_time_s":0.42,"mem_mb":15.1,"disk_size":"54M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"alembic","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.7,"import_time_s":0.43,"mem_mb":15.1,"disk_size":"57M"}]}}