【Oracle】使用PL/SQL实现冒泡排序 热资讯
时间:2023-06-30 04:52:06来源:博客园


(资料图片仅供参考)

【Oracle】使用PL/SQL实现冒泡排序

一般来说,SQL要排序的话直接使用order by即可

不一般来说,就是瞎搞,正好也可以巩固自己的数据结构基础

存储包内容如下

规范:

create or replace package data_structure_pkg is  procedure get_data(p_data varchar2);end data_structure_pkg;

体:

create or replace package body data_structure_pkg is  --------------------以下为冒泡排序部分----------------------  --定义一个存储数据的临时表  type numtable is table of long index by binary_integer;  --主方法  procedure get_data(p_data varchar2) is    v_data numtable;    n      number := 1;    p_num  number;  begin    --以;作为分隔符,将数字进行分离    for sub_data in (select tt.data as sdata                       from (select regexp_substr(p_data, "[^;]+", 1, level) data                               from tablet bd                             connect by level <=                                        regexp_count(p_data, ";") + 1) tt                      where rownum <= regexp_count(p_data, ";") + 1) loop      --放入临时表      v_data(n) := sub_data.sdata;      --打印出来原顺序的数据      dbms_output.put_line("排序前第" || n || "位:" || v_data(n) || "|");      --递增      n := n + 1;    end loop;    dbms_output.put_line("-------------------------------------");    --排序    for i in reverse 1 .. v_data.count loop      --依次提取i次下标位数字      for j in reverse (i + 1) .. v_data.count loop        --比较        if v_data(i) > v_data(j) then          p_num := to_number(v_data(i));          v_data(i) := v_data(j);          v_data(j) := p_num;        end if;      end loop;    end loop;    --打印出来排序以后的数据    for i in 1 .. v_data.count loop      dbms_output.put_line("排序后第" || i || "位:" || v_data(i) || "|");    end loop;  end get_data;end data_structure_pkg;

输入字符串2;1;3;4;6;5;7;8;9

得到结果:

标签:

生活指南
  • 破产案例分析哪些情况下企业可以宣布破产?破产清算的程序是什么?

    一、破产案例分析哪些情况下企业可以宣布破产破产案例分析以下情况

  • “港车北上”来了!香港直达广州热雪奇迹 掀起冰雪游新浪潮

    “港车北上”7月1日终于要落地啦!伴随着两岸越发密切的交流,港澳市民

  • 全球通讯!原油实时行情分析:国际油价持坚 俄供应不确定性犹存 多头另有两大期盼

    基本消息面周二(6月27日),国际油价持坚,市场仍担忧俄罗斯石油供应可

  • 宝鸡金台:“12345”着力打造“金心办”政务服务新高地_环球热讯

    今年以来,宝鸡市金台区行政审批局聚焦三个年活动,坚持12345工作思路

  • yoyo日常如何补打卡记录 YoYo日常查看打卡日志方法 环球关注

    yoyo日常如何补打卡记录YoYo日常查看打卡日志方法,

  • 月饼需要放冰箱吗(如何储存月饼)

    月饼需要放冰箱吗冰皮月饼和鲜肉月饼需要放在冰箱里,其他的月饼一

  • 汽车改气好吗?汽车油改气有什么弊病?_天天速读

    汽车改气好吗?改气,对于很多车主来说,能够减少自己的开支,毕竟现

  • 实时:六福内地铂金多少钱一克(2023年06月26日)

    六福铂金多少钱一克(2023年06月26日)每日更新内地参考价格

  • 天天时讯:美国女子声称担心遭绑架:一枪打死司机还拍照 被控谋杀

    海外网6月26日电据美国福克斯新闻25日报道,肯塔基州一名妇女日前在乘

  • 广州市白云区童妍生物科技有限公司

    广州市白云区童妍生物科技有限公司投诉直通车是湖南日报、华声在线、新

  • 天天微动态丨广州出资50亿元设立科技创新母基金,已投出255个项目、119.30亿元

    6月26日,广州市政府新闻办公室举行高质量发展看科技新闻发布会。广州

  • 世界热讯:12只科创板股公布2023年上半年业绩预告 7股预增

    数据宝统计显示,截至6月26日,有12家科创板公司公布了上半年业绩预告

  • 前沿热点:2023河南高考志愿填报及录取时间安排

    河南省2023年普通高校招生志愿填报及录取时间安排批次志愿填报时间录取

  • 世界观天下!重自3.4吨!比亚迪仰望U8能耗曝光:比硬派燃油越野车省一半

    重自3 4吨!比亚迪仰望U8能耗曝光:比硬派燃油越野车省一半

  • 苹果Vision Pro配蔡司处方镜片:300美元起

    苹果公司几周前发布了售价3499美元的VisionPro头显,让用户可以体验增

  • 如何注销银行卡?怎么注销银行账户?在网上如何注销银行卡?

    如何注销银行卡?怎么注销银行账户?持卡人可以通过以下几种方式注

  • 民生
    • 中铁十六局四公司删除"员工主动加班致流产"文章,称不存在此事

    • 连续13年!青岛这个区持续为70岁及以上户籍老年人发放高龄补贴

    • 当前观察:为什么医学发达的日本,却叫停女性接种HPV疫苗?答案或很简单

    • 世界快报:可转债为啥迟迟不上市? 可转债上市首日卖出挂多少?