File: hdb_connect.python

package info (click to toggle)
pcp 7.1.0-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 252,748 kB
  • sloc: ansic: 1,483,656; sh: 182,366; xml: 160,462; cpp: 83,813; python: 24,980; perl: 18,327; yacc: 6,877; lex: 2,864; makefile: 2,738; awk: 165; fortran: 60; java: 52
file content (37 lines) | stat: -rw-r--r-- 1,276 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import sys
import argparse
from hdbcli import dbapi

def query_hana(host, port, user, password, query):
    """
    Connects to a HANA database and executes a query.
    """
    conn = None
    try:
        conn = dbapi.connect(address=host, port=int(port), user=user, password=password)
        cursor = conn.cursor()
        cursor.execute(query)
        rows = cursor.fetchall()

        # Print rows
        for row in rows:
            print("\t".join(map(str, row)))

    except dbapi.Error as e:
        print(f"Error connecting to or querying HANA: {e}")
        sys.exit(1)
    finally:
        if conn:
            conn.close()

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Query a SAP HANA database.")
    parser.add_argument("-H", "--host", required=True, help="HANA host address")
    parser.add_argument("-P", "--port", type=int, default=30015, help="HANA port (default: 30015)")
    parser.add_argument("-U", "--user", required=True, help="HANA username")
    parser.add_argument("-W", "--password", required=True, help="HANA password")
    parser.add_argument("-Q", "--query", required=True, help="SQL query to execute")

    args = parser.parse_args()

    query_hana(args.host, args.port, args.user, args.password, args.query)