我得到错误“42883:运算符不存在:integer=@integer”Npgsql.PostgresException
尝试将参数传递给DO块时:
var cmd = new NpgsqlCommand();
cmd.CommandText =
@"DO $$
BEGIN
IF EXISTS (SELECT id FROM pub.table1 WHERE id = @id) THEN
UPDATE pub.table1
SET Field1 = @Field1
,Field2 = @Field2
WHERE id = @id;
ELSE
INSERT INTO pub.table1 (id, Field1, Field2)
VALUES (@id, @Field1, @Field2);
END IF;
END $$;";
cmd.Parameters.AddWithValue("@id", 1);
cmd.Parameters.AddWithValue("@Field1", "text");
cmd.Parameters.AddWithValue("@Field2", "text2");
否则,与postgres的连接和(经典)查询在传递参数时也会起作用;例如:
cmd.CommandText = @"SELECT * FROM pub.table1 WHERE id = @id;";
是否无法将参数传递给“DO”块,或者我遗漏了什么?
谢谢您。
米