日期:2014-05-17  浏览次数:20807 次

ASP.NET调用Oracle存储过程问题
C# code

using (OracleCommand Cmd = new OracleCommand("QueryPagedTable", Conn))
            {
                Cmd.CommandType = CommandType.StoredProcedure;
                Cmd.Parameters.Add("PageSize", OracleType.Int32).Value = PageSize;
                Cmd.Parameters.Add("PageNo", OracleType.Int32).Value = PageNo;
                Cmd.Parameters.Add("Table_", OracleType.VarChar, 50).Value = Table;
                Cmd.Parameters.Add("Filter", OracleType.VarChar, 1000).Value = Filter;
                Cmd.Parameters.Add("Order_", OracleType.VarChar, 500).Value = Order == null ? "" : Order; ;
                Cmd.Parameters["Order_"].Direction = ParameterDirection.Output;
                OracleDataAdapter ad = new OracleDataAdapter(Cmd);
                try
                {
                    if (Conn.State != ConnectionState.Open)
                    {
                        Conn.Open();
                        OpenedHere = true;
                    }
                    ad.Fill(ds);
                }
                catch
                {
                    return null;
                }
                finally
                {
                    if (OpenedHere) if (Conn.State == ConnectionState.Open) Conn.Close();
                }
            }


进入catch,提示下面错误信息:
ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'QUERYPAGEDTABLE' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored

---------------------------------
存储过程:
create or replace procedure QueryPagedTable(
p_pagesize int,
p_pageno int,
p_table varchar2,
p_filter varchar2,
p_order in out varchar2
)

------解决方案--------------------
PageSize PageNo Table Filter Order 定义在哪里?
是不是类型不对。。。