读书人

请教小弟我怎么在vb.net中调用pl/sql包

发布时间: 2012-02-05 12:07:15 作者: rapoo

请问我如何在vb.net中调用pl/sql包中已经写好的方法?
sql文如下
CREATE TABLE TEST
(
NAME VARCHAR2(10),
PSW VARCHAR2(10)
)

CREATE OR REPLACE PACKAGE TROUBLEREPORT.test_cursor
IS

CURSOR CUR_TEST(cname test.name%TYPE) IS
SELECT
A.name,
A.psw
FROM test A
where A.name = cname;
CCUR_TEST CUR_TEST%ROWTYPE;

PROCEDURE OPEN_ONE_CURSOR (cname IN VARCHAR2,psw OUT VARCHAR2);

END;


CREATE OR REPLACE PACKAGE BODY TROUBLEREPORT.test_cursor is

PROCEDURE OPEN_ONE_CURSOR (cname IN VARCHAR2,psw OUT VARCHAR2)
IS
BEGIN
OPEN CUR_TEST(cname);
-- ルプ始
LOOP
FETCH CUR_TEST INTO CCUR_TEST;
EXIT WHEN CUR_TEST%NOTFOUND;
psw:=CCUR_TEST.psw;
END LOOP;
close CUR_TEST;
END OPEN_ONE_CURSOR;

END test_cursor;

请问我如何把OPEN_ONE_CURSOR过程返回的第2个参数的值,传到画面上的一个text中去呢?如果我返回的是游标,pl/sql文和vb.net程序该如何写呢?


[解决办法]
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "TROUBLEREPORT.test_cursor.OPEN_ONE_CURSOR ";
cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add( "cname ", OracleType.VarChar).Value = "admin ";
cmd.Parameters.Add( "psw ", OracleType.Cursor).Direction =
ParameterDirection.Output;


conn.Open();
OracleDataReader dr = cmd.ExecuteReader();


if(dr.Read())
{
textbox1.text=dr[i].ToString();
}


*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070212

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html


[解决办法]
楼上正解,另外
需要在项目中把 system.data.oracleclient包含进去。

读书人网 >VB Dotnet

热点推荐