[英]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.