Chinaunix首页 | 论坛 | 博客
  • 博客访问: 137498
  • 博文数量: 25
  • 博客积分: 460
  • 博客等级: 下士
  • 技术积分: 252
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-11 10:48
个人简介

努力学习,谦虚请教,不断提升!

文章分类

全部博文(25)

文章存档

2015年(3)

2014年(4)

2013年(3)

2012年(9)

2011年(6)

我的朋友

分类: DB2/Informix

2011-10-20 17:00:06

  1. 1、创建表t_circuit
    CREATE TABLE t_circuit
  2. (
  3. circuitnumber_cr varchar(255),
  4. aendzhandianobjectid_cr varchar(255),
  5. zendzhandianobjectid_cr varchar(255),
  6. AendTransBuildingObjectid_cr varchar(255),
  7. ZendTransBuildingObjectid_cr varchar(255),
  8. routetype_c varchar(255),
  9. aendtimeslot_c varchar(255),
  10. zendtimeslot_c varchar(255),
  11. trailname_t varchar(255),
  12. ratedesc_t varchar(255),
  13. servicestate_t varchar(255),
  14. aendtimeslot_t varchar(255),
  15. zendtimeslot_t varchar(255)
  16. );

 2、创建存储过程
  1. drop procedure test_12;
  2. create procedure test_12(amename varchar(255),aportname varchar(255),aendtimeslot_t INTEGER DEFAULT 0,zendtimeslot_t INTEGER DEFAULT 0)returning char(50);
  3. define objectid_p varchar(255);
  4. define objectid_t varchar(255);
  5. define trailname_t varchar(255);
  6. define ratedesc_t varchar(255);
  7. define servicestate_t varchar(255);
  8. define circuitobjectid_c varchar(255);
  9. define routetype_c varchar(255);
  10. define aendtimeslot_c varchar(255);
  11. define zendtimeslot_c varchar(255);
  12. define circuitnumber_cr varchar(255);
  13. define aendzhandianobjectid_cr varchar(255);
  14. define zendzhandianobjectid_cr varchar(255);
  15. define AendTransBuildingObjectid_cr varchar(255);
  16. define ZendTransBuildingObjectid_cr varchar(255);
  17. define return_value varchar(50);
  18. define i int;
  19. let return_value='出现多个端口情况';
  20. select count(*) into i from ptp p,me m where p.meobjectid = m.objectid and m.mename=amename and p.portname =aportname;
  21. if i = 1 then
  22. --查询端口id
  23. truncate table t_circuit;
  24. select p.objectid into objectid_p from ptp p,me m
  25. where p.meobjectid = m.objectid and m.mename=amename and p.portname =aportname;
  26. --查询通道
  27. select objectid,trailname,ratedesc,servicestate,aendtimeslot,zendtimeslot
  28. into objectid_t,trailname_t,ratedesc_t,servicestate_t,aendtimeslot_c,zendtimeslot_c from trail
  29. where aendptpobjectid=objectid_p and aendtimeslot=aendtimeslot_t and zendtimeslot=zendtimeslot_t;
  30. if servicestate_t = '实占' then
  31. --查询电路路由
  32. select circuitobjectid,routetype,aendtimeslot,zendtimeslot
  33. into circuitobjectid_c,routetype_c,aendtimeslot_c,zendtimeslot_c from circuitroute
  34. where relatedrouteobjectid=objectid_t;
  35. --查询电路信息
  36. select circuitnumber,aendzhandianobjectid,zendzhandianobjectid,AendTransBuildingObjectid,ZendTransBuildingObjectid
  37. into circuitnumber_cr,aendzhandianobjectid_cr,zendzhandianobjectid_cr,AendTransBuildingObjectid_cr,ZendTransBuildingObjectid_cr
  38. from circuit where objectid=circuitobjectid_c;
  39. --将通道、路由、电路相关信息插入表t_circuit中
  40. INSERT INTO t_circuit VALUES (circuitnumber_cr,aendzhandianobjectid_cr,zendzhandianobjectid_cr,AendTransBuildingObjectid_cr,ZendTransBuildingObjectid_cr,routetype_c,aendtimeslot_c,zendtimeslot_c,trailname_t,ratedesc_t,servicestate_t,aendtimeslot_c,zendtimeslot_c);
  41. return servicestate_t;
  42. elif servicestate_t = '预占' then
  43. --查询电路路由
  44. select circuitobjectid,routetype,aendtimeslot,zendtimeslot
  45. into circuitobjectid_c,routetype_c,aendtimeslot_c,zendtimeslot_c from circuitroute
  46. where relatedrouteobjectid=objectid_t;
  47. --查询电路信息
  48. select circuitnumber,aendzhandianobjectid,zendzhandianobjectid,AendTransBuildingObjectid,ZendTransBuildingObjectid
  49. into circuitnumber_cr,aendzhandianobjectid_cr,zendzhandianobjectid_cr,AendTransBuildingObjectid_cr,ZendTransBuildingObjectid_cr
  50. from circuit where objectid=circuitobjectid_c;
  51. --将通道、路由、电路相关信息插入表t_circuit中
  52. INSERT INTO t_circuit VALUES (circuitnumber_cr,aendzhandianobjectid_cr,zendzhandianobjectid_cr,AendTransBuildingObjectid_cr,ZendTransBuildingObjectid_cr,routetype_c,aendtimeslot_c,zendtimeslot_c,trailname_t,ratedesc_t,servicestate_t,aendtimeslot_c,zendtimeslot_c);
  53. return servicestate_t;
  54. if servicestate_t = '空闲' then
  55. return servicestate_t;
  56. end if;
  57. end if;
  58. elif i !=1 then
  59. return return_value;
  60. end if;
  61. end procedure;
阅读(2199) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~