首页 > 解决方案 > 如何调用返回 1 行的存储过程?

问题描述

如何在 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;

标签: c#databasestored-proceduresoracle11g

解决方案


尝试使用此语法

cmd.Parameters.Add("ssnid",OracleDbType.Varchar2).Value = global.passuser;
 // or global.passuser.ToString();

顺便解决一下

textBox2.Text = comm.Parameters["fname"].Value.ToString();

推荐阅读