ORCLE函数学习方法

1.字符串小代码转化为字符串值

如 (10,20)==》 (现金(电汇),银行承兑汇票,现金(电汇))

java 复制代码
CREATE OR REPLACE FUNCTION FROM_ARRAYSTR_TO_STR(P1 in varchar2,P2 in varchar2)
return varchar2
is
VLA varchar2(2048):='';--最后函数返回的值
TEMP varchar2(20);  --截取字符串第一个的值'a,b,c'-->'a'
TEMP_AGE varchar2(20):=P1;  --截取字符串第一个的值'a,b,c'-->'a'
TEMP_CHANGE varchar2(20); --小代码转化结果
begin
  IF P1='' OR  P1 IS NULL THEN
      VLA:='';
  ELSE
      IF INSTR(P1,',')>0 THEN 
        LOOP
          IF INSTR(TEMP_AGE,',')>0 THEN 
             SELECT SUBSTR(TEMP_AGE, 1, INSTR(TEMP_AGE, ',')-1) INTO TEMP  FROM dual;
             SELECT SUBSTR(TEMP_AGE, INSTR(TEMP_AGE, ',')+1) into TEMP_AGE  FROM dual;
             SELECT VAL_DESC_CN INTO TEMP_CHANGE FROM XS_MD_VALSET_DETAIL dt4 WHERE dt4.VAL=TEMP AND dt4.value_Set_Code=P2; 
             IF VLA='' or VLA IS NULL THEN
                 VLA:=TEMP_CHANGE;
             ELSE    
                 VLA:=VLA||','||TEMP_CHANGE;
             END IF;    
          ELSE
             SELECT VAL_DESC_CN INTO TEMP_CHANGE FROM XS_MD_VALSET_DETAIL dt4 WHERE dt4.VAL=TEMP_AGE AND dt4.value_Set_Code=P2; 
             VLA:=VLA||','||TEMP_CHANGE;
             exit when  1=1;
          END IF;    
        END LOOP;      
      ELSE 
        SELECT VAL_DESC_CN INTO VLA FROM XS_MD_VALSET_DETAIL dt4 WHERE dt4.VAL=P1 AND dt4.value_Set_Code=P2; 
      END IF;   
  END IF;    
return VLA;
end;

数据执行方法

java 复制代码
SELECT FROM_ARRAYSTR_TO_STR('10,20,10','H010') FROM DUAL;
相关推荐
我科绝伦(Huanhuan Zhou)9 天前
Oracle|Oracle SQL*Plus 配置上下翻页功能
数据库·sql·oracle
曹牧9 天前
Oracle获取前100条记录
数据库·oracle
Lightning_20179 天前
Neo4j.5.X社区版创建数据库和切换数据库
数据库·oracle·neo4j
远方160910 天前
72-Oralce Temporay tablespace(单实例和多租户下的管理)
大数据·数据库·sql·oracle·database
多多*10 天前
计算机网络期末 网络基础概述
运维·服务器·网络·数据库·计算机网络·oracle·lua
wh_xia_jun10 天前
MyBatis-Plus:简化开发的高效 ORM 框架
java·oracle·tomcat
.不吃糖.10 天前
MySQL 与 Oracle 分区表详解:相同点与不同点
数据库·mysql·oracle·etl·分区表
消失在人海中10 天前
窗口函数的概念
数据库·oracle
asdfwxy10 天前
oracle中与StarRock表数据使用MD5值进行比较
数据库·oracle·哈希算法
越来越无动于衷10 天前
Spring JDBC配置与使用
数据库·spring·oracle