zoukankan      html  css  js  c++  java
  • 存储过程学习(一)

          在学《数据库》这门课的时候老师讲“过存储过程”这东西,但一直没有自己写过,语法也不熟。现在公司要升级ERP系统了,这任务落在了我一个人身上。前一段时间改写了一部分程序功能但数据库的操作一直都采用在代码中拼接SQL的方式。后来在网上看到说这种方式容易被注入,而且在处理大量数据时效率很低,所以正考虑将之前的操作全部换成存储过程。

          这次要处理的表比较简单:

          表 atr_win_m

          表名 atr_win_m

         主要想实现的功能为:

         1.根据id_win_b 和 clm_filed字段查询是否有相应记录

         2.有则更新,无则插入

         3.插入时要调用另一个已经写好的存储过程pr_amt_max_no来生成ID号

         4.插入完成后要调用存储过程pr_amt_max_update 更新表atm_max_no中相应的字段值

    为简单起见,这里就不列出表atm_max_no和上面两个已经写好的存储过程的详细内容了。 

    ----------------------------------------------------------------------------------------------

    遇到了问题:pr_amt_max_no,和pr_amt_max_update这两个存储过程都是用select返回的结果集(虽然里面只包含两三个字段),网上有资料说一个存储过程中不能访问另一个存储过程产生的结果集。

    ----------------------------------------------------------------------------------------------

    ---------------------------------------------------------------------------------------------

    解决: 看来是不能在这个存储过程中直接进行判断并调用上面两个存储过程了,所以功能做了下修改:

    根据id_win_b 和clm_filed字段查询是否有相应记录,有则更新并返回0,无则返回1。然后在CS代码中具体去处理。

    存储过程如下:

  • 相关阅读:
    数据量你造吗-JAVA分页
    编写高质量代码改善java程序的151个建议——[1-3]基础?亦是基础
    概率论快速学习03:概率公理补充
    概率论快速学习02:概率公理
    项目ITP(六) spring4.0 整合 Quartz 实现动态任务调度
    项目ITP(五) spring4.0 整合 Quartz 实现任务调度
    编写高质量代码改善java程序的151个建议——导航开篇
    概率论快速学习01:计数
    改善JAVA代码01:考虑静态工厂方法代替构造器
    Python快速学习10: 循环的对象及设计 (生活的规律)
  • 原文地址:https://www.cnblogs.com/yjl49/p/2371986.html
Copyright © 2011-2022 走看看