zoukankan      html  css  js  c++  java
  • oracle 一条sql查询树级区域信息 并且联合显示

    执行一下三个对象语句 主要用于联合字符串

    create or replace type strcat_type as object
          (
            currentstr varchar2(4000),
            currentseprator varchar2(8),
            static function ODCIAggregateInitialize(sctx IN OUT strcat_type) return number,
            member function ODCIAggregateIterate(self IN OUT strcat_type,value IN VARCHAR2) return number,
            member function ODCIAggregateTerminate(self IN strcat_type,returnValue OUT VARCHAR2, flags IN number) return number,
            member function ODCIAggregateMerge(self IN OUT strcat_type,ctx2 IN strcat_type) return number
          );
    /
      create or replace type body strcat_type is
          static function ODCIAggregateInitialize(sctx IN OUT strcat_type) return number is
          begin
            sctx := strcat_type('',',');
            return ODCIConst.Success;
          end;
          member function ODCIAggregateIterate(self IN OUT strcat_type, value IN VARCHAR2) return number is
          begin
            if self.currentstr is null then
               self.currentstr := value;
            else
              self.currentstr := self.currentstr ||currentseprator || value;
            end if;
            return ODCIConst.Success;
          end;
          member function ODCIAggregateTerminate(self IN strcat_type, returnValue OUT VARCHAR2, flags IN number) return number is
          begin
            returnValue := self.currentstr;
            return ODCIConst.Success;
          end;
          member function ODCIAggregateMerge(self IN OUT strcat_type, ctx2 IN strcat_type) return number is
          begin
            if ctx2.currentstr is null then
              self.currentstr := self.currentstr;
            elsif self.currentstr is null then
              self.currentstr := ctx2.currentstr;
            else
              self.currentstr := self.currentstr || currentseprator || ctx2.currentstr;
            end if;
            return ODCIConst.Success;
          end;
          end;
         
    /
      CREATE OR REPLACE FUNCTION strcat (input VARCHAR2) RETURN VARCHAR2 PARALLEL_ENABLE AGGREGATE USING strcat_type;
    /



    表结构


    -- Create table
    create table T_ADDCODE
    (
      ADDCODE   VARCHAR2(200),
      ADDNAME   VARCHAR2(200),
      PADDCODE  VARCHAR2(200),
      CODELEVEL VARCHAR2(200),
      ADDNAME1  VARCHAR2(200)
    )
    tablespace USERS
      pctfree 10
      initrans 1
      maxtrans 255
      storage
      (
        initial 64K
        next 1M
        minextents 1
        maxextents unlimited
      );
    -- Add comments to the table 
    comment on table T_ADDCODE
      is '区域信息';
    -- Add comments to the columns 
    comment on column T_ADDCODE.ADDCODE
      is 'addcode编码';
    comment on column T_ADDCODE.ADDNAME
      is '区域名称';
    comment on column T_ADDCODE.PADDCODE
      is '父编码';
    comment on column T_ADDCODE.CODELEVEL
      is '编码级别 1为最高级';
    comment on column T_ADDCODE.ADDNAME1
      is ' 全名';




    查询的sql语句:


     select strcat(addname)   from (
    select '1' as aaa,addname,addcode
      from (select * from t_addcode order by addcode asc)
     start with addcode = addcodeStr
    connect by prior paddcode = addcode order by addcode
    ) group by aaa;



  • 相关阅读:
    mysql视图定义以及创建视图
    前端页面调用spring mvc接口发生跨域问题解决方案
    亲测可用的ssm框架搭建
    python--pandas基本操作
    jieba中文处理 python
    爬虫 登录开心网,登录人人网
    Selenium&wevdriver
    django 中间件的一些基本操作
    写一个简单的登录客户端步骤
    个人对ADO连接池的理解
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331363.html
Copyright © 2011-2022 走看看