1>自定义比较函数,targetVal的值为字符串,例如:“>=90”,"2~8"等范围格式,dataVal值为字符串。

  1. create or replace function compare1(targetVal in varchar2,
  2. dataVal in varchar2) return integer is
  3. v_Result integer;
  4. dataVal_int number;
  5. targetVal_int number;
  6. v_targetVal varchar2(200);
  7. v_dataVal varchar2(200);
  8. v_flag boolean;
  9. v_index integer;
  10. begin
  11. v_flag := true;
  12. v_targetVal := replace(targetVal, ' ');
  13. v_dataVal := replace(dataVal, ' ');
  14. dataVal_int := to_number(v_dataVal);
  15. if instr(v_targetVal, '>=') > 0 then
  16. v_targetVal := replace(v_targetVal, '>=');
  17. targetVal_int := to_number(v_targetVal);
  18. v_flag := dataVal_int >= targetVal_int;
  19. elsif instr(v_targetVal, '>') > 0 then
  20. v_targetVal := replace(v_targetVal, '>');
  21. targetVal_int := to_number(v_targetVal);
  22. v_flag := dataVal_int > targetVal_int;
  23. elsif instr(v_targetVal, '<=') > 0 then
  24. v_targetVal := replace(v_targetVal, '<=');
  25. targetVal_int := to_number(v_targetVal);
  26. v_flag := dataVal_int <= targetVal_int;
  27. elsif instr(v_targetVal, '<') > 0 then
  28. v_targetVal := replace(v_targetVal, '<');
  29. targetVal_int := to_number(v_targetVal);
  30. v_flag := dataVal_int < targetVal_int;
  31. elsif instr(v_targetVal, '~') > 0 then
  32. v_index := instr(v_targetVal, '~');
  33. v_flag := dataVal_int <= to_number(substr(v_targetVal, v_index + 1)) and
  34. dataVal_int >=
  35. to_number(substr(v_targetVal, 1, v_index - 1));
  36. elsif instr(v_targetVal, '=') > 0 then
  37. v_targetVal := replace(v_targetVal, '=');
  38. targetVal_int := to_number(v_targetVal);
  39. v_flag := dataVal_int = targetVal_int;
  40. elsif instr(v_targetVal, '=') = 0 then
  41. targetVal_int := to_number(v_targetVal);
  42. v_flag := dataVal_int = targetVal_int;
  43. end if;
  44. if v_flag then
  45. v_Result := 1;
  46. else
  47. v_Result := 0;
  48. end if;
  49. return(v_Result);
  50. exception
  51. when others then
  52. return 1;
  53. end compare1;

程序员的基础教程:菜鸟程序员

oracle 自定义比较函数的更多相关文章

  1. oracle 自定义 聚合函数

    Oracle自定义聚合函数实现字符串连接的聚合   create or replace type string_sum_obj as object ( --聚合函数的实质就是一个对象      sum ...

  2. Oracle自定义数据类型 1

    原文 oracle 自定义类型 type / create type 一 Oracle中的类型 类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nva ...

  3. Mybatis下配置调用Oracle自定义函数返回的游标结果集

    在ibatis和Mybatis对存储过程和函数函数的调用的配置Xml是不一样的,以下是针对Mybatis 3.2的环境进行操作的. 第一步配置Mapper的xml内容 <mapper names ...

  4. 【C++】自定义比较函数小结

    1.使用结构体grid作为map的key struct grid { int x; int y; }; (1)需要自定义比较函数operator<,不然会报错: error C2784: “bo ...

  5. 【转】Oracle 自定义函数语法与实例

    原文地址:https://blog.csdn.net/libertine1993/article/details/47264211 Oracle自定义函数的语法如下: create or replac ...

  6. Oracle自定义函数和存储过程示例,自定义函数与存储过程区别

    参考资料:http://www.newbooks.com.cn/info/60861.html oracle自定义函数学习和连接运算符(||) 贴一段中文文档示例,应该就可以开始工作了: --过程(P ...

  7. 对于一些stl自定义比较函数

    1.unorderd_map自定义键 自定义类型 struct my_key { int num; string name; }; 1.由于unordered_map是采用哈希实现的,对于系统的类型i ...

  8. ORACLE 自定义聚合函数

    用户可以自定义聚合函数  ODCIAggregate,定义了四个聚集函数:初始化.迭代.合并和终止. Initialization is accomplished by the ODCIAggrega ...

  9. ORACLE自定义顺序排序-转

    ORACLE可以借助DECODE函数,自定义顺序排序: select * from ( select 'Nick' as item from dual union all select 'Viki' ...

随机推荐

  1. fiddler抓取手机上https数据失败,全部显示“Tunnel to......443”解决办法

    与后端数据通信是前端日常开发的重要一环,在与后端接口联调的时候往往需要通过查看后端返回的数据进行调试.如果在PC端,Chrome自带的DevTools就已经足够用了,Network面板可以记录所有网络 ...

  2. socket.io常用api

    1. 服务端 io.on('connection',function(socket)); 监听客户端连接,回调函数会传递本次连接的socket io.sockets.emit('String',dat ...

  3. WSDL测试webservice接口记录

    收到一个事情,需要对接第三方API,对方给了个service,看了一下,原来是webservices的. 上一次测试webervice的接口,还是至少八九年前的时候了,这种相对比较老旧的也好久不在使用 ...

  4. Keras/Tensorflow选择GPU/CPU运行

    首先,导入os,再按照PCI_BUS_ID顺序,从0开始排列GPU, import os os.environ["CUDA_DEVICE_ORDER"] = "PCI_B ...

  5. method.invoke(...)反射点

    import java.lang.reflect.Method; import java.util.Arrays; /** * @Author: hoobey * @Description: * @D ...

  6. TRAC-IK机器人运动学求解器

    TRAC-IK和Orocos KDL类似,也是一种基于数值解的机器人运动学求解器,但是在算法层面上进行了很多改进(Specifically, KDL’s convergence algorithms ...

  7. 全面理解Java内存模型(JMM)及volatile关键字(转载)

    关联文章: 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解Java类加载器(ClassLoad ...

  8. springmvc(五) 数据回显与自定义异常处理器

    这章讲解一下springmvc的数据回显和自定义异常处理器的使用,两个都很简单 --WH 一.数据回显技术 Springmvc默认支持对pojo类型的数据回显,默认不支持简单类型的数据回显 1.1.什 ...

  9. [druid]大数据挑战——如何使用Druid实现数据聚合

    -- 知道你为什么惧组件很多的一些开源软件? 因为缺乏阅读能力. 最近我接手了druid+kafka+elk一套等日志系统. 但是我对druid很陌生, 周旋了几天, 官网文档快速开始照着做了下. 看 ...

  10. HLS playlist典型示例

    [时间:2018-06] [状态:Open] [关键词:流媒体,HLS,m3u8,playlist,variant, alternate] 0 引言 本文主要是对apple官网上的echnical N ...