[雪花python连接器]如何在字符串格式中创建绑定

[雪花python连接器]如何在字符串格式中创建绑定,python,snowflake-cloud-data-platform,Python,Snowflake Cloud Data Platform,我想在执行sql时使用数据绑定。 我只想在字符串的中间绑定,但不起作用。< /P> 我尝试了以下方法,但都导致了执行错误 蟒蛇 param={ “环境”:“开发” “s3_凭证”:“机密” } 游标().execute(sql,参数) sql1 创建或替换阶段my_s3_阶段演示 URL='s3://我的舞台演示-'%(env)s'/tmp/' 凭证=(aws_角色=%(s3_凭证)s) 文件格式=(类型=JSON); 错误消息1 snowflake.connector.errors.Pro

我想在执行sql时使用数据绑定。 我只想在字符串的中间绑定,但不起作用。< /P> 我尝试了以下方法,但都导致了执行错误

蟒蛇

param={
“环境”:“开发”
“s3_凭证”:“机密”
}
游标().execute(sql,参数)
sql1

创建或替换阶段my_s3_阶段演示
URL='s3://我的舞台演示-'%(env)s'/tmp/'
凭证=(aws_角色=%(s3_凭证)s)
文件格式=(类型=JSON);
错误消息1

snowflake.connector.errors.ProgrammingError: 091006 (22000): Bucket name 'my-stage-demo-'dev'' in the stage location is not supported. Valid bucket names must consist of lowercase letters, digits, hyphens '-', and periods '.'.
SQL2

创建或替换阶段my_s3_阶段演示
URL='s3://我的舞台演示-%(env)s/tmp/'
凭证=(aws_角色=%(s3_凭证)s)
文件格式=(类型=JSON);
错误信息2

snowflake.connector.errors.ProgrammingError: 001003 (42000): SQL compilation error:
syntax error line 2 at position 32 unexpected ''/tmp/''.
我想按如下方式执行绑定结果,但我应该如何指定它

CREATE OR REPLACE STAGE my_s3_stage_demo
    URL='s3://my-stage-demo-dev/tmp/'
    credentials = (aws_role = "secret" )
    FILE_FORMAT = ( TYPE=JSON);

不能绑定子字符串,只能绑定完整的语法元素

在Python中,您可以执行以下操作:

cursor.execute(
  "SELECT t.*, 'P'||:2 p2 FROM IDENTIFIER(:1) t",
  [['"my_db"."my_schema"."my_table"', '2. parameter']]
)
只能在允许使用表达式的情况下使用值的一部分(如上面的
'p'|;:2
)。还使用
IDENTIFIER()
提供了一些标识符,如上面的表名

不幸的是,对于
CREATE或REPLACE STAGE
命令,似乎根本不支持使用表达式来表示s3 bucket或绑定变量。 这意味着您必须对SQL文本使用替换,而不是变量绑定