能否说的详细点 如果将包头改为: Package definition: CREATE OR REPLACE PACKAGE SimplePackage AS
TYPE t_id is TABLE of NUMBER(5) INDEX BY BINARY_INTEGER; TYPE t_Course is TABLE of VARCHAR2(10) INDEX BY BINARY_INTEGER; TYPE t_Dept is TABLE of VARCHAR2(5) INDEX BY BINARY_INTEGER;
PROCEDURE proc1 ( i_id in number, ao_course OUT t_Course, ao_dept OUT t_Dept ); END SimplePackage; 我可以通过以下方法调用: OleDbCommand myCMD = new OleDbCommand ("{call SimplePackage.proc1(?, {resultset 4, ao_course,ao_dept})}", Oraclecon); myCMD.Parameters.Add("ID", OleDbType.Numeric, 4).Value = 123; OleDbDataReader myReader; myReader = myCMD.ExecuteReader(); int x; int count; count = 0; while (myReader.Read())
如果将包头改为:
Package definition:
CREATE OR REPLACE PACKAGE SimplePackage AS
TYPE t_id is TABLE of NUMBER(5)
INDEX BY BINARY_INTEGER;
TYPE t_Course is TABLE of VARCHAR2(10)
INDEX BY BINARY_INTEGER;
TYPE t_Dept is TABLE of VARCHAR2(5)
INDEX BY BINARY_INTEGER;
PROCEDURE proc1
(
i_id in number,
ao_course OUT t_Course,
ao_dept OUT t_Dept
);
END SimplePackage;
我可以通过以下方法调用:
OleDbCommand myCMD = new OleDbCommand
("{call SimplePackage.proc1(?, {resultset 4, ao_course,ao_dept})}", Oraclecon);
myCMD.Parameters.Add("ID", OleDbType.Numeric, 4).Value = 123;
OleDbDataReader myReader;
myReader = myCMD.ExecuteReader();
int x;
int count;
count = 0;
while (myReader.Read())
{
for (x = 0; x <= myReader.FieldCount - 1; x++)
Console.Write(myReader.GetValue(x) + " ");
Console.WriteLine();
count += 1;
}
MessageBox.Show(count + " Rows Returned.");
myReader.Close();
Oraclecon.Close();
但如果入参类型设置为PL/SQL中自定义类型,由于OleDbType中没有对应类型,不知如何下手。
请多多指教!!!!!!!!!1
楼主,你的存储过程我看的不是很懂?但如果入参类型设置为PL/SQL中自定义类型,由于OleDbType中没有对应类型,不知如何下手。//
对这句话。我觉得应该能找到具体对应的类型。你不妨把你定义的类型写出来看看,是不是有什么类型能代替它。对于sqlHelper类要另外下的。
请问sqlhelp在哪里有下载的,如果你有的话,可否发一份给我,.
多谢了!!!!