Connecting to HANA Using python
Connecting to HANA Using python
Table of Contents
1. Overview ............................................................................................................................................... 3
2. Prerequisites for HANA connectivity from Python ............................................................................... 3
3. HANA DB Connection parameters ........................................................................................................ 4
4. Table creation ....................................................................................................................................... 5
5. Data Insert operation ............................................................................................................................ 6
6. Delete Row from table .......................................................................................................................... 8
7. Select Particular row ............................................................................................................................. 9
8. Select all rows ....................................................................................................................................... 9
9. Table deletion ..................................................................................................................................... 10
https://pypi.org/project/hdbcli/2.9.23/#files
For HANA tenant databases, use the port number 3**NN**13 (where NN is the SAP instance
number - e.g. 30013).
For HANA system databases in a multitenant system, the port number is 3**NN**13.
For HANA single-tenant databases, the port number is 3**NN**15.
#Import module
from hdbcli import dbapi
#Open the database conenciton
conn = dbapi.connect(address="<hostname/IP>", port=3<NN>MM,user="<username>",
password="<password>"
)
# prepare a cursor object using cursor() method
cursor = conn.cursor()
tabdef= "CREATE TABLE EMPLOYEE (SL_NO AS INTEGER PRIMARY KEY,NAME CHAR(20) NOT NULL, ), AGE INT,
SEX CHAR(1), SALARY FLOAT )”
Example: ######
#!Zemployee table
from hdbcli import dbapi
# Open database connection
conn = dbapi.connect(address="##.##.##.##", port=30215,user="SYSTEM", password="Test#123")
cursor.close()
conn.close()
######
sql = "INSERT INTO SAPHANADB.ZEMPLOYEE (SL_NO, NAME, AGE, SEX, SALARY) VALUES (1,'Ram Kumar', 30, 'M', 20000)"
Example Program:
# !Update data in table dyanamically
from hdbcli import dbapi
# Open database connection
conn = dbapi.connect(address="##.##.##.##", port=30215,user="SYSTEM", password="Test#123")
# disconnect database
conn.close()
#Write functions
def one():
name=input("Enter correct name: ")
sql1= 'UPDATE SAPHANADB.ZEMPLOYEE SET NAME = :name where SL_NO = :sl'
cursor.execute(sql1, {"name": name, "sl":sn})
def two():
ag=input("Enter correct Age: ")
sql1= 'UPDATE SAPHANADB.ZEMPLOYEE SET AGE = :age where SL_NO = :sl'
cursor.execute(sql1, {"age": ag, "sl":sn})
def three():
sx=input("Enter correct Sex: ")
sql1= 'UPDATE SAPHANADB.ZEMPLOYEE SET SEX = :sex where SL_NO = :sl'
cursor.execute(sql1, {"sex": sx, "sl":sn})
def four():
sal=input("Enter correct Salary: ")
sql1= 'UPDATE SAPHANADB.ZEMPLOYEE SET SALARY = :salary where SL_NO = :sl'
cursor.execute(sql1, {"salary": sal, "sl":sn})
#conditions
if v == '1':
one()
elif v== '2':
two()
elif v== '3':
three()
elif v== '4':
four()
# print(v)
###End
Output:
cursor.close()
conn.close()