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;
相关推荐
悟道书生22 分钟前
Kingbase数据库使用命令来执行init.sql(包含建库建表语句)
数据库·oracle
晴天¥38 分钟前
记一次Oracle 归档进程卡死怎么去有效排查
数据库·oracle
梦幻通灵1 小时前
MybatisPlus使用数据库递增ID实现方案【持续更新】
数据库·oracle
海鸥-w19 小时前
数据库冗余字段设计笔记
java·数据库·笔记·oracle
实泽有之,无泽虚之21 小时前
ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务问题原因及解决办法
数据库·oracle
程序员塔塔喵1 天前
【MySQL篇|第十篇】深分页问题
数据库·oracle·深分页问题
qq_452396231 天前
第八篇:《VACUUM、自动清理与膨胀治理》
jvm·数据库·oracle
晴天¥1 天前
记录Oracle11g数据库OGG同步实验
oracle·oracle ogg·oracle高可用架构
晴天¥1 天前
Oracle集群中是该如何管理控制文件和日志文件组?
数据库·oracle
云策数链1 天前
用友 T+Cloud / U8 项目交接时的账套健康度核查清单
数据库·oracle·erp·用友·云策数链