iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >第一次自己写存储过程去进行设备录入——存做纪念
  • 939
分享到

第一次自己写存储过程去进行设备录入——存做纪念

2024-04-02 19:04:59 939人浏览 八月长安
摘要

---录设备---存储过程create or replace procedure lu_shebei (r_res out v

---录设备---存储过程

create or replace procedure lu_shebei (r_res out varchar2) is
type t_cursor is ref cursor;
v_mycur t_cursor;
v_yonghu_id yong_hu.id%type;
v_id yonghu_luyou_xiangqing.id%type;
v_luyou_id yonghu_luyou.id%type;
v_shebei_id peixian_jia.id%type;
v_shebei_bianma peixian_jia.bian_hao%type;
v_mokuai_leibie yonghu_luyou_xiangqing.mokuai_leibie%type;
v_mokuai_id peixian_mokuai.id%type;
v_mokuai_bianma peixian_mokuai.bian_hao%type;
v_jusuo_id yong_hu.ju_suo%type;
v_xu_hao yonghu_luyou_xiangqing.xu_hao%type;
v_duankou_leibie peixian_duanzi.shebei_dalei%type;
v_lie varchar2(255);
v_kuai varchar2(255);
v_duankou_id peixian_duanzi.id%type;
v_duankou_hao peixian_duanzi.duanzi_hao%type;
v_sql varchar2(255);
v_count   number(10);
v_count2   number(10);
v_duiduan_shebei_dalei shebei_duiduan_xinxi.duiduan_shebei_dalei%type;
v_lu_shebei_i lu_shebei_i%rowtype;
begin
  v_sql := 'select * from lu_shebei_i';
  open v_mycur for v_sql;
  fetch v_mycur  into v_lu_shebei_i;
  while v_mycur%found loop
    select count(*) into v_count from yong_hu y where y.fuwu_haoma=''||v_lu_shebei_i.fuwu_haoma||'';
     if v_count != 0 then
      ---删用户路由详情
     delete from yonghu_luyou_xiangqing x
      where x.luyou_id in
            (select id
               from yonghu_luyou l
              where l.yonghu_id in
                    (select id
                       from yong_hu y
                      where y.fuwu_haoma =
                            '' || v_lu_shebei_i.fuwu_haoma || ''))
                     and x.mokuai_leibie =''||v_lu_shebei_i.MOKUAI_LEIBIE||'';
           commit;
       --v_yonghu_id
        select y.id into v_yonghu_id from yong_hu y where y.fuwu_haoma=''||v_lu_shebei_i.fuwu_haoma||'';
        --v_jusuo_id
         select y.ju_suo into v_jusuo_id  from yong_hu y where y.fuwu_haoma=''||v_lu_shebei_i.fuwu_haoma||'';
         --v_luyou_id
        select l.id into v_luyou_id from yonghu_luyou l where l.yonghu_id=''||v_yonghu_id||'';
        --v_xu_hao
        select '0'||to_char(count(xu_hao)+1)||'.1' into v_xu_hao from yonghu_luyou_xiangqing x where x.luyou_id =''||v_luyou_id||'';
       --v_shebei_id
        select p.id into v_shebei_id from peixian_jia p where p.bian_hao=''||v_lu_shebei_i.SHEBEI_BIANMA||'';
        --v_shebei_bianma
        select p.bian_hao into v_shebei_bianma from peixian_jia p where p.bian_hao=''||v_lu_shebei_i.SHEBEI_BIANMA||'';
       --v_mokuai_id
        select m.id into v_mokuai_id from peixian_mokuai m where m.peixian_jia_id=''||v_shebei_id||'' and m.lie=''||v_lu_shebei_i.LIE||'' and m.kuai = ''||v_lu_shebei_i.KUAI||'' and m.shebei_dalei=''||v_lu_shebei_i.MOKUAI_LEIBIE||'';
      --v_mokuai_bianma
      select m.bian_hao into v_mokuai_bianma from peixian_mokuai m where m.peixian_jia_id=''||v_shebei_id||'' and m.lie=''||v_lu_shebei_i.LIE||'' and m.kuai = ''||v_lu_shebei_i.KUAI||'' and m.shebei_dalei=''||v_lu_shebei_i.MOKUAI_LEIBIE||'';
  
       --v_duankou_leibie 
       select z.shebei_dalei into v_duankou_leibie from peixian_duanzi z where z.mokuai_id=''||v_mokuai_id||'' and z.duanzi_hao=''||v_lu_shebei_i.DUANZI||'';
        --v_duankou_id
       select z.id into v_duankou_id from peixian_duanzi z where z.mokuai_id=''||v_mokuai_id||'' and z.duanzi_hao=''||v_lu_shebei_i.DUANZI||'';
      
      select count(*)  into v_count2  from yonghu_luyou_xiangqing x where x.mokuai_id =''||v_mokuai_id||'' and x.duankou_hao=''||v_lu_shebei_i.DUANZI||'';
 if v_count2 != 0 then
----判断位置是否被占用
insert into not_insert (
FUWU_HAOMA,
SHEBEI_BIANMA,
LIE,
KUAI,
DUANZI,
zhuangtai)
 select l.zhuanxian_hao,x.shebei_bianma,x.lie,x.kuai,x.duankou_hao,'已占用'
   from yonghu_luyou_xiangqing x, yonghu_luyou l
  where x.luyou_id = l.id
    and x.mokuai_id = '' || v_mokuai_id || ''
    and x.duankou_hao = '' || v_lu_shebei_i.DUANZI || '';
   commit;
else 
---插入路由详情
insert into yonghu_luyou_xiangqing s
  (ID,
   LUYOU_ID,
   XU_HAO,
   WEIZHI_LEIXING,
   WEIZHI_ID,
   JUSUO_ID,
   JIFANG_ID,
   WANG_LUO,
   SHEBEI_LEIBIE,
   SHEBEI_ID,
   SHEBEI_BIANMA,
   JI_LIE,
   JI_JIA,
   JI_KUANG,
   MOKUAI_LEIBIE,
   MOKUAI_ID,
   MOKUAI_BIANMA,
   LIE,
   KUAI,
   DUANKOU_LEIBIE,
   DUANKOU_ID,
   DUANKOU_HAO,
   LUOJI_ZIYUAN,
   LIANJIE_LEIXING,
   LUYOU_MIAOSHU,
   GoNGDAN_HAO,
   CAOZUO_BUMEN,
   BANBEN_HAO,
   CAOZUO_YUAN,
   CAOZUO_SHIJIAN,
   CHUANGJIANREN,
   CHUANGJIAN_SHIJIAN)
values
  (seq_diaodu_luyou_xiangqing.nextval,
   v_luyou_id,
   v_xu_hao,
   '201',
   '',
   v_jusuo_id,
   '',
   '',
   v_lu_shebei_i.SHEBEI_LEIBIE,
   v_shebei_id,
   v_shebei_bianma,
   '',
   '',
   '',
   v_lu_shebei_i.MOKUAI_LEIBIE,
   v_mokuai_id,
   v_mokuai_bianma,
   v_lu_shebei_i.LIE,
   v_lu_shebei_i.KUAI,
   v_duankou_leibie,
   v_duankou_id,
   v_lu_shebei_i.DUANZI,
   '',
   '0',
   '' || v_shebei_id || '.' || v_duankou_leibie || '-3121566.44;-1;0;1',
   '',
   '',
   '1',
   'zmr',
   sysdate,
   '6471011',
   sysdate);
commit;
end if;
else
   insert into insert_log
   values (
   v_lu_shebei_i.fuwu_haoma,
   v_lu_shebei_i.shebei_bianma,
   v_lu_shebei_i.lie,
   v_lu_shebei_i.kuai,
   v_lu_shebei_i.duanzi);
   commit;
   r_res:= v_lu_shebei_i.fuwu_haoma||'用户不存在';
end if;
---查对端模块类别
select s.duiduan_mokuai_leibie into v_mokuai_leibie
 from shebei_duiduan_xinxi s
 where s.shebei_id =''||v_shebei_id||''
   and s.mokuai_leibie =''||v_lu_shebei_i.MOKUAI_LEIBIE||''
   and s.lie = ''||v_lu_shebei_i.lie||''
   and s.kuai =''||v_lu_shebei_i.kuai||''
   and s.qishi_duanzi =''||v_lu_shebei_i.duanzi||'';
---删对端路由详情
     delete from yonghu_luyou_xiangqing x
      where x.luyou_id in
            (select id
               from yonghu_luyou l
              where l.yonghu_id in
                    (select id
                       from yong_hu y
                      where y.fuwu_haoma =
                            '' || v_lu_shebei_i.fuwu_haoma || ''))
                     and x.mokuai_leibie =''||v_mokuai_leibie||'';
           commit;
----录对端
select s.duiduan_shebei_dalei into v_duiduan_shebei_dalei
 from shebei_duiduan_xinxi s
 where s.shebei_id =''||v_shebei_id||''
   and s.mokuai_leibie =''||v_lu_shebei_i.MOKUAI_LEIBIE||''
   and s.lie = ''||v_lu_shebei_i.lie||''
   and s.kuai =''||v_lu_shebei_i.kuai||''
   and s.qishi_duanzi =''||v_lu_shebei_i.duanzi||'';
  if v_duiduan_shebei_dalei != 20 then
insert into yonghu_luyou_xiangqing s (
ID                ,
LUYOU_ID          ,
XU_HAO            ,
WEIZHI_LEIXING    ,
WEIZHI_ID         ,
JUSUO_ID          ,
JIFANG_ID         ,
WANG_LUO          ,
SHEBEI_LEIBIE     ,
SHEBEI_ID         ,
SHEBEI_BIANMA     ,
JI_LIE            ,
JI_JIA            ,
JI_KUANG          ,
MOKUAI_LEIBIE     ,
MOKUAI_ID         ,
MOKUAI_BIANMA     ,
LIE               ,
KUAI              ,
DUANKOU_LEIBIE    ,
DUANKOU_ID        ,
DUANKOU_HAO       ,
LUOJI_ZIYUAN      ,
LIANJIE_LEIXING   ,
LUYOU_MIAOSHU     ,
GONGDAN_HAO       ,
CAOZUO_BUMEN      ,
BANBEN_HAO        ,
CAOZUO_YUAN       ,
CAOZUO_SHIJIAN    ,
CHUANGJIANREN     ,
CHUANGJIAN_SHIJIAN
)
select 
seq_diaodu_luyou_xiangqing.nextval,
v_luyou_id,
v_xu_hao,
'201',
'',
s.DUIDUAN_JUSUO,
'',
'',
s.duiduan_shebei_dalei,
 s.duiduan_shebei_id,
j.bian_hao,----
'',
'',
'',
 s.duiduan_mokuai_leibie,
s.DUIDUAN_MOKUAI_ID,
p.bian_hao,----
 s.duiduan_lie,
 s.duiduan_kuai,
s.DUIDUAN_DUANZI_LEIBIE,
s.DUIDUAN_DUANZI_ID,
 s.duiduan_qishi_duanzi,
'',
'0',
''||v_shebei_id||'.'||v_duankou_leibie||'-3121566.44;-1;0;1',
'',
'',
'1',
'zmr',
sysdate,
'6471011',
sysdate
 from shebei_duiduan_xinxi s
 left join peixian_mokuai p on s.duiduan_mokuai_id =p.id
 left join peixian_jia j on s.duiduan_shebei_id=j.id
 where s.shebei_id =''||v_shebei_id||''
   and s.mokuai_leibie =''||v_lu_shebei_i.MOKUAI_LEIBIE||''
   and s.lie = ''||v_lu_shebei_i.lie||''
   and s.kuai =''||v_lu_shebei_i.kuai||''
   and s.qishi_duanzi =''||v_lu_shebei_i.duanzi||'';
commit;
else 
  insert into yonghu_luyou_xiangqing s (
ID                ,
LUYOU_ID          ,
XU_HAO            ,
WEIZHI_LEIXING    ,
WEIZHI_ID         ,
JUSUO_ID          ,
JIFANG_ID         ,
WANG_LUO          ,
SHEBEI_LEIBIE     ,
SHEBEI_ID         ,
SHEBEI_BIANMA     ,
JI_LIE            ,
JI_JIA            ,
JI_KUANG          ,
MOKUAI_LEIBIE     ,
MOKUAI_ID         ,
MOKUAI_BIANMA     ,
LIE               ,
KUAI              ,
DUANKOU_LEIBIE    ,
DUANKOU_ID        ,
DUANKOU_HAO       ,
LUOJI_ZIYUAN      ,
LIANJIE_LEIXING   ,
LUYOU_MIAOSHU     ,
GONGDAN_HAO       ,
CAOZUO_BUMEN      ,
BANBEN_HAO        ,
CAOZUO_YUAN       ,
CAOZUO_SHIJIAN    ,
CHUANGJIANREN     ,
CHUANGJIAN_SHIJIAN
)
select 
seq_diaodu_luyou_xiangqing.nextval,
v_luyou_id,
v_xu_hao,
'201',
'',
s.DUIDUAN_JUSUO,
'',
'',
s.duiduan_shebei_dalei,
 s.duiduan_shebei_id,
j.bian_hao,----
'',
'',
'',
 s.duiduan_mokuai_leibie,
s.DUIDUAN_MOKUAI_ID,
p.bian_hao,----
 s.duiduan_lie,
 s.duiduan_kuai,
s.DUIDUAN_DUANZI_LEIBIE,
s.DUIDUAN_DUANZI_ID,
 s.duiduan_qishi_duanzi,
'',
'0',
''||v_shebei_id||'.'||v_duankou_leibie||'-3121566.44;-1;0;1',
'',
'',
'1',
'zmr',
sysdate,
'6471011',
sysdate
 from shebei_duiduan_xinxi s
 left join fenxian_he_duanzi p on s.DUIDUAN_DUANZI_ID =p.id
 left join fenxian_he j on s.duiduan_shebei_id=j.id
 where s.shebei_id =''||v_shebei_id||''
   and s.mokuai_leibie =''||v_lu_shebei_i.MOKUAI_LEIBIE||''
   and s.lie = ''||v_lu_shebei_i.lie||''
   and s.kuai =''||v_lu_shebei_i.kuai||''
   and s.qishi_duanzi =''||v_lu_shebei_i.duanzi||'';
commit;
end if;
----删除中间表
delete from lu_shebei_i where fuwu_haoma=''||v_lu_shebei_i.fuwu_haoma||'';
  fetch v_mycur  into v_lu_shebei_i;
end loop;
close   v_mycur;
commit;
end lu_shebei;

----未录入设备的  log 日志

select * from insert_log for update;          --无卡片
select * from not_insert for update;          --新录入地址已占用的服务号码

--录设备中间表

select * from lu_shebei_i for update;


---执行存储

declare
  v_res varchar2(254);
begin
    lu_shebei(v_res);
end;


您可能感兴趣的文档:

--结束END--

本文标题: 第一次自己写存储过程去进行设备录入——存做纪念

本文链接: https://www.lsjlt.com/news/36073.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql拒绝访问怎么办
    mysql 出现拒绝访问的原因和解决方法:权限问题:授予用户适当的数据库或表访问权限。防火墙或安全组:允许对 mysql 端口(3306)的入站连接。密码错误:重置 mysql 密码或使...
    99+
    2024-05-18
    mysql
  • mysql怎么比较日期大小
    mysql 中比较日期大小的方法包括:直接比较两个日期,使用 、= 运算符。使用 date_format() 函数将日期转换为字符串,然后比较字符串大小。使用 str_to_date()...
    99+
    2024-05-18
    mysql
  • mysql怎么加锁
    mysql中加锁是一种确保数据并发访问一致性的机制。加锁方式有:表级锁(对整个表加锁)和行级锁(对特定行加锁)。加锁类型有共享锁(允许读取但禁止修改)、排他锁(禁止读取和修改)和意向锁(...
    99+
    2024-05-18
    mysql 并发访问
  • mysql误删数据怎么恢复
    mysql误删数据可通过以下步骤恢复:停止数据库服务,防止数据覆盖。若开启binlog日志,可从中提取删除语句,再重新执行后将数据恢复。使用恢复工具修复表文件或恢复事务。从备份中恢复数据...
    99+
    2024-05-18
    mysql
  • 怎么判断mysql安装成功
    成功安装 mysql 的方法:检查命令行界面版本号;连接到 mysql 服务器,输入 "mysql -u root -p";创建数据库,输入 "create database test;...
    99+
    2024-05-18
    mysql linux macos 防火墙配置
  • mysql怎么修改表名
    如何修改 mysql 表名:检查当前表名:show tables;运行 rename table 语句:rename table 旧表名 to 新表名;验证更改:show tables;...
    99+
    2024-05-18
    mysql
  • mysql删除的表怎么恢复
    mysql 中已删除表的恢复方法主要涉及以下步骤:检查 binlog 日志以获取删除事务信息;使用数据恢复工具扫描数据库文件;从备份还原表数据;或联系 mysql 支持寻求帮助。 My...
    99+
    2024-05-18
    mysql 数据丢失
  • mysql复合主键怎么写
    在 mysql 中编写复合主键:在 create table 语句中使用 primary key 约束并列出字段名称。复合主键的好处包括提高查询效率、保证数据完整性和强制数据顺序。注意选...
    99+
    2024-05-18
    mysql
  • 怎么查看mysql数据库版本
    如何查看 mysql 数据库版本?连接到数据库并执行查询:select version();检查命令行或 mysql workbench 中的服务器属性。 如何查看 MySQL 数据库...
    99+
    2024-05-18
    mysql linux
  • 怎么检测mysql安装成功
    要验证 mysql 安装是否成功,请执行以下步骤:检查系统服务是否正在运行。使用 mysql 命令行工具连接到服务器。创建一个测试数据库并使用它。在数据库中创建一个测试表。插入测试数据并...
    99+
    2024-05-18
    mysql linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作