繁体   English   中英

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

[英]How to execute SQL Script with hdbcli in python

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

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

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 我可以这样做,例如:在操作系统级别创建文件:

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 中是否有任何替代项? 也许没有在操作系统级别使用文件创建?

谢谢大卫

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

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

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

如果要处理包含多个命令的较大“脚本”文件,则需要注意“命令分隔符”字符(如 HANA Studio 或 hdbsql 中的; )并从这些分隔符之间的字符串构建各个命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM