函数写法:
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_阵元_"暗示了一个关于如何使用FieldII来计算阵列天线的响应函数的演示或示例。下面我们将深入探讨相关知识点。 1. **FieldII**:FieldII是一个开源的三维电磁波传播和...
在这个“自写的回调函数demo”中,我们重点探讨Delphi 7环境下如何实现回调机制,以及它在数据传输过程中的应用。 首先,让我们深入理解回调函数的基本概念。在Delphi 7中,回调函数通常通过指针来实现,这个指针...
在这个“Android回调函数demo”中,我们将深入探讨回调函数在Android应用中的运用及其工作原理。 首先,回调函数在Android中的核心应用场景是事件监听。例如,当我们点击一个按钮,我们希望执行一些操作。这时,...
在这个"SDK和成员函数作为回调函数demo"中,我们将深入探讨如何在SDK的上下文中使用成员函数作为回调函数。 首先,SDK中的接口通常是通过函数调用来实现功能的,这些函数可能需要开发者提供一个函数指针,以便在...
总结来说,这个Demo展示了如何使用JNI在Java应用程序中调用C函数。通过定义Java中的native方法,生成C头文件,编写C函数实现,最后将C代码编译为DLL,Java就能成功调用这些本地函数。这种技术在需要高效计算、访问...
本资料包“SQL存储过程、函数Demo”提供了一个综合性的学习和实践平台,包括数据库文件以及C#语言调用SQL存储过程和函数的示例。 首先,我们要理解什么是SQL存储过程。存储过程是预编译的SQL语句集合,它可以包含多...
在C#编程语言中,构造函数(Constructor)是类的一个特殊方法,它的主要作用是在创建对象时初始化新实例。构造函数的名称必须与类名完全相同,并且没有返回类型,即使是void也不行。本篇文章将深入探讨C#中的构造...
本示例“hive自定义函数demo”将探讨如何在Hive中开发和使用自定义函数(UDF),这对于扩展Hive的功能和适应特定业务需求至关重要。下面,我们将深入学习与Hive自定义函数相关的知识。 1. **什么是Hive UDF?** ...
这个"npapi插件浏览器调用插件函数Demo"是关于如何使用NPAPI来实现JavaScript与浏览器插件之间的交互的一个示例。在本文中,我们将深入探讨NPAPI插件的工作原理、回调机制以及如何在JavaScript中调用插件函数。 ...
在这个"回调函数DEMO.rar"中,我们可以期待看到一系列关于如何在DELPHI中实现和使用回调函数的例子。可能包括以下知识点: 1. **函数指针**:在DELPHI中,函数指针是一种类型,它能够存储函数的地址,从而使我们...
"MFC 多个窗口消息共享同一个消息处理函数demo"就是这样一个示例,它展示了如何在MFC应用中实现这一功能。 首先,我们需要理解MFC中的消息机制。在MFC中,窗口类(如CWnd)继承自CObject,并且覆盖了默认的消息映射...
"VB6使用Unicode版API函数Demo"部分强调了使用Unicode字符集的API函数。Unicode是一种包含几乎世界上所有字符的编码标准,确保了跨语言和跨平台的文本处理能力。在VB6中,默认使用的是ANSI字符集,但为了支持多语言...
标题 "CPP调用JAVA函数Demo" 涉及的核心技术是C++(CPP)与Java(JAVA)之间的互操作性,这通常通过Java Native Interface(JNI)实现。JNI是Java平台标准的一部分,允许Java代码和其他语言写的代码进行交互。在这个...
这个"指针函数demo"是一个小型的示例程序,用于演示如何声明、定义和使用返回值为指针类型的函数。在iOS开发中,尽管Objective-C提供了更现代的面向对象的特性,但了解C语言基础,包括指针函数,对于深入理解内存...
使用Qtconcurrent run 成员函数demo
时间转换demo,能计算用户浏览器时区,时区时间转换,计算昨天、今天、前天
日常处理数据可以用到的函数,财务工作、日常办公、软件测试工作都可以用到
QT中调用dll中的函数,3种方式demo, 1、采用显示链接,调用DLL中全局函数 2、采用显示链接,调用C++类中的类对象、成员函数 3、采用隐式链接方法,通过QLibrary类对DLL中类对象、全局函数的调用
回调函数在编程中是一种常见的设计模式,特别是在Windows编程中,它们扮演着至关重要的角色。回调函数允许我们将一段代码注册到某个事件或者特定操作中,当这个事件发生或操作完成时,系统会调用我们预先提供的函数...
这是使用 CEF 开发时 C++ 调用 JavaScript 函数的例子,详细步骤请见博客文章 http://blog.csdn.net/blackwoodcliff/article/details/75137460