`
z_kanhai
  • 浏览: 51510 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

函数的使用

 
阅读更多
create or replace function Fun_getinvclPK( cinvclasscode varchar2,cinvclasslev number)
  return varchar2 is
   fpk_invcl varchar(200) := '';
   invclass_code varchar(20):='';
   invclass_lev number :=0;
begin

   invclass_code := trim(cinvclasscode);
   invclass_code := substr(invclass_code,0,length(invclass_code)-2);
   invclass_lev := cinvclasslev-1;
   select pk_invcl into fpk_invcl from bd_invcl where invclasscode like invclass_code||'%' and invclasslev = invclass_lev;


  return fpk_invcl;
end;



create or replace function Fun_getinvclInfo( cinvclasscode varchar2,cinvclasslev number)
  return varchar2 is
   fpk_invcl varchar(200) := '';
   invclass_code varchar(20):='';
   invclass_lev number :=0;
begin

   invclass_code := trim(cinvclasscode);
   invclass_code := substr(invclass_code,0,length(invclass_code)-2);
   invclass_lev := cinvclasslev-1;
   select pk_invcl into fpk_invcl from bd_invcl where invclasscode like invclass_code||'%' and invclasslev = invclass_lev;
  
  select invclasscode into xx   from bd_invcl  where bd_invcl.pk_invcl = fpk_invcl;

  return fpk_invcl;
end;




create or replace function f1(pk bd_corp.pk_corp%type) return bd_corp.unitcode%type
as
v_unitcode bd_corp.unitcode%type;
begin
    select unitcode into v_unitcode from bd_corp where pk_corp=pk;
    return v_unitcode;
end;



create or replace function Fun_getRInfo( cpkcorp varchar2,cflag number,cpk varchar2)
  return varchar2 is
   rinfo varchar(200) := '';
   pkcorp varchar(20):='';
   pk varchar(20):='';
   flag number :=0;
begin

   pkcorp := trim(cpkcorp);
   flag := cflag;
   pk := cpk;
   --公司
   if (flag = 0) then
      select unitcode into rinfo from bd_corp where pk_corp=pkcorp and nvl(dr,0)=0;
   end if;
   if (flag = 1) then
      select unitname  into rinfo from bd_corp where pk_corp=pkcorp and nvl(dr,0)=0;
   end if;
   --商品分类
    if (flag = 3) then
      select invclasscode  into rinfo from bd_invcl where pk_corp=pkcorp and nvl(dr,0)=0 and pk_invcl = pk;
   end if;
 
  
  
  return rinfo;
end;

select Fun_getRInfo('1114',5,'') aa ,Fun_getRInfo('1004',1,'') bb from dual;



select * from bd_invcl





create or replace function Fun_getRInfo( cpkcorp varchar2,cflag number,cpk varchar2)
  return varchar2 is
   rinfo varchar(200) := '';
   pkcorp varchar(20):='';
   pk varchar(20):='';
   flag number :=0;
begin

   pkcorp := trim(cpkcorp);
   flag := cflag;
   pk := cpk;
   --公司编码
   if (flag = 0) then
      if (pkcorp=='0001') then
      unitcode='0001'
      else
      select unitcode into rinfo from bd_corp where pk_corp=pkcorp and nvl(dr,0)=0;
      end if;
     
   end if;
   --公司名称
   if (flag = 1) then
       if (pkcorp=='0001') then
       unitcode='0001'
       else
       select unitname  into rinfo from bd_corp where pk_corp=pkcorp and nvl(dr,0)=0;
       end if;
    
   end if;
   --商品分类编码
    if (flag = 2) then
      select invclasscode  into rinfo from bd_invcl where  nvl(dr,0)=0 and pk_invcl = pk;
   end if;
 
      --商品分类名称
    if (flag = 3) then
      select invclassname  into rinfo from bd_invcl where  nvl(dr,0)=0 and pk_invcl = pk;
   end if;
  
    --主计量单位编码
    if (flag = 4) then
      select shortname  into rinfo from bd_measdoc where  nvl(dr,0)=0 and pk_measdoc = pk;
   end if;
  
     --主计量单位名称
    if (flag = 5) then
      select measname  into rinfo from bd_measdoc where  nvl(dr,0)=0 and pk_measdoc = pk;
   end if;
  
      --自定义项档案列表名称
    if (flag = 6) then
      select doclistname  into rinfo from bd_defdoclist where nvl(dr,0)=0 and pk_defdoclist = pk;
   end if;
  
      --自定义项档案列表编码
    if (flag = 7) then
      select doclistcode  into rinfo from bd_defdoclist where  nvl(dr,0)=0 and pk_defdoclist = pk;
   end if;
  
      --基础数据资源表名称
    if (flag = 6) then
      select bdname   into rinfo from bd_bdinfo where nvl(dr,0)=0 and pk_bdinfo= pk;
   end if;
  
      --基础数据资源表编码
    if (flag = 7) then
      select bdcode  into rinfo from bd_bdinfo where  nvl(dr,0)=0 and pk_bdinfo= pk;
   end if;
  
  return rinfo;
end;

--商品税率
create or replace function Fun_gettptaxiInfo(ctypetaxitempk varchar2,cinvclpk varchar2,cflag number)
return varchar2 is typettinfo varchar(200) :='';
cfpk varchar2(20):='';
cinvpk varchar2(20):='';
flag number :=0;
begin
cfpk:=ctypetaxitempk;
cinvpk:=cinvclpk;
flag:=cflag;
if(flag=0) then
select unitcode into  typettinfo from bd_corp where pk_corp=(select pk_corp from zm_typetaxitem_h where pk_typetaxitem_h=cfpk and nvl(dr,0)=0) and nvl(dr,0)=0;
end if;
if(flag=1) then
select unitname into  typettinfo from bd_corp where pk_corp=(select pk_corp from zm_typetaxitem_h where pk_typetaxitem_h=cfpk and nvl(dr,0)=0) and nvl(dr,0)=0;
end if;
if(flag=2) then
select invclasscode into  typettinfo from bd_invcl where pk_invcl=cinvpk and nvl(dr,0)=0;
end if;
if(flag=3) then
select invclassname into  typettinfo from bd_invcl where pk_invcl=cinvpk and nvl(dr,0)=0;
end if;
return typettinfo ;
end;

--获取上级商品分类编码及名称
create or replace function Fun_getinvclInfo( cinvclasscode varchar2,cinvclasslev number,cflag number)
  return varchar2 is
   finvclinfo varchar(200) := '';
   invclass_code varchar(20):='';
   invclass_lev number :=0;
   flag number :=0;
begin
   invclass_code := trim(cinvclasscode);
   invclass_code := substr(invclass_code,0,length(invclass_code)-2);
   invclass_lev := cinvclasslev-1;
   if(flag=0) then
   select invclassname into finvclinfo from bd_invcl where invclasscode like invclass_code||'%' and invclasslev = invclass_lev;
   else
   finvclinfo:=invclass_code;
    end if;
 
  return finvclinfo;
end;

Fun_getRInfo(a.pk_corp, 0, '') as unitcode,Fun_getRInfo(a.pk_corp, 1, '') as unitname,Fun_getinvclInfo(a.invclasscode,a.invclasslev,0) as fatherinvclassname, Fun_getinvclInfo(a.invclasscode,a.invclasslev,1) as fatherinvclass_code

create or replace function Fun_getinvclInfo( cinvclasscode varchar2,cinvclasslev number,cflag number)
  return varchar2 is
   finvclinfo varchar(200) := '';
   invclass_code varchar(20):='';
   invclass_lev number :=0;
   flag number :=0;
begin
   invclass_code := trim(cinvclasscode);
   invclass_code := substr(invclass_code,0,length(invclass_code)-2);
   invclass_lev := cinvclasslev-1;
   if(flag=0) then
   select invclassname into finvclinfo from bd_invcl where invclasscode like invclass_code||'%' and invclasslev = invclass_lev;
   end if
   if(flag=1) then
   finvclinfo:=invclass_code;
   end if;

  return finvclinfo;
end;

create or replace function Fun_getRInfo( cpkcorp varchar2,cflag number,cpk varchar2)
  return varchar2 is
   rinfo varchar(200) := '';
   pkcorp varchar(20):='';
   pk varchar(20):='';
   flag number :=0;
begin

   pkcorp := trim(cpkcorp);
   flag := cflag;
   pk := cpk;
   --公司编码
   if (flag = 0) then
      if (pkcorp='0001') then
      rinfo :='0001';
      else
      select unitcode into rinfo from bd_corp where pk_corp=pkcorp and nvl(dr,0)=0;
      end if;

   end if;
   --公司名称
   if (flag = 1) then
       if (pkcorp='0001') then
       rinfo :='0001';
       else
       select unitname  into rinfo from bd_corp where pk_corp=pkcorp and nvl(dr,0)=0;
       end if;

   end if;
   --商品分类编码
    if (flag = 2) then
      select invclasscode  into rinfo from bd_invcl where  nvl(dr,0)=0 and pk_invcl = pk;
   end if;

      --商品分类名称
    if (flag = 3) then
      select invclassname  into rinfo from bd_invcl where  nvl(dr,0)=0 and pk_invcl = pk;
   end if;

    --主计量单位编码
    if (flag = 4) then
      select shortname  into rinfo from bd_measdoc where  nvl(dr,0)=0 and pk_measdoc = pk;
   end if;

     --主计量单位名称
    if (flag = 5) then
      select measname  into rinfo from bd_measdoc where  nvl(dr,0)=0 and pk_measdoc = pk;
   end if;

      --自定义项档案列表名称
    if (flag = 6) then
      select doclistname  into rinfo from bd_defdoclist where nvl(dr,0)=0 and pk_defdoclist = pk;
   end if;

      --自定义项档案列表编码
    if (flag = 7) then
      select doclistcode  into rinfo from bd_defdoclist where  nvl(dr,0)=0 and pk_defdoclist = pk;
   end if;

     --父级自定义项档案表名称
    if (flag = then
      select docname  into rinfo from bd_defdoc where nvl(dr,0)=0 and pk_defdoclist = pk;
   end if;

      --父级自定义项档案表编码
    if (flag = 9) then
      select doccode  into rinfo from bd_defdoc where  nvl(dr,0)=0 and pk_defdoclist = pk;
   end if; 
   
      --基础数据资源表名称
    if (flag = 10) then
      select bdname   into rinfo from bd_bdinfo where nvl(dr,0)=0 and pk_bdinfo= pk;
   end if;
  
      --基础数据资源表编码
    if (flag = 11) then
      select bdcode  into rinfo from bd_bdinfo where  nvl(dr,0)=0 and pk_bdinfo= pk;
   end if;
  
    --产品线档案名称
    if (flag = 12) then
      select prodlinename   into rinfo from bd_prodline where nvl(dr,0)=0 and pk_prodline= pk;
   end if;
  
      --产品线档案编码
    if (flag = 13) then
      select prodlinecode  into rinfo from bd_prodline where  nvl(dr,0)=0 and pk_prodline= pk;
   end if;

   --税目税率名称
    if (flag = 14) then
      select taxname   into rinfo from bd_taxitems where nvl(dr,0)=0 and pk_taxitems= pk;
   end if;
  
      --税目税率编码
    if (flag = 15) then
      select taxcode   into rinfo from bd_taxitems where  nvl(dr,0)=0 and pk_taxitems= pk;
   end if;

  return rinfo;
end;
分享到:
评论

相关推荐

    Linux C函数库参考手册完整版 含Linux C函数使用手册chm 中文pdf格式

    Linux C函数库参考手册是一套Linux C函数使用手册,这里还提供了LinuxC函数手册chm,帮助大家查找。在Linux下,使用到的C语言函数中文手册,全都有实例,如果你是大神,完全不需要,如果你对英文的手册感到头疼,...

    vb api 函数使用手册

    《VB API函数使用手册》是一本详尽的资源,专为使用Visual Basic (VB)进行编程的开发者设计,涵盖了API函数的广泛应用。API(Application Programming Interface)函数是操作系统为应用程序提供的一种接口,允许...

    EXCEL常用函数使用手册

    ### EXCEL常用函数使用手册知识点总结 #### 一、EXCEL函数概述 - **定义**:Excel中的函数是指预定义的公式,它们按照特定的顺序或结构使用特定数值(即参数)来进行计算。 - **作用**:直接应用于单元格或单元格...

    LISP ssget 函数使用大全整理

    LISP ssget 函数使用大全整理,涵盖该函数使用的各个方面

    VB-API函数使用手册

    《VB-API函数使用手册》是一本专为VBA(Visual Basic for Applications)开发者设计的实用指南,涵盖了在VBA编程中使用API(Application Programming Interface)函数的广泛知识。API函数是Windows操作系统提供的一...

    多任务系统中的不可重函数使用注意事项

    ### 多任务系统中的不可重入函数使用注意事项 #### 前言 本文将深入探讨在多任务系统中,特别是针对STM32平台,如何合理使用不可重入函数以避免出现错误。首先,我们将明确可重入函数与不可重入函数的区别,并给出...

    Linux C 函数使用手册

    Linux C 函数使用手册 本手册由Linhan整理,编写。版权所有者为Linhan。 Linhan不保证所整理的内容正确. 您可以免费的使用、分发本手册。但未经Linhan的授权许可不得擅自进行篡改、反编译,及将其全部或部分用于...

    HAL库+CubeMX+Stm32F405 实现串口定长收发、printf函数使用、自定义打印函数

    HAL库+CubeMX+Stm32F405 实现串口定长收发、printf函数使用、自定义打印函数 详情请看:https://lindoglog.blog.csdn.net/article/details/107463926

    VB-API函数使用手册_VB-API函数使用手册_

    VB-API函数使用手册,VB编程基础知识,方便编程查询

    VC++ 回调函数使用实例

    这个函数将作为回调函数使用。例如,我们可以定义一个简单的回调函数原型: ```cpp typedef void (*CallbackType)(int value); ``` 这里`CallbackType`是一个函数指针类型,它接受一个整型参数并无返回值。 2. ...

    LIN bus_API 函数使用说明

    详细介绍了LIN的API函数的使用,包括代码的详细解读。

    java函数使用查询包

    在“java函数使用查询包”中,我们可能找到了两个与Java函数使用相关的资源:`javascript.chm`和`JavaScript5.5 参数速查.rar`。虽然文件名中包含了"javascript",但考虑到标签为"java",我们将重点放在Java函数的...

    Turbo C 函数使用方法

    Turbo C 是一款经典的C语言编译器,...了解并熟练运用这些基本的函数使用方法,将有助于你在 Turbo C 中编写更高效、更具结构化的程序。不断实践和探索,你将逐渐掌握C语言的精髓,并为更高级的编程技能打下坚实基础。

    VB6.0函数使用方法和说明--中文版

    本资源“VB6.0函数使用方法和说明--中文版”是一份详尽的VB6.0函数参考手册,适合初学者和进阶者学习和查阅。 在VB6.0中,函数是程序中的重要组成部分,它们执行特定任务并可能返回一个值。函数分为内置函数和...

    socket_recv函数使用心得.

    socket_recv 函数使用心得 在学习 socket_recv 函数时,需要了解其返回值的含义和使用场景。在阻塞模式下,当网络异常时,recv 函数返回值为-1,表示连接异常,需要关闭连接。在非阻塞模式下,如果没有数据,recv ...

    Excel 中的 COUNTA 和 COUNTIF 函数使用入门.docx

    Excel 中的 COUNTA 和 COUNTIF 函数使用入门 Excel 中的 COUNTA 和 COUNTIF 函数是两种非常有用的函数,可以帮助用户快速统计单元格中的非空白单元格数量或特定值的出现次数。在本文中,我们将详细介绍 COUNTA 和 ...

    (完整版)常用EXCEL函数使用详解.ppt

    Excel函数使用详解 Excel函数是Excel软件中最重要的部分之一,它可以帮助用户快速地完成各种数据计算和处理任务。本文将对Excel函数进行详细的介绍,包括常用的数学函数、统计函数、日期和时间函数、文本函数、信息...

    Axure 9.0高级教程:最新最全的函数使用手册.docx

    Axure 9.0 高级教程:最新最全的函数使用手册 Axure 9.0 高级教程:最新最全的函数使用手册是 Axure 9.0 的一个高级教程,旨在帮助用户深入了解 Axure 9.0 的各项功能和应用。该教程涵盖了 Axure 9.0 的各种函数...

    winAPI函数 使用手册

    《winAPI函数使用手册》是一本专为程序员设计的实用参考书籍,主要涵盖了Windows操作系统中的所有API函数。这本书对于想要深入了解系统级编程、提高编程技能的开发者来说,是一份不可多得的资源。Windows API...

Global site tag (gtag.js) - Google Analytics