CREATE OR REPLACE PACKAGE "TESTUSER"."TESTPACKEAGE"
type outlist is REF CURSOR;
Procedure getSeniorHighSchool(
return_list out outlist
); CREATE OR REPLACE PACKAGE BODY "TESTUSER"."TESTPACKEAGE" Procedure getSeniorHighSchool(
return_list out outlist
)as
begin
open return_list
for
select * from Test
end; 以上是我Oracle中定义的一个包
我现在想在CS页面里访问这个包
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=msdaora;Data Source=OracleDB;User Id=;Password=;";
OleDbCommand comm = new OleDbCommand();
OleDbTransaction trans = null;
comm.Connection = conn;
comm.CommandText = " Exec TESTPACKEAGE.getSeniorHighSchool(1) "; *******主要是这里的Sql 语句如何写我想用SQL语句的访问形式而不是comm.CommandType = CommandType.StoredProcedure这种形式,*******************
DataSet dataSet = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter();
try
{ conn.Open();
trans = conn.BeginTransaction(); comm.Transaction = trans;
adapter.SelectCommand = comm;
adapter.Fill(dataSet, "table");
trans.Commit();
return dataSet.Tables["table"];
}
catch
{
if (trans != null) trans.Rollback();
throw;
}
finally{conn.close();}问题是*******标识的那部分
type outlist is REF CURSOR;
Procedure getSeniorHighSchool(
return_list out outlist
); CREATE OR REPLACE PACKAGE BODY "TESTUSER"."TESTPACKEAGE" Procedure getSeniorHighSchool(
return_list out outlist
)as
begin
open return_list
for
select * from Test
end; 以上是我Oracle中定义的一个包
我现在想在CS页面里访问这个包
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=msdaora;Data Source=OracleDB;User Id=;Password=;";
OleDbCommand comm = new OleDbCommand();
OleDbTransaction trans = null;
comm.Connection = conn;
comm.CommandText = " Exec TESTPACKEAGE.getSeniorHighSchool(1) "; *******主要是这里的Sql 语句如何写我想用SQL语句的访问形式而不是comm.CommandType = CommandType.StoredProcedure这种形式,*******************
DataSet dataSet = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter();
try
{ conn.Open();
trans = conn.BeginTransaction(); comm.Transaction = trans;
adapter.SelectCommand = comm;
adapter.Fill(dataSet, "table");
trans.Commit();
return dataSet.Tables["table"];
}
catch
{
if (trans != null) trans.Rollback();
throw;
}
finally{conn.close();}问题是*******标识的那部分
对了,那么请问如何在SQLPLus中执行带参数的包啊
就如同上面那个包在SQLPlus中如何执行?
--参照下面的写
EXECUTE IMMEDIATE 'CALL PACKAGE_NAME.PROCEDURE_NAME(''' || PARA1 ||
''',''' || PARA2 || ''')';