在执行P处理时需要根据传经来的参数来写where条件的时候可能因为,参数太多,或者传值的范围太多而导致sql的where条件不好写。嵌套什么的都out。

最好的方法是,定义一个变量如: v_strSQL VARCHAR2(20000);然后执行的时候写:  v_strSQL := 'SELECT FTBL.NENDO, FTBL.NENDO_MEISHO, FTBL.FUKUSHIKI_RENBAN, FTBL.SHIKKO_NO || ''_'' || FTBL.SHIKKO_NO_EDABAN AS SHISHUTSUNO, ' ||
        'CASE FTBL.DATA_SHUBETSU WHEN ''0'' THEN ''歳入'' WHEN ''1'' THEN ''歳出'' WHEN ''3'' THEN ''資産'' WHEN ''4'' THEN ''決算整理'' WHEN ''5'' THEN ''マッチング'' WHEN ''7'' THEN ''連結'' ELSE '''' END AS KBN, ' ||
        'TO_CHAR(TO_DATE(FTBL.SHIKKO_DATE, ''YYYY/MM/DD''), ''YYYY/MM/DD'') AS SHIKKO_DATE, ' ||
        'FTBL.SHUKANKA, FTBL.SHUKANKA_REF.BUMON_MEISHO, ' ||
        'FTBL.SHIKKO_KIKAN, FTBL.SHIKKO_KIKAN_REF.BUMON_MEISHO, ' ||
        'FTBL.KAIKEI, FTBL.KAIKEI_REF.KAIKEI_MEISHO, ' ||
        'NVL(FTBL.TANSHIKI_KAMOKU.KANKOMOKU.KAN, '''') AS KAN, NVL(FTBL.TANSHIKI_KAMOKU.KANKOMOKU.KOU, '''') AS KOU, NVL(FTBL.TANSHIKI_KAMOKU.KANKOMOKU.MOKU, '''') AS MOKU, ' ||
        'NVL(FTBL.TANSHIKI_KAMOKU.JIGYO.JIGYO_DAI, '''') AS DAI, NVL(FTBL.TANSHIKI_KAMOKU.JIGYO.JIGYO_CHU, '''') AS CHU, ' ||
        'NVL(FTBL.TANSHIKI_KAMOKU.JIGYO.JIGYO_SHO, '''') AS SHO, NVL(FTBL.TANSHIKI_KAMOKU.JIGYO.JIGYO_SAI, '''') AS SAI, ' ||
        'NVL(FTBL.TANSHIKI_KAMOKU.SETSU.SETSU, '''') AS SETSU, NVL(FTBL.TANSHIKI_KAMOKU.SETSU.SAISETSU, '''') AS SAISETSU, NVL(FTBL.TANSHIKI_KAMOKU.SETSU.SAISAI, '''') AS SAISAI, ' ||
        'CASE DATA_SHUBETSU WHEN ''0'' THEN NVL(FTBL.SAINYU_KAMOKU_REF.TANSHIKI_MEISHO,'''') WHEN ''1'' THEN NVL(FTBL.SAISHTSU_KAMOKU_REF.TANSHIKI_MEISHO,'''') ELSE '''' END AS KAMOKUMEI, ' ||
        'SWK_NT.KARIKATA.KINGAKU, SWK_NT.REMARKS ' ||
        'FROM FUKUSHIKI_TAB FTBL, TABLE(FTBL.SHIWAKE_DATA) SWK_NT ' ||
        'WHERE FTBL.DATA_SHUBETSU = ''' || wkDataType || ''' AND FTBL.NENDO = ' || wkNendo ||
        ' AND FTBL.SHIKKO_DATE >= ''' || wkShikkoDateFrom || ''' AND FTBL.SHIKKO_DATE <= ''' || wkShikkoDateTo || ''' ';在需要根据参数来写where的时候:

IF wkDataType = '1' THEN    /* データ種別が歳出の場合のみ */
    IF wkDaiJigyo != '00' THEN    /* 大事業 */
      v_strSQL := v_strSQL || 'AND FTBL.SAISHTSU_DAI_JIGYO_REF.HYOJI_TANSHIKI.JIGYO.JIGYO_DAI = ''' || wkDaiJigyo || ''' ';
    END IF;
    IF wkChuJigyo != '00' THEN    /* 中事業 */
      v_strSQL := v_strSQL || 'AND FTBL.SAISHTSU_CHU_JIGYO_REF.HYOJI_TANSHIKI.JIGYO.JIGYO_CHU = ''' || wkChuJigyo || ''' ';
    END IF;
    IF wkShoJigyo != '00' THEN    /* 小事業 */
      v_strSQL := v_strSQL || 'AND FTBL.SAISHTSU_SHO_JIGYO_REF.HYOJI_TANSHIKI.JIGYO.JIGYO_SHO = ''' || wkShoJigyo || ''' ';
    END IF;
    IF wkSaiJigyo != '00' THEN    /* 細事業 */
      v_strSQL := v_strSQL || 'AND FTBL.SAISHTSU_SAI_JIGYO_REF.HYOJI_TANSHIKI.JIGYO.JIGYO_SAI = ''' || wkSaiJigyo || ''' ';
    END IF;
  END IF;

P处理的中有大量判断条件是的sql写法相关推荐

  1. 关于类似“石头、剪刀、布”游戏,需要循环判断的,判断条件设计技巧

    问题描述: 编写的游戏程序:猜拳游戏 - 人机大战 人出的手势包括:石头.剪刀.不 电脑出的手势包括:石头.剪刀.不 这样,一共会出现3x3=9中情况,除去人和电脑出相同手势的情况,还剩下7种 在一般 ...

  2. 设置岗哨为-1的直接插入排序算法的java代码实现(改进上次的判断条件过多问题)

    在上次的代码执行过程中,未设置返回索引为-1,对于三种情况需要逐一进行判断,执行不同的策略,该方案优化上述的缺陷,使之达到一种自适应状态,相对巧妙的解决了冲突域的问题:注意的细节问题在代码中有详细的注 ...

  3. 0字符串 if mapper test_mybatis的if判断条件将字符串解析成了数字

    mybatis可以帮我们自动映射字段,在mapper.xml文件中,我们可以不用去写jdbcType来明确指定数据类型,它会自动解析成相对应的java数据类型,每次在使用了mybatis-genera ...

  4. R语言ggplot2可视化:通过在element_text函数中设置ifelse判断条件自定义标签文本的显示格式:例如、粗体、斜体等

    R语言ggplot2可视化:通过在element_text函数中设置ifelse判断条件自定义标签文本的显示格式:例如.粗体.斜体等 目录

  5. pandas使用query函数基于判断条件获得dataframe中满足条件的数据行(row)的索引列表(index of rows matching conditions in dataframe)

    pandas使用query函数基于判断条件获得dataframe中满足条件的数据行(row)的索引列表(index of rows matching conditions in dataframe) ...

  6. 查询数据库返回cursor,如何判断没有符合条件的记录。判断条件不是cursor==null 哦

    如题,接着说,如果查询数据库返回cursor,要判断记录是否为空,然后根据结果进行不同的操作.应该如何写判断条件呢? 很简单,用这个函数:cursor.getCount()  .  如果记录为空,该函 ...

  7. jpa中使用Query判断条件查询

    jpa中使用Query判断条件查询 @Query(value = " select m.* from mining_area as m " +" where 1 = 1& ...

  8. 关于JS中switch语句的判断条件!

    <!--不使用parseInt()函数--><!DOCTYPE HTML><html><head><meta http-equiv="C ...

  9. 获取项目版本号与设置引导页的判断条件

    当我们首次安装软件打开后,会有5页左右的ScrollView滑动图片,来介绍这个软件的特色和功能,我们叫做引导页.这个引导页只有用户安装后第一次使用的时候才会加载,或者当用户进行版本升级后再次运行的首 ...

最新文章

  1. js websocket同步等待_WebSocket硬核入门:200行代码,教你徒手撸一个WebSocket服务器...
  2. hdu4940 有上下界的无源可行流判断
  3. linux光盘安装yum,[转载]将linux安装光盘配置为一个本地yum源
  4. java版spring cloud+spring boot+redis多租户社交电子商务平台(十二)断路器监控(Hystrix Dashboard)...
  5. [register]-ARMV8系统中通用寄存器和系统寄存器的介绍和总结
  6. linux安装php pgsql,Linux下apache php+phppgadmin+postgresql安装配置
  7. Connect 2016过后,你的信仰势必需要更大的容器
  8. [Leetcode][第114题][JAVA][二叉树展开为链表][递归][迭代]
  9. springboot请求处理
  10. Circular microphone array 1
  11. 仿XP系统的任务栏菜单
  12. 进阶篇第九期:相册与拍照的后处理
  13. 破解wifi并实施中间人攻击
  14. 字符编码:GBK、GB2312、UTF-8
  15. 磁盘列阵技术介绍及其部署
  16. 2021-01-21:脉冲神经网络学习日志
  17. Spring实战第五章idea复现
  18. openlayers学习——3、openlayers加点加圆加图标图片
  19. 读书有益——》小朋友的诗(六)
  20. ALTER PLUGGABLE DATABASE xxx CLOSE卡住

热门文章

  1. 数学速算法_简单易学的速算法,贴墙上背,孩子次次数学100分!
  2. UnrealEngine5实操--基础概念(持续补充)
  3. 我欢喜,为着时光所有的馈赠
  4. 部分适配尼康Z卡口 三阳推出五款大光圈镜头
  5. 清华大学计算机系女生人数,2013年清华大学在各省市录取人数及男女比例
  6. 深入机器学习系列之:隐式狄利克雷分布(1)
  7. 2021年团体程序设计天梯赛-总决赛 L3-2 还原文件
  8. 【韧性设计】韧性设计模式:重试、回退、超时、断路器
  9. 解决导出Excel表格,浏览器不下载
  10. kali下一句话升级metasploit