[求助]用ODP.NET调用存储过程的参数设置问题

sijian2001 2003-12-24 11:30:45
写了一个存储过程如下
CREATE OR REPLACE PACKAGE PKG_AUTHORITY
AS
FUNCTION FNC_TEST(
IN_AUTH_CD IN VARCHAR2
)RETURN VARCHAR2;

PROCEDURE PRC_TEST(
IN_AUTH_CD IN VARCHAR2
,OT_RES_VALUE OUT VARCHAR2
);

END PKG_AUTHORITY;

CREATE OR REPLACE PACKAGE BODY PKG_AUTHORITY
AS
FUNCTION FNC_TEST(
IN_AUTH_CD IN VARCHAR2
)RETURN VARCHAR2
IS
BEGIN
IF IN_AUTH_CD = 'A' THEN
RETURN 'FALSE';
ELSE
RETURN 'TRUE';
END IF;
END FNC_TEST;

PROCEDURE PRC_TEST(
IN_AUTH_CD IN VARCHAR2
,OT_RES_VALUE OUT VARCHAR2
)
IS
BEGIN
IF IN_AUTH_CD = 'A' THEN
OT_RES_VALUE := 'FALSE';
ELSE
OT_RES_VALUE := 'TRUE';
END IF;
END PRC_TEST;
END PKG_AUTHORITY;

用ODP.NET调用存储过程时怎么设置参数。下面这样我试过了,不行
Dim param() As OracleParameter = {New OracleParameter(":IN_AUTH_CD", OracleDbType.Varchar2) _
, New OracleParameter(":OT_RETURN_VALLUE", OracleDbType.Varchar2)}
param(0).Value = "1"
param(0).Direction = ParameterDirection.Input
param(1).Direction = ParameterDirection.Output

附带说一句,我看了ODP.NET的例子,例子的参数要不都是in,要不都是out,实际上开发的
不可能这样。
...全文
238 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
LGQDUCKY 2003-12-30
  • 打赏
  • 举报
回复
看下这个:
http://211.99.196.144:8090/forum1/frontshow/dispbbs.jsp?boardid=106&id=3818
sijian2001 2003-12-27
  • 打赏
  • 举报
回复
谢谢你的回答,不过问题还是没有解决。
现在,问题的根本在于怎么设置参数和怎么取到返回值。
LGQDUCKY 2003-12-25
  • 打赏
  • 举报
回复
//===c#访问存储过程。
和一般返回結果集合的存儲過程的用法一樣,只是需要加包名。
...
SqlCommand sampleCMD = new SqlCommand("Package.ProName", myConn);
sampleCMD.CommandType = CommandType.StoredProcedure;
...

myC
Dim myConnection As New OracleConnection(connectstring)
myConnection.Open()
Dim myCommand As New OracleCommand()
myCommand.Connection = myConnection
myCommand.CommandType = CommandType.StoredProcedure

myCommand.CommandText = "packagename.procedurename"

myCommand.Parameters.Add("CURSORname", OracleType.Cursor).Direction = ParameterDirection.Output

Dim myReader As OracleDataReader
myReader = myCommand.ExecuteReader()

ListBox2.DataSource = myReader
ListBox2.DataTextField = "PROJECTNAME"
ListBox2.DataBind()
ListBox2.SelectedIndex = 0

myReader.Close()
myConnection.Close()
myReader = Nothing
myConnection = Nothing

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧