写好的存储过程:drop type JPWATER.mylist;
drop type JPWATER.mylistnew;
drop procedure JPWATER.InsertBs_labelList;create or replace type JPWATER.mylist as object (
TITLE varchar2(200),
LABEL varchar2(2000),
X NUMBER,
Y NUMBER
);create or replace type JPWATER.mylistnew as table of JPWATER.mylist;create or replace procedure JPWATER.InsertBs_labelList(
mylistnewPara in mylistnew)
as
var_mylist mylist;
var_mylist_id number;
begin
for i in 1..mylistnewPara.count loop
var_mylist:=mylistnewPara(i);
select JPWATER.BS_LABEL_SEQUENCE.nextVal into var_mylist_id from dual;
insert into JPWATER.BS_LABEL(ID,TITLE,LABEL,X,Y)values(var_mylist_id,var_mylist.TITLE,var_mylist.LABEL,var_mylist.X,var_mylist.Y);
end loop;
end InsertBs_labelList;
调用存储过程:(未完成)using (OracleConnection conn = new OracleConnection(connectionString))
{
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "JPWATER.InsertBs_labelList";
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter Param1 = new OracleParameter("mylistnewPara", 这里给一个Oracle类型,因为我的是自定义类型,所以这里不知道该怎么写);
Param1.Direction = ParameterDirection.Input;
Param1.Value = 这里给参数赋值,好像给一个要插入的集合吧;
cmd.Parameters.Add(Param1);
cmd.ExecuteNonQuery(); string sss = "";
}
我的具体问题:
1、怎么给存储过程传递自定义类型的参数?
2、针对我写的这个存储过程,在C#里这个参数怎么写,要写个什么样的集合,才可以在我写的存储过程中正常使用?
drop type JPWATER.mylistnew;
drop procedure JPWATER.InsertBs_labelList;create or replace type JPWATER.mylist as object (
TITLE varchar2(200),
LABEL varchar2(2000),
X NUMBER,
Y NUMBER
);create or replace type JPWATER.mylistnew as table of JPWATER.mylist;create or replace procedure JPWATER.InsertBs_labelList(
mylistnewPara in mylistnew)
as
var_mylist mylist;
var_mylist_id number;
begin
for i in 1..mylistnewPara.count loop
var_mylist:=mylistnewPara(i);
select JPWATER.BS_LABEL_SEQUENCE.nextVal into var_mylist_id from dual;
insert into JPWATER.BS_LABEL(ID,TITLE,LABEL,X,Y)values(var_mylist_id,var_mylist.TITLE,var_mylist.LABEL,var_mylist.X,var_mylist.Y);
end loop;
end InsertBs_labelList;
调用存储过程:(未完成)using (OracleConnection conn = new OracleConnection(connectionString))
{
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "JPWATER.InsertBs_labelList";
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter Param1 = new OracleParameter("mylistnewPara", 这里给一个Oracle类型,因为我的是自定义类型,所以这里不知道该怎么写);
Param1.Direction = ParameterDirection.Input;
Param1.Value = 这里给参数赋值,好像给一个要插入的集合吧;
cmd.Parameters.Add(Param1);
cmd.ExecuteNonQuery(); string sss = "";
}
我的具体问题:
1、怎么给存储过程传递自定义类型的参数?
2、针对我写的这个存储过程,在C#里这个参数怎么写,要写个什么样的集合,才可以在我写的存储过程中正常使用?
或者这个看是否是你想要的
http://blog.csdn.net/crazykiller/archive/2008/05/22/2470041.aspx