如何在python中使用hdbcli执行SQL脚本

2024-09-28 20:45:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python中的hdbcli连接到hana db

SQL命令执行通过我的连接工作:

conn = dbapi.connect(
    address=os.environ['HOST'],
    port=dbconnectport,
    user=dbusername,
    password=dbpasswd,
    databasename=dbconnectdbname

)

   cursor=conn.cursor()

执行情况如下:

cursor.execute("Select USER_NAME from \"SYS\".\"USERS\" WHERE USER_NAME=\'%s\'" % varcrdbust)

对于单个查询,它可以正常工作。但是,如何执行包含大量特殊字符的sql脚本呢? 通过bash shell,我可以通过以下方式执行此fo示例: 在操作系统级别创建文件:

tee >> $PRIVFILE << EOF
WITH 
/* 

[NAME]

- HANA_Security_CopyPrivilegesAndRoles_CommandGenerator_2.00.000+

[DESCRIPTION]

- Generates SQL commands that can be used to grant roles and privileges assigned to one user to another user or role
SQL script text here.........

然后通过hdbsql with argument -I <pathname/filename>执行此操作 python中是否有任何替代版本?可能没有在操作系统级别上使用文件创建

谢谢大卫


Tags: toname命令dbsqladdressconnectconn
1条回答
网友
1楼 · 发布于 2024-09-28 20:45:47

所有SAP HANA客户端一次只允许执行一个命令

您选择作为示例的监视脚本实际上只是一个命令:一个相对较大的SELECT语句

因此,对于要执行的每个命令,都需要发送一个单独的.execute

如果您想使用多个命令处理一个较大的“脚本”文件,则需要查找“命令分隔符”字符(如HANA Studio或hdbsql中的;),并从这些分隔符之间的字符串生成各个命令

相关问题 更多 >