CREATE OR REPLACE PROCEDURE EXE_TEST is
A CHAR(8);
B TEST_TBL.D;
C NUMBER(1);
BEGIN
DBMS_OUTPUT.ENABLE; A := '12345678';
B(1) := '100001';
B(2) := '100002'; TEST(A,B,C);
END ;
/CREATE OR REPLACE PACKAGE TEST_TBL is
TYPE D IS TABLE OF CHAR(6) INDEX BY BINARY_INTEGER;
END;
/CREATE OR REPLACE PROCEDURE TEST(A IN CHAR, B IN TEST_TBL.D, C OUT NUMBER) is========================================================================现在想在VB里提调用Test这个存储过程,
Dim dbConn As New OleDbConnection
Dim dbComm As OleDbCommand dbConn.ConnectionString = "Provider=MSDAORA.1;User ID=XXX;Password=XXX;Data Source=XXX;"
dbConn.Open()
dbComm = dbConn.CreateCommand dbComm.Parameters.Add("A", OleDbType.VarChar, 8).Direction = ParameterDirection.Input
dbComm.Parameters.Add("B", OleDbType.VarBinary).Direction = ParameterDirection.Input
dbComm.Parameters.Add("C", OleDbType.Double, 1).Direction = ParameterDirection.Output dbComm.Parameters("A").Value = "12345678"
dbComm.Parameters("C").Value = 0
Dim a(0 To 5) As Byte
a(0) = "100001"
a(1) = "100002"
dbComm.Parameters("B").Value = a dbComm.CommandText = "{CALL TEST(?,?,?)}"
dbComm.CommandType = CommandType.Text
dbComm.ExecuteNonQuery()
dbConn.Close()请大家帮忙看看,VB里传参数哪里写的不对,谢谢了
A CHAR(8);
B TEST_TBL.D;
C NUMBER(1);
BEGIN
DBMS_OUTPUT.ENABLE; A := '12345678';
B(1) := '100001';
B(2) := '100002'; TEST(A,B,C);
END ;
/CREATE OR REPLACE PACKAGE TEST_TBL is
TYPE D IS TABLE OF CHAR(6) INDEX BY BINARY_INTEGER;
END;
/CREATE OR REPLACE PROCEDURE TEST(A IN CHAR, B IN TEST_TBL.D, C OUT NUMBER) is========================================================================现在想在VB里提调用Test这个存储过程,
Dim dbConn As New OleDbConnection
Dim dbComm As OleDbCommand dbConn.ConnectionString = "Provider=MSDAORA.1;User ID=XXX;Password=XXX;Data Source=XXX;"
dbConn.Open()
dbComm = dbConn.CreateCommand dbComm.Parameters.Add("A", OleDbType.VarChar, 8).Direction = ParameterDirection.Input
dbComm.Parameters.Add("B", OleDbType.VarBinary).Direction = ParameterDirection.Input
dbComm.Parameters.Add("C", OleDbType.Double, 1).Direction = ParameterDirection.Output dbComm.Parameters("A").Value = "12345678"
dbComm.Parameters("C").Value = 0
Dim a(0 To 5) As Byte
a(0) = "100001"
a(1) = "100002"
dbComm.Parameters("B").Value = a dbComm.CommandText = "{CALL TEST(?,?,?)}"
dbComm.CommandType = CommandType.Text
dbComm.ExecuteNonQuery()
dbConn.Close()请大家帮忙看看,VB里传参数哪里写的不对,谢谢了
这里为何是Output
你存储过程定义的参数不是Out阿