zbluestar 2013年08月31日
c#调用oracle存储过程问题
存储过程(在PLSQL中调试没错):
create or replace procedure PROC_StudentInfo_SEL(studentid varchar2,
studentinfo OUT SYS_REFCURSOR) is
begin
open studentinfo for
select * from scott.student where scott.student.studentid = studentid;
end PROC_StudentInfo_SEL;

C#程序:
_conn.Open();
ConnectionState state = _conn.State;
_command = new OracleCommand();
_command.Connection = _conn;
//_command.Transaction = _conn.BeginTransaction();
_command.CommandType = CommandType.StoredProcedure;
_command.CommandText = "Scott.PROC_StudentInfo_SEL";

OracleParameter para = new OracleParameter("studentid", OracleType.VarChar, 2000);
para.Direction = ParameterDirection.Input;
para.Value = "001";
_command.Parameters.Add(para);

para = new OracleParameter("studentinfo", OracleType.Cursor);
para.Direction = ParameterDirection.Output;
_command.Parameters.Add(para);
OracleDataAdapter adapter = new OracleDataAdapter(_command);
DataTable table = new DataTable();
adapter.Fill(table);
打开数据库也没问题,执行到adapter.fill时,出现错误:
ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须声明标识符 'SCOTT.PROC_STUDENTINFO_SEL'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored

请教各位高手,这是什么问题。
...全文
65 点赞 收藏 3
写回复
3 条回复

还没有回复,快来抢沙发~

发动态
发帖子
基础和管理
创建于2007-09-28

7172

社区成员

9.5w+

社区内容

Oracle 基础和管理
社区公告
暂无公告