C# 从.net代码在Teradata中创建存储过程

C# 从.net代码在Teradata中创建存储过程,c#,sql,.net,stored-procedures,teradata,C#,Sql,.net,Stored Procedures,Teradata,我尝试使用Teradata.Client.Provider从.NET代码创建存储过程 我使用了如下查询: "REPLACE PROCEDURE test_db.testproc() BEGIN END;" 所有代码: ... var connectionTd = new TdConnection("[ConnectionString]"); var cmdTd = connectionTd.CreateCommand(); cmd

我尝试使用
Teradata.Client.Provider
从.NET代码创建存储过程

我使用了如下查询:

"REPLACE PROCEDURE test_db.testproc() BEGIN END;"
所有代码:

...
    var connectionTd = new TdConnection("[ConnectionString]");
    var cmdTd = connectionTd.CreateCommand();
    cmdTd.CommandText = "REPLACE PROCEDURE test_db.testproc() BEGIN END;";
    connectionTd.Open();
    cmdTd.ExecuteNonQuery();
...
但我有一个错误:

[Teradata Database][3706]语法错误:SQL语句无效

在像dBeaver这样的IDE中,所有的工作都很好

附言。
页面中的示例会导致相同的错误。

感谢@Fred,我们能够找到解决方案

调用而不是ExecuteOnQuery()->ExecuteCreateProcedure()


您正在调用哪个方法?推荐的方法是
cmd.ExecuteCreateProcedure
。不确定为什么您链接的示例引用了
cmd.ExecuteNonQuery
。@Fred这是一个很好的澄清!如果你把它格式化为答案,我可以把它标记为正确!并向我展示文档中关于它的内容……这在TdCommand类帮助条目(您引用的父项)中有文档记录。
...
    var connectionTd = new TdConnection("[ConnectionString]");
    var cmdTd = connectionTd.CreateCommand();
    cmdTd.CommandText = "REPLACE PROCEDURE test_db.testproc() BEGIN END;";
    connectionTd.Open();
    cmdTd.ExecuteCreateProcedure(true);
...