真是简单又巧妙的办法!美中不足的是他只设置了一组全局变量,如果调用多次就会发生覆盖,比如:

SELECT hierarchy.sys_connect_by_path(level, firstname, '/')

,hierarchy.sys_connect_by_path(level, lastname, '/')

FROM ...

我来修改一下,这下子真正实用了:

create or replace package hierarchy is

type strtabletype1 is table of varchar2(4000) index by binary_integer;

type strtabletype is table of strtabletype1 index by binary_integer;

strtable strtabletype;

type numtabletype1 is table of number index by binary_integer;

type numtabletype is table of numtabletype1 index by binary_integer;

numtable numtabletype;

function sys_connect_by_path(p_level     in number,

p_value     in varchar2,

p_delimiter in varchar2 default ',',

p_index     IN NUMBER DEFAULT 1)

return varchar2;

function sys_sum_by_path(p_level in number, p_value in number,p_index     IN NUMBER DEFAULT 1)

return number;

pragma restrict_references(sys_connect_by_path, wnds);

pragma restrict_references(sys_sum_by_path, wnds);

end;

/

create or replace package body hierarchy is

ls_ret varchar2(4000);

ln_ret number;

function sys_connect_by_path(p_level     in number,

p_value     in varchar2,

p_delimiter in varchar2 default ',',

p_index     IN NUMBER DEFAULT 1)

return varchar2 is

begin

strtable(p_index)(p_level) := p_value;

ls_ret := p_value;

for i in reverse 1 .. p_level - 1 loop

ls_ret := strtable(p_index)(i) || p_delimiter || ls_ret;

end loop;

return ls_ret;

end;

function sys_sum_by_path(p_level in number, p_value in number,p_index     IN NUMBER DEFAULT 1)

return number is

begin

numtable(p_index)(p_level) := p_value;

ln_ret := p_value;

for i in reverse 1 .. p_level - 1 loop

ln_ret := numtable(p_index)(i) + ln_ret;

end loop;

return ln_ret;

end;

end;

/

SELECT hierarchy.sys_connect_by_path(level, firstname, '/')   ---- 不带额外参数则为第一组

,hierarchy.sys_connect_by_path(level, lastname, '/',2)  ---- 带额外参数=2则为第二组

FROM ...

等会我就用它来做做那个公交的题目。

oracle path函数,自定义类似 sys_connect_by_path 功能的函数相关推荐

  1. Web 函数自定义镜像实战:构建图象处理函数

    Web 函数自定义镜像实战:构建图象处理函数 本篇文章写作于 2021.07.23 前言 作为一名前端工程师,我们经常会在 H5, 或者小程序中,使用 Canvas 来处理或生成图片. 不过在有些禁用 ...

  2. getline没有与参数列表匹配的重载函数_C++新增基础功能解析—函数重载功能的使用...

    喜欢的可以收藏转发加关注 "函数重载"指的是可以有多个同名的函数,因此 名称进行了重载.这两个术语指的是同一回事,但我们通常使用函数重载.可以通过函数重载来设计• 系列函数--它们 ...

  3. python filter()函数(与map()、reduce()函数用法类似,根据给定函数判断列表元素是True还是False,返回剔除元素后的元素列表)

    filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表. 该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 ...

  4. Objective-C利用协议实现回调函数(类似java的回调函数)

    实现的代码如下: 定义协议: #import <UIKit/UIKit.h> @protocol NoteDelegate //回调函数 -(void)messageCallBack:(N ...

  5. 【函数】Oracle函数系列(2)--数学函数及日期函数

    [函数]Oracle函数系列(2)--数学函数及日期函数 [函数]Oracle函数系列(2)--数学函数及日期函数 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者, ...

  6. C语言strcat函数的作用是,实现strcat函数的功能

    编程实现strcat函数的功能 #include "stdio.h" char* strcat(char s1[],char s2[]) { int i,j; for(i=0;s1 ...

  7. mysql 类似 oracle connect by,mysql中实现相仿oracle的SYS_CONNECT_BY_PATH功能

    mysql中实现类似oracle的SYS_CONNECT_BY_PATH功能 oracle中的SYS_CONNECT_BY_PATH函数为开发带来了便利,mysql中如何实现类的功能呢? DELIMI ...

  8. mysql sys_connect_by_path_mysql中实现相仿oracle的SYS_CONNECT_BY_PATH功能

    mysql中实现类似oracle的SYS_CONNECT_BY_PATH功能 oracle中的SYS_CONNECT_BY_PATH函数为开发带来了便利,mysql中如何实现类的功能呢? DELIMI ...

  9. oracle listagg方法,Oracle实现字符串拼接和分离功能的方法(LISTAGG函数),oraclelistagg...

    Oracle实现字符串拼接和分离功能的方法(LISTAGG函数),oraclelistagg 字符串拼接(String Aggregation Techniques)是数据处理时经常需要用到一个技术, ...

最新文章

  1. 利用nofllow与内页链接做好SEO
  2. Hill加密算法(matlab 实现)
  3. nginx搭建流媒体服务器
  4. VBS脚本恶作剧:关机+重启后自动关机
  5. Ireport的安装及使用
  6. RxJAVA notes
  7. php实现观看记录,PHP实现浏览历史记录
  8. 使用FireBird数据库基本知识
  9. cr2格式是什么意思?cr2格式用什么软件打开?cr2格式怎么转换成jpg
  10. 网页录音之麦克风权限问题
  11. 跟着Code走,详解Symbian Client/Server架构
  12. ​CS客户端渗透测试详解(三)
  13. Ubuntu上无法登录网页版本微信的解决方案
  14. 计算广告第二版电子版_88J9-1图集:室外工程-围墙、围栏(第二版),电子版带走...
  15. 初学Python-反射 装饰器 面向对象编程 异常处理 断言
  16. 商城购物系统【用户登录注册,购物页面,购物车页面,订单页面】
  17. DC/DCT/DCG 差别和联系
  18. np.load()读取npy文件
  19. uni-app 99群公告推送功能(一)
  20. lvds 共模电感_共模电感共模信号差分信号(20171124)

热门文章

  1. Kotlin学习笔记 第二章 类与对象 第九节 泛型
  2. 使用类模板实现复数类
  3. colab显示没有gpu的解决方法
  4. 9_less中的层级结构
  5. char型变量能不能存储一个中文汉字重写和重载的规则
  6. icmp时间戳请求和应答程序实现_ICMP报文详解之ping实现
  7. jsp怎么调用servlet_Servlet简述
  8. 如何从零搭建一个hexo博客网站02
  9. 类写了package java命令出错_java/javac命令行如何同时引用多个包;错误 TypeError: 'JavaPackage' object is not callable 的含义...
  10. efcore mysql坑,.net core 2.1 使用ef DBfirst 生成 实体映射遇到的坑 (Pomelo.EntityFrameworkCore.MySql 篇)...