【发布时间】:2021-08-29 04:01:23
【问题描述】:
如何在 C# 中调用一个过程只返回 1 行?
当我运行我编写的这段代码时,我得到了这个错误:
ORA-06502 :PL/SQL: 数值或数值错误
代码:
con.Open();
OracleCommand comm = new OracleCommand();
comm.Connection = con;
comm.CommandText = "GetFirstName";
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.Add("ssnid", global.passuser);
comm.Parameters.Add("fname", OracleDbType.Varchar2).Direction = ParameterDirection.Output;
comm.ExecuteNonQuery();
textBox2.Text = comm.Parameters["fname"].ToString();
程序:
create or replace procedure GetFirstName
(ssnid in VARCHAR2 , fname out VARCHAR2)
as
begin
select firstname
into fname
from passenger
where ssn = ssnid ;
end;
【问题讨论】:
-
您遇到了 oracle 错误。通常这是由于 oracle 驱动程序不适用于您正在使用的 oracle 版本。您在连接字符串中使用什么驱动程序?您使用的数据库是什么版本的 Oracle?查看 oracle 数据库日志文件了解更多信息。
-
顺便说一句,你应该用
using块来处理你所有的SQL对象,不要缓存连接,当你需要时从连接字符串中创建它
标签: c# database stored-procedures oracle11g