首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在C#中调用存储的Oracle过程

在C#中调用存储的Oracle过程
EN

Stack Overflow用户
提问于 2017-09-27 22:44:20
回答 1查看 1.2K关注 0票数 1

所以我想在C#中调用一个存储过程(Oracle),但是我不知道确切的语法,另外,我也不知道它是否需要参数,因为这个过程接受参数并自动分配它,所以我应该传递给它什么参数?

下面是存储过程

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create or replace procedure p_delete_tt_duration_10min is
new_status varchar2(50);
status     varchar2(20);
p_tkt      varchar2(50);

cursor prt_cursor is

 SELECT a.id,
        a.ticketno,
        to_number(a.outagedurationmin),
        a.fault_occur_time,
        a.auto_clear_time
   FROM pmp_bpm_troubleticket a
  WHERE a.fault_id IS NOT NULL
    AND a.fault_occur_time IS NOT NULL
       --and a.generatedby = 'Automatic'
    AND ((a.tt_type IN ('Cell/Sector Down',
                        '3G Cell Down Alarm',
                        '4G Cell Down Alarm') AND
        to_number(a.outagedurationmin) < 18) OR
        (a.tt_type IN ('Site Down',
                        'NodeB Down Alarm',
                        'ENodeB Down Alarm',
                        'TRX/Equipment Faulty',
                        'Processing Problem',
                        'GPRS Down',
                        'Media disconnect',
                        'Hardware Fault',
                        'Link Down') and
        to_number(a.outagedurationmin) < 10))
    AND a.fault_occur_time >= '2017-04-01 00:00:00' order by to_number(a.outagedurationmin) desc;


begin
for prt_temp in prt_cursor loop
  p_tkt := prt_temp.id;
   delete from wf_assignment t
    where t.assignment_id in
       (select id from wf_dai_ban_task a where a.primary_key = p_tkt);
commit;
delete from wf_dai_ban_task a where a.primary_key = p_tkt;
commit;
delete from wf_yi_ban_task a where a.primary_key = p_tkt;
commit;
delete from pmp_bpm_task_expand_info a where a.primary_key = p_tkt;
commit;
delete from PMP_BPM_CC_LIST a where a.primarykey = p_tkt;
commit;
delete FROM PMP_BPM_TROUBLETICKET_PROCESS D
 WHERE D.ACTIVITYID IN (SELECT W.ID
                          FROM PMP_BPM_TROUBLETICKET_ACTIVITY W
                         WHERE W.PRIMARYKEY = p_tkt);
commit;
delete from PMP_BPM_TROUBLETICKET_ACTIVITY a
 where a.primarykey = p_tkt;
commit;
delete from PMP_BPM_TROUBLETICKET a where a.id = p_tkt;
commit;

end loop;
 end;

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-27 22:59:17

您检查过任何文档吗,这是非常基本的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string constr = "User Id=scott;Password=tiger;Data Source=oracle";
OracleConnection con = new OracleConnection(constr);
con.Open();

OracleCommand cmd = new OracleCommand("BEGIN p_delete_tt_duration_10min; END;", con);
// Auto-commit changes
cmd.ExecuteNonQuery();

// Clean up
cmd.Dispose();
con.Dispose();

你也可以写

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
OracleCommand cmd = new OracleCommand("p_delete_tt_duration_10min", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46462593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文