• PL/SQL存贮过程:类别链条获取


    T-SQL同名存储过程的Oracle版,数据表和列相应改变,结构不变

    CREATE OR REPLACE PROCEDURE GetCategoryWays
    IS
      CACHE_PCID 
    number(5);            --缓存PCID
      OUT_STR nvarchar2(500);        --输出的类别链条
      CACHE_PARENTID number(5);        --缓存的父类别ID
      CACHE_CATENAME nvarchar2(20);        --缓存的类别名字
    --
    -------------------------------------------------------------------------
    /*
    * 创建:***
    * 时间:200
    */
    0*/**
    * 用途:获取类别链条 
    */

    BEGIN
    --声明游标:获取所有独立叶结点类别
      DECLARE CURSOR ENDPOINT_CURSOR IS
      
    SELECT B.Category_Code FROM 
      Category A,Category B
      
    WHERE A.Category_Parent(+)=B.Category_Code AND 
      A.Category_Code 
    IS NULL;
      
      
    BEGIN
      
    --打开游标
      OPEN ENDPOINT_CURSOR;
      
    FETCH ENDPOINT_CURSOR INTO CACHE_PCID;
      
    --循环分析PCID、ParentID,获取类别链条
      --获取父类别
      LOOP    FETCH ENDPOINT_CURSOR INTO CACHE_PCID;
      
    EXIT WHEN ENDPOINT_CURSOR%NOTFOUND;
        
    BEGIN
            
    SELECT 
          Category_Parent,Category_Name 
    into CACHE_PARENTID,OUT_STR 
          
    FROM Category WHERE Category_Code=CACHE_PCID;
            
    --开始循环
          LOOP EXIT WHEN CACHE_PARENTID=0;
            
    BEGIN
                
    SELECT Category_Name into CACHE_CATENAME From Category 
            
    WHERE Category_Code=CACHE_PARENTID;
                OUT_STR:
    =CACHE_CATENAME||'----'||OUT_STR;
              
    SELECT Category_Parent into CACHE_PARENTID FROM Category 
            
    WHERE Category_Code=CACHE_PARENTID;
          
    END;
          
    END LOOP;
          DBMS_OUTPUT.PUT_LINE(OUT_STR);
          
    --还原OUT_STR
            OUT_STR:='';
          
    END;
      
    END LOOP;
      
    CLOSE ENDPOINT_CURSOR;
      
    END;
    END;
    ---------------------------------------------------------------------------
  • 相关阅读:
    nginx添加location跳转后不生效
    UniApp微信小程序授权获取用户当前位置信息
    VS创建Core项目体验跨平台,部署在docker上运行(启用docker支持)
    在Unity中渲染一个黑洞
    一个简简单单的红点系统框架
    十一、Abp vNext 基础篇丨测试
    Abp vNext 番外篇-疑难杂症丨浅谈扩展属性与多用户设计
    十、Abp vNext 基础篇丨权限
    九、Abp vNext 基础篇丨评论聚合功能
    Abp vNext 番外篇-疑难杂症丨nginx反向代理-部署
  • 原文地址:https://www.cnblogs.com/lixx/p/1252675.html
Copyright © 2020-2023  润新知