• Oracle存储过程案例集合


    注:使用的工具为PLSQL Developer

    壹、while简单使用(替换字符串中的字符,和REPLACE效果一样

    注: 这里没有使用REPLACE函数

    1、建立存储过程

    CREATE OR REPLACE PROCEDURE pro_testcom (p_string IN VARCHAR2, replace1 IN VARCHAR2, replace2 IN VARCHAR2)
    IS
       p_start NUMBER := 1;-- 从哪个位置开始截取
       p_subLength NUMBER := 1;-- 需要截取多长
       p_string_length NUMBER := length(p_string);-- 获取需要截取的字符串的长度
       p_new_string VARCHAR2(2014) := '';--存储拼接新的字符串
    BEGIN
       WHILE(p_start < p_string_length + 1) LOOP
         p_subLength := INSTR(p_string, replace1, p_start);
         IF p_subLength = 0 THEN
           p_subLength := p_string_length + 1;
         END IF ;
         
         IF p_new_string IS NULL THEN
           p_new_string := SUBSTR(p_string , p_start , p_subLength - p_start);
         ELSE
           p_new_string := p_new_string||replace2||SUBSTR(p_string , p_start , p_subLength - p_start);
         END IF;
         p_start := p_subLength + 1;
       END LOOP;
       
       -- 打印结果
       DBMS_OUTPUT.PUT_LINE('替换之后的字符串为:'||p_new_string);
    END pro_testcom;

     2、执行存储过程(命令窗口中执行

    -- 打开日志输出
    set serveroutput on;
    
    exec pro_testcom('555.555.555.555' , '.' ,'-');

    3、执行结果 

    替换之后的字符串为:555-555-555-555
     
    PL/SQL procedure successfully completed

    贰、......

  • 相关阅读:
    高版本Visual Studio和低版本ArcGIS共存 工具箱没有控件的解决方法
    Geodesic 什么是“测地线的”?
    向QGIS项目组提交了一份建议
    QGIS 3.4 3.6 另存栅格图层到GeoPackage出现覆盖问题 解决方案
    Dijkstra.NET 库体验报告
    QGIS练手
    GeoPackage
    QGIS练手
    postgresql 修改字段名称
    django signal
  • 原文地址:https://www.cnblogs.com/kawhileonardfans/p/10966384.html
Copyright © 2020-2023  润新知