大家好,我最近在用C#访问Oracle数据库 进行数据批量删除的操作,存储过程如下,在调试过程中,程序会自动中断。
存储过程:
PROCEDURE PRO_LIST_DELETE(
IN_LIST_IDS IN NVARCHAR2,
OUT_RESULT OUT NUMBER
)AS
BEGIN
OUT_RESULT:=1;
DELETE FROM listtable WHERE ID IN( IN_LIST_IDS);
EXCEPTION WHEN OTHERS THEN
ROLLBACK;
OUT_RESULT:=0;
END PRO_LIST_DELETE;
c#代码:
OracleParameter[] op = {
new OracleParameter("IN_LIST_IDS",OracleType.NVarChar),
new OracleParameter("OUT_RESULT",OracleType.Number)
};
op[0].Value = addressListIds;
op[1].Direction = ParameterDirection.Output;
备注:ID在数据表中定义的是number型的。
请各位大侠给予指教。
动态执行删除操作
EXECUTE IMMEDIATE用'DELETE FROM listtable WHERE ID IN(' || IN_LIST_IDS || ');'
最后那个;是多余的。
想这样还是用绑定变量吧。