• oracle存储过程例子,包含函数,动态执行sql


    如下:

      1 create or replace procedure JDGL_PRO_GET_DFLZJSBB3(p_date1 in varchar2, res OUT sys_refcursor) is
      2 
      3   strSql clob;
      4   
      5    FUNCTION CONACT_SQL_JS(XFAJ0902 IN VARCHAR2,XFAJ0903 IN VARCHAR2) RETURN clob AS
      6    BEGIN
      7   RETURN  '
      8     SELECT
      9            --合计  省
     10            COUNT(CASE WHEN A.XFAJ0909 = ''1'' THEN 1 ELSE NULL END) AS COL1,
     11            --合计  地
     12            COUNT(CASE WHEN A.XFAJ0909 = ''2'' THEN 1 ELSE NULL END) AS COL2,
     13            --合计  县
     14            COUNT(CASE WHEN A.XFAJ0909 = ''3'' THEN 1 ELSE NULL END) AS COL3,
     15            --检察长  省
     16            COUNT(CASE WHEN A.XFAJ0909 = ''1'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''1'') THEN 1 ELSE NULL END) AS COL4,
     17            --检察长  地
     18            COUNT(CASE WHEN A.XFAJ0909 = ''2'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''1'') THEN 1 ELSE NULL END) AS COL5,
     19            --检察长  县
     20            COUNT(CASE WHEN A.XFAJ0909 = ''3'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''1'') THEN 1 ELSE NULL END) AS COL6,
     21            --其他领导班子成员  省
     22            COUNT(CASE WHEN A.XFAJ0909 = ''1'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''2'') THEN 1 ELSE NULL END) AS COL7,
     23            --其他领导班子成员  地
     24            COUNT(CASE WHEN A.XFAJ0909 = ''2'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''2'') THEN 1 ELSE NULL END) AS COL8,
     25            --其他领导班子成员  县
     26            COUNT(CASE WHEN A.XFAJ0909 = ''3'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''2'') THEN 1 ELSE NULL END) AS COL9,
     27            --检委会专职委员  省
     28            COUNT(CASE WHEN A.XFAJ0909 = ''1'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''3'') THEN 1 ELSE NULL END) AS COL10,
     29            --检委会专职委员  地
     30            COUNT(CASE WHEN A.XFAJ0909 = ''2'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''3'') THEN 1 ELSE NULL END) AS COL11,
     31            --检委会专职委员  县
     32            COUNT(CASE WHEN A.XFAJ0909 = ''3'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''3'') THEN 1 ELSE NULL END) AS COL12,
     33            --内设机构负责人  省
     34            COUNT(CASE WHEN A.XFAJ0909 = ''1'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''4'') THEN 1 ELSE NULL END) AS COL13,
     35            --内设机构负责人  地
     36            COUNT(CASE WHEN A.XFAJ0909 = ''2'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''4'') THEN 1 ELSE NULL END) AS COL14,
     37            --内设机构负责人  县
     38            COUNT(CASE WHEN A.XFAJ0909 = ''3'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''4'') THEN 1 ELSE NULL END) AS COL15,
     39            --其他领导干部  省
     40            COUNT(CASE WHEN A.XFAJ0909 = ''1'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''5'') THEN 1 ELSE NULL END) AS COL16,
     41            --其他领导干部  地
     42            COUNT(CASE WHEN A.XFAJ0909 = ''2'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''5'') THEN 1 ELSE NULL END) AS COL17,
     43            --其他领导干部  县
     44            COUNT(CASE WHEN A.XFAJ0909 = ''3'' AND EXISTS(SELECT 1 FROM XFAJ10 BB WHERE BB.XFAJ0900=A.XFAJ0900 AND BB.DELETEFLAG = ''0'' AND BB.XFAJ1002 = ''5'') THEN 1 ELSE NULL END) AS COL18
     45       FROM XFAJ09 A
     46      WHERE A.DELETEFLAG = ''0''
     47        --案件分类
     48        AND A.XFAJ0901 = ''3''
     49        --二级分类
     50        AND A.XFAJ0902 = ' || XFAJ0902 || '
     51        --三级分类
     52        AND A.XFAJ0903 = ' || XFAJ0903 || '
     53        AND A.XFAJ0907 BETWEEN TO_DATE(''2017-11-01'', ''yyyy-mm-dd'')
     54                           AND TO_DATE(''2017-11-30'', ''yyyy-mm-dd'')
     55        AND EXISTS (
     56                     SELECT DMCOD
     57                       FROM G099_HIBER GH
     58                      WHERE (GH.DMPARENTCOD = ''b8652adc-e096-47e1-88fe-d14dbf7b3f9e''
     59                             OR GH.DMCOD = ''b8652adc-e096-47e1-88fe-d14dbf7b3f9e'')
     60                        AND GH.DMCOD = A.CREATEUSERDEPT
     61                   )
     62                   
     63                   ';
     64    END;
     65    
     66    FUNCTION CONACT_SQL_JS2(STR1 IN clob) RETURN clob AS
     67    BEGIN
     68    RETURN STR1;
     69    END;
     70    
     71   begin
     72     
     73   strSql :=
     74                              --第1行
     75                              CONACT_SQL_JS('1','1')
     76                              --第2行
     77          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
     78                              --第3行
     79          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
     80                              --第4行
     81          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
     82                              --第5行
     83          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
     84                              --第6行
     85          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
     86                              --第7行
     87          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
     88                              --第8行
     89          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
     90                              --第9行
     91          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
     92                              --第10行
     93          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
     94                              --第11行
     95          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
     96                              --第12行
     97          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
     98                              --第13行
     99          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    100                              --第14行
    101          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    102                              --第15行
    103          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    104                              --第16行
    105          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    106                              --第17行
    107          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    108                              --第18行
    109          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    110                              --第19行
    111          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    112                              --第20行
    113          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    114                              --第21行
    115          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    116                              --第22行
    117          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    118                              --第23行
    119          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    120                              --第24行
    121          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    122                              --第25行
    123          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    124                              --第26行
    125          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    126                              --第27行
    127          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    128                              --第28行
    129          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    130                              --第29行
    131          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    132                              --第30行
    133          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    134                              --第31行
    135          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    136                              --第32行
    137          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    138                              --第33行
    139          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    140                              --第34行
    141          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    142                              --第35行
    143          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    144                              --第36行
    145          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    146                              --第37行
    147          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    148                              --第38行
    149          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    150                              --第39行
    151          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    152                              --第40行
    153          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    154                              --第41行
    155          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    156                              --第42行
    157          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    158                              --第43行
    159          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    160                              --第44行
    161          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    162                              --第45行
    163          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    164                              --第46行
    165          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    166                              --第47行
    167          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    168                              --第48行
    169          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    170                              --第49行
    171          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    172                              --第50行
    173          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    174                              --第51行
    175          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    176                              --第52行
    177          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    178                              --第53行
    179          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    180                              --第54行
    181          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    182                              --第55行
    183          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    184                              --第56行
    185          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    186                              --第57行
    187          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    188                              --第58行
    189          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    190                              --第59行
    191          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    192                              --第60行
    193          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    194                              --第61行
    195          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    196                              --第62行
    197          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    198                              --第63行
    199          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    200                              --第64行
    201          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    202                              --第65行
    203          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    204                              --第66行
    205          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    206                              --第67行
    207          || ' UNION ALL ' || CONACT_SQL_JS('1','1')
    208   ;
    209   open res for strSql;
    210                   
    211 end JDGL_PRO_GET_DFLZJSBB3;
    除了写代码还会干什么
  • 相关阅读:
    arcgis中面的保存与读取显示
    ExtJs Grid分页时序号自增的实现,以及查询以后的序号的处理
    正则表达式中常用的公式
    常用的javascript日期格式化
    让toolbar.button以及formpanel中的button像个普通按钮
    extjs2.x gridpanel的数据重新加载后分页事件的一点问题
    关于C的函数指针总结
    Python各种应用库收藏
    Linux 用户(user)和用户组(group)管理概述
    linux之旅——走入Linux 世界(2)操作系统的来龙去脉
  • 原文地址:https://www.cnblogs.com/zyx-/p/7943458.html
Copyright © 2020-2023  润新知