我已经在Oracle包中创建了一个过程。当我从TOAD执行这个包时,我可以在输出中看到更新后的记录。但是,当通过控制台应用程序调用时,相同的过程返回0条记录。我也不知道原因。
也许我在某个地方犯了一个新手错误,但请让我知道我在这里做错了什么。
PROCEDURE TestProc( Cur_Result out sys_refcursor)
As
begin
Update Table1 where condition-1;
Commit;
Update Table1 where condition-2;
Commit;
open Cur_Result for
select * from Table1;
END TestProc;使用.NET代码从控制台应用程序调用过程-从TOAD -从模式浏览器执行包。
控制台App -像下面这样调用过程-
Using conn As New OracleConnection(ConfigurationManager.ConnectionStrings("CS").ConnectionString)
conn.Open()
cmd = New OracleCommand(SchemaName & "." & "TestProc", conn)
cmd.Parameters.Add("CUR_RESULT", OracleType.Cursor).Direction = ParameterDirection.Output
cmd.CommandType = CommandType.StoredProcedure
da = New OracleDataAdapter(cmd)
ds = New DataSet
da.Fill(ds)
''''Do something with DataSetRecords
conn.Close()
End Using发布于 2018-01-20 00:38:27
问题不在我提到的两个代码中,问题出在其他地方。我正在使用一个Test脚本在表中插入记录,但是我没有在脚本的末尾添加Commit。
我最近从SQL Server切换到Oracle。事务处理是oracle和SQL SERVER之间最大的区别。我真是个笨蛋不管怎样,谢谢你们。
https://stackoverflow.com/questions/48344198
复制相似问题