簡體   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