Oracle中的存储过程使用选择命令和给出错误的变量

雷克斯·琼斯

我想弄清楚Oracle存储过程,因为我是Oracle 11G的新手

这是我的MS SQL存储过程

Create procedure LoadLoginData
@username varchar(50),
@password varchar(50)
as
begin
select * from Employee_table where
username = @username and password = @password
end

当我使用Oracle Scratch Editor时,得到此输出

CREATE OR REPLACE PROCEDURE LoadLoginData
(
  v_username IN VARCHAR2 DEFAULT NULL ,
  v_password IN VARCHAR2 DEFAULT NULL ,
  cv_1 OUT SYS_REFCURSOR
)
AS

BEGIN
   OPEN  cv_1 FOR
      SELECT * 
        FROM employee_table 
        WHERE Username = v_username
                AND PASSWORD = v_password ;
END;

当我在C#中调用Oracle过程时,它将引发此异常

“ ORA-06550:第1行,第7列:PLS-00306:在调用'LOADLOGINDATA'时参数或参数类型错误ORA-06550:第1行,第7列:”

知道如何解决这个问题吗?

我的C#代码

OracleConnection ocon = new OracleConnection(orastr);
        OracleCommand ocmd = new OracleCommand("LoadLoginData", ocon);
        ocmd.CommandType = CommandType.StoredProcedure;
        ocon.Open();

        try
        {
            ocmd.Parameters.Add("Username", nBo.username);
            ocmd.Parameters.Add("Password", nBo.password);
            OracleDataAdapter oda = new OracleDataAdapter(ocmd);            
            DataSet ds = new DataSet();
            oda.Fill(ds);
            DataTable dt = ds.Tables[0];
            return dt;
        }
        catch (Exception ex)
        {

            throw ex;
        }
        finally
        {
            ocon.Dispose();
            ocon.Close();
            nBo = null;
        }
苏拉吉特·比斯瓦斯(Surajit Biswas)

您的过程具有2个输入参数和1个输出参数....您的C#代码具有2个输入参数但没有输出参数

Java级别,我将以下面的方式处理它:

callableStatement.registerOutParameter(3, OracleTypes.CURSOR);

C#中,请寻找相同的东西(如何处理)...我建议

ocmd.Parameters.Add("cv_1", OracleDbType.RefCursor, ParameterDirection.Output);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Oracle中的存储过程给出错误PLS-00428

来自分类Dev

计算存储过程中给出错误结果的次数

来自分类Dev

MySQL存储过程的游标给出错误

来自分类Dev

Java存储过程给出错误

来自分类Dev

CodeIgniter选择列到变量中给出错误

来自分类Dev

在C应用程序中调用MySQL存储过程并给出错误

来自分类Dev

函数调用过程给出错误“只能从函数内部执行函数和一些扩展存储过程”

来自分类Dev

MySQL的存储过程,如果条件给出错误

来自分类Dev

sed命令的子过程调用给出错误

来自分类Dev

在Oracle中执行存储过程时出错

来自分类Dev

使用MemoryMappedFile共享变量给出错误

来自分类Dev

存储过程-变量声明和类型错误

来自分类Dev

在 Oracle 12 中构建选择存储过程

来自分类Dev

Oracle存储过程中的表变量

来自分类Dev

使用存储在变量中的值在oracle中构建选择语句

来自分类Dev

在执行TENSORFLOW的过程中@次给出错误

来自分类Dev

使用“选择错误” 1064的存储过程

来自分类Dev

使用“选择错误” 1064的存储过程

来自分类Dev

使用插入和选择语句的存储过程

来自分类Dev

du命令同时给出错误和结果

来自分类Dev

设置变量的顺序和init中的super.init都给出错误

来自分类Dev

Java 使用 if(search) == 和多个类给出错误搜索无法解析为变量

来自分类Dev

grep命令给出错误

来自分类Dev

删除命令给出错误

来自分类Dev

Django命令给出错误

来自分类Dev

DataTable计算和选择方法给出错误的结果

来自分类Dev

c 中的“系统”命令使用 bash 管道给出错误输出

来自分类Dev

存储过程输出错误

来自分类Dev

变量声明给出错误