【发布时间】:2017-02-03 22:11:12
【问题描述】:
我是甲骨文的新手。我创建了一个存储过程来获取表数据。
create or replace
procedure GETLATESTNEWS(cv_results in out sys_refcursor)
as
begin
open cv_results for
select news from tbl_newsdetails;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RAISE_APPLICATION_ERROR(-99999,'Not Inserted due to :'||SQLERRM);
end;
程序编译成功。但在我的 .net 代码中,我遇到了错误
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'GETLATESTNEWS'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
我的 .net 代码是
con.ConnectionString = constring;
con.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = con;
cmd.CommandText = "GETLATESTNEWS";
cmd.CommandType = CommandType.StoredProcedure;
rdr = cmd.ExecuteReader();
可能是什么问题?我可以使用插入存储过程插入。但是选择不起作用。
【问题讨论】:
-
您的存储过程需要一个参数(属于 sys_refcursor),但您没有传递任何东西。请查看this article
-
好的..会阅读并通知您。
-
请。请记住,该链接只是为了向您展示您的问题所在。您应该进一步调查,因为 Microsoft Oracle .NET 提供程序现在已弃用,您应该使用 Oracle 提供的最新 Oracle NET provider
-
谢谢史蒂夫。从我的角度来看,这是一个错误。事实上,我非常喜欢使用 sqlserver。所以突然搬家导致了这个问题。
-
现在完美运行。非常感谢史蒂夫.. :)
标签: c# oracle stored-procedures