gpt4 book ai didi

c# - 从 C# 使用 Odbc 调用 Oracle 包函数

转载 作者:太空宇宙 更新时间:2023-11-03 19:34:12 25 4
gpt4 key购买 nike

我在 Oracle 包中定义了一个函数:

CREATE OR REPLACE PACKAGE BODY TESTUSER.TESTPKG as
FUNCTION testfunc(n IN NUMBER) RETURN NUMBER as
begin
return n + 1;
end testfunc;
end testpkg;
/

如何使用 Odbc 从 C# 调用它?我尝试了以下方法:

using System;
using System.Data;
using System.Data.Odbc;

class Program {
static void Main(string[] args) {
using (OdbcConnection connection = new OdbcConnection("DSN=testdb;UID=testuser;PWD=testpwd")) {
connection.Open();

OdbcCommand command = new OdbcCommand("TESTUSER.TESTPKG.testfunc", connection);
command.CommandType = System.Data.CommandType.StoredProcedure;

command.Parameters.Add("ret", OdbcType.Int).Direction = ParameterDirection.ReturnValue;

command.Parameters.Add("n", OdbcType.Int).Direction = ParameterDirection.Input;
command.Parameters["n"].Value = 42;

command.ExecuteNonQuery();
Console.WriteLine(command.Parameters["ret"].Value);
}
}
}

但是我得到一个异常提示“无效的 SQL 语句”。
我做错了什么?

最佳答案

在过去,我会使用类似于以下的命令字符串:

“{?= CALL JF_TESTUSER.TESTPKG.testFunc(?)}”

请参阅以下内容 article了解更多信息

关于c# - 从 C# 使用 Odbc 调用 Oracle 包函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2949641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com