【发布时间】:2021-09-26 21:49:56
【问题描述】:
我是雪花的新手。我正在尝试使用 python 脚本获取我的数据库中所有表的 ddl 。
import snowflake.connector
import sys
# Gets the version
cnx = snowflake.connector.connect(
user='username',
password='password',
account='account',
database='db',
schema='schema',
warehouse='warehouse',
role='role'
)
cnx.cursor().execute("USE warehouse warehouseName")
cnx.cursor().execute("USE database dbName")
cnx = cnx.cursor()
dbSchema='schema name'
sql_select_objects = "select TABLE_NAME,TABLE_SCHEMA,TABLE_TYPE from INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='" + dbSchema + "';"
print(sql_select_objects)
try:
cnx.execute(sql_select_objects)
print('Query ID=' + cnx.sfqid)
rows = cnx.fetchall()
print("rows count:", len(rows))
for row in rows:
#print(row[0])
file = open(row[0] + ".sql","w")
rw='"' + row[0] + '"'
print(rw)
sql_ddl_object = "SELECT GET_DDL('TABLE', '" + row[0] + "')"
print(sql_ddl_object)
cnx.execute(sql_ddl_object)
print('SQL2 sfqid=' + cnx.sfqid)
row_ddl_table = cnx.fetchall()
#print(row_ddl_table[0][0])
file.write(str(row_ddl_table[0][0]))
file.write("\n")
finally:
cnx.close()
当我执行上面的脚本时,我得到了错误:
snowflake.connector.errors.ProgrammingError: 002003 (02000): SQL 编译错误:
表“SNOWFLAKE_TEST”不存在或未经授权。
在 "SELECT GET_DDL('TABLE', '" + row[0] + "')" 行中,我相信 python 没有正确解析 row[0] 的值。你能告诉我错误在哪里吗?
【问题讨论】:
标签: python python-3.x snowflake-cloud-data-platform snowflake-schema