使用 Snowflake 进行参数化查询并传递来自 Snowflake .NET Connector 的值

Lin*_*j S 4 snowflake-cloud-data-platform

像 MySQL 和 SQL Server 一样使用 Snowflake 创建参数化。需要从 .NET Snowflake .NET Connector 传递值。

https://www.mssqltips.com/sqlservertip/2981/using-parameters-for-sql-server-queries-and-stored-procedures/

带值查询:

select * 
from "SNOWFLAKE_SAMPLE_DATA"."TPCDS_SF100TCL"."WEB_SITE" 
where ((Web_REC_START_DATE is null and IFF('2000-08-16' is null,true,false))    
       or Web_REC_START_DATE > '2000-08-16')
Run Code Online (Sandbox Code Playgroud)

如何在 C# 中将 SqlDataReader 与参数化查询一起使用?

使用参数名称查询:

select * 
from "SNOWFLAKE_SAMPLE_DATA"."TPCDS_SF100TCL"."WEB_SITE" 
where ((Web_REC_START_DATE is null and IFF(@StartDate is null,true,false)) 
       or Web_REC_START_DATE > @StartDate)
Run Code Online (Sandbox Code Playgroud)

Sim*_*rim 10

Snowflake .net 连接器托管在github中,它的自述描述了如何在绑定参数部分

所以查看代码中的测试,特别是BindTest 第 75 行

它显示正在使用的命名参数。因此:

command.CommandText = "insert into TEST_TBL values(:p0)";
var param = command.CreateParameter();
param.ParameterName = "p0";
param.DbType = System.Data.DbType.Int32;
param.Value = DBNull.Value;
command.Parameters.Add(param);
Run Code Online (Sandbox Code Playgroud)