`

函数Demo

阅读更多
函数写法:
create or replace function f_getGoodsKuChun(gdId in varchar2)
  return varchar2
as
   v_gd_ismany varchar2(1);
   v_gd_id_child  varchar2(32);
   v_amount_num  number(12,2);
   v_yw_num  number(12,2); --业务数量
   v_min_num  number(12,2);
   type refcur_type is REF CURSOR;
   pcur refcur_type;
begin
v_gd_ismany := '0';
v_yw_num:=0;
v_amount_num:=0;

select t.GD_ISMANY into v_gd_ismany from t_ec_goods2 t where t.gd_id = gdId;

if v_gd_ismany='1' then --组合商品
     open pcur for
          select gd_id_child,cd_amount from t_ec_goodschild where gd_id=gdId order by cd_row;
          loop
          fetch pcur into v_gd_id_child,v_amount_num;
                if pcur%notfound then
                    return v_min_num;
                    exit;
                end if;
               
                select sum(nvl(GD_SL,0) - nvl(frozen_amount,0) - nvl(out_amount,0)) into v_yw_num
          from t_jxc_kc_factstock f,t_jxc_da_storeroom s
          where f.gd_id=v_gd_id_child
          and f.room_bm=s.room_bm and s.room_yn='Y';

                v_amount_num := FLOOR(v_yw_num/v_amount_num);
               
                if v_min_num is null then
                   v_min_num := v_amount_num;
                else
                   if v_amount_num < v_min_num then
                      v_min_num := v_amount_num;
                   end if;
                end if;

     end loop;
     Close pcur;
else --普通商品
      select sum(nvl(f.GD_SL,0) - nvl(f.frozen_amount,0) - nvl(f.out_amount,0)) into v_min_num
      from t_jxc_kc_factstock f,t_jxc_da_storeroom s
where f.room_bm = s.room_bm and  s.room_yn = 'Y' and f.gd_id = gdId;
end if;


  return v_min_num;


end f_getGoodsKuChun;

Java中调用函数的代码:
public int checkKucun(String gdId) {
Connection con = null;
CallableStatement ps = null;
int re = 0;
try {
con = commerceDao.getCurrentConnection();
// 调用存储过程
ps = con.prepareCall("{?=call f_getGoodsKuChun(?)}");
ps.registerOutParameter(1, Types.INTEGER);
ps.setString(2, gdId);

// 执行
ps.execute();
// 获得输出结果
re = ps.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (ps != null) {
ps.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e1) {
e1.printStackTrace();
}
}
return re;

}
分享到:
评论

相关推荐

    demo_fieldII计算响应函数demo_DEMO_阵元_

    标题中的"demo_fieldII计算响应函数demo_DEMO_阵元_"暗示了一个关于如何使用FieldII来计算阵列天线的响应函数的演示或示例。下面我们将深入探讨相关知识点。 1. **FieldII**:FieldII是一个开源的三维电磁波传播和...

    自写的回调函数demo

    在这个“自写的回调函数demo”中,我们重点探讨Delphi 7环境下如何实现回调机制,以及它在数据传输过程中的应用。 首先,让我们深入理解回调函数的基本概念。在Delphi 7中,回调函数通常通过指针来实现,这个指针...

    Android回调函数demo

    在这个“Android回调函数demo”中,我们将深入探讨回调函数在Android应用中的运用及其工作原理。 首先,回调函数在Android中的核心应用场景是事件监听。例如,当我们点击一个按钮,我们希望执行一些操作。这时,...

    SDK和成员函数作为回调函数demo

    在这个"SDK和成员函数作为回调函数demo"中,我们将深入探讨如何在SDK的上下文中使用成员函数作为回调函数。 首先,SDK中的接口通常是通过函数调用来实现功能的,这些函数可能需要开发者提供一个函数指针,以便在...

    Java通过JNI调用C函数Demo

    总结来说,这个Demo展示了如何使用JNI在Java应用程序中调用C函数。通过定义Java中的native方法,生成C头文件,编写C函数实现,最后将C代码编译为DLL,Java就能成功调用这些本地函数。这种技术在需要高效计算、访问...

    SQL存储过程、函数Demo

    本资料包“SQL存储过程、函数Demo”提供了一个综合性的学习和实践平台,包括数据库文件以及C#语言调用SQL存储过程和函数的示例。 首先,我们要理解什么是SQL存储过程。存储过程是预编译的SQL语句集合,它可以包含多...

    构造函数Demo

    在C#编程语言中,构造函数(Constructor)是类的一个特殊方法,它的主要作用是在创建对象时初始化新实例。构造函数的名称必须与类名完全相同,并且没有返回类型,即使是void也不行。本篇文章将深入探讨C#中的构造...

    hive自定义函数demo

    本示例“hive自定义函数demo”将探讨如何在Hive中开发和使用自定义函数(UDF),这对于扩展Hive的功能和适应特定业务需求至关重要。下面,我们将深入学习与Hive自定义函数相关的知识。 1. **什么是Hive UDF?** ...

    回调函数DEMO.rar

    在这个"回调函数DEMO.rar"中,我们可以期待看到一系列关于如何在DELPHI中实现和使用回调函数的例子。可能包括以下知识点: 1. **函数指针**:在DELPHI中,函数指针是一种类型,它能够存储函数的地址,从而使我们...

    MFC 多个窗口消息共享同一个消息处理函数demo

    "MFC 多个窗口消息共享同一个消息处理函数demo"就是这样一个示例,它展示了如何在MFC应用中实现这一功能。 首先,我们需要理解MFC中的消息机制。在MFC中,窗口类(如CWnd)继承自CObject,并且覆盖了默认的消息映射...

    VB6环境纯Win32 API函数写窗口,VB6使用Unicode版API函数Demo

    "VB6使用Unicode版API函数Demo"部分强调了使用Unicode字符集的API函数。Unicode是一种包含几乎世界上所有字符的编码标准,确保了跨语言和跨平台的文本处理能力。在VB6中,默认使用的是ANSI字符集,但为了支持多语言...

    CPP调用JAVA函数Demo

    标题 "CPP调用JAVA函数Demo" 涉及的核心技术是C++(CPP)与Java(JAVA)之间的互操作性,这通常通过Java Native Interface(JNI)实现。JNI是Java平台标准的一部分,允许Java代码和其他语言写的代码进行交互。在这个...

    指针函数demo

    这个"指针函数demo"是一个小型的示例程序,用于演示如何声明、定义和使用返回值为指针类型的函数。在iOS开发中,尽管Objective-C提供了更现代的面向对象的特性,但了解C语言基础,包括指针函数,对于深入理解内存...

    npapi插件浏览器调插件函数Demo

    这个"npapi插件浏览器调用插件函数Demo"是关于如何使用NPAPI来实现JavaScript与浏览器插件之间的交互的一个示例。在本文中,我们将深入探讨NPAPI插件的工作原理、回调机制以及如何在JavaScript中调用插件函数。 ...

    QtConcurrent run 成员函数demo

    使用Qtconcurrent run 成员函数demo

    时间转换函数demo

    时间转换demo,能计算用户浏览器时区,时区时间转换,计算昨天、今天、前天

    Excel常用函数Demo.xlsx

    日常处理数据可以用到的函数,财务工作、日常办公、软件测试工作都可以用到

    Qt调用dll中的功能函数demo

    QT中调用dll中的函数,3种方式demo, 1、采用显示链接,调用DLL中全局函数 2、采用显示链接,调用C++类中的类对象、成员函数 3、采用隐式链接方法,通过QLibrary类对DLL中类对象、全局函数的调用

    CEF:C++ 调用 JavaScript 函数 Demo(VS2013)

    这是使用 CEF 开发时 C++ 调用 JavaScript 函数的例子,详细步骤请见博客文章 http://blog.csdn.net/blackwoodcliff/article/details/75137460

    CEF:JavaScript 调用 C++ 函数 Demo(VS2013)

    这是使用 CEF 开发时 JavaScript 调用 C++ 函数的例子,详细步骤请见博客文章 http://blog.csdn.net/blackwoodcliff/article/details/78598262

Global site tag (gtag.js) - Google Analytics