oracle bom_tree.sql

CREATE OR REPLACE FUNCTION BOM_TREE(vpart_no IN parts.part_no%TYPE,mm in varchar default '')

RETURN clob IS

str clob;

tmp clob;

/*

create by prey

vpart_no 传入的组件编码

mm 展开的层数,默认不输入 则展开至最底层

*/

cursor vbom is select a.*,level as le from

(select part_no,child_part,'('||assembly_qty||','||unit_qty||')' assemblyunit from bom ) a

start with a.part_no=vpart_no connect by prior a.child_part=a.part_no;

cursor vbom1 is select * from(select a.*,level as le from

(select part_no,child_part,'('||assembly_qty||','||unit_qty||')' assemblyunit from bom ) a

start with a.part_no=vpart_no connect by prior a.child_part=a.part_no) d

where d.le <=mm;

begin

str:='*';

tmp:=vpart_no;

dbms_lob.append(str,tmp);

--str:=vpart_no;

if mm is not null then

for dd in vbom1 loop

if (dd.child_part is not null) then

tmp:=chr(10);

dbms_lob.append(str,tmp);

tmp:=get_space(' ',dd.le)||dd.child_part||' '||dd.assemblyunit;

dbms_lob.append(str,tmp);

end if;

end loop;

else

for dd in vbom loop

if (dd.child_part is not null) then

tmp:=chr(10);

dbms_lob.append(str,tmp);

tmp:=get_space(' ',dd.le)||dd.child_part||' '||dd.assemblyunit;

dbms_lob.append(str,tmp);

end if;

end loop;

end if;

return str;

end;

CREATE OR REPLACE FUNCTION get_space(vspace in varchar2, vnum in number default 1 )

RETURN VARCHAR2 IS

sp varchar2(100);

begin

for i in 1..vnum loop

sp:=sp||vspace;

end loop;

return sp;

end;

oracle bom层级sql,oracle bom_tree.sql相关推荐

  1. oracle按层级分组,oracle按照指定列分组合计group by rollup()

    group by rollup() 按分组合计 select grouping(status),status,owner,object_type,count(*) from dba_objects w ...

  2. oracle层级计算推演,(特价书)Oracle 高性能SQL引擎剖析:SQL优化与调优机制详解(资深Oracle专家黄玮十年磨一剑,盖国强作序力荐)(china-pub首发)...

    第一篇 执 行 计 划 执行计划是指示Oracle如何获取和过滤数据.产生最终结果集,是影响SQL语句执行性能的关键因素.我们在深入了解执行计划之前,首先需要知道执行计划是在什么时候产生的,以及如何让 ...

  3. oracle中的sql%rowcount,sql%found、sql%notfound、sql%rowcount和sql%isopen

    Oracle 存储过程 删除表记录时删除不存在的记录也是显示删除成功 create or replace procedure delDept(p_deptno in dept.deptno%type) ...

  4. 批量处理SQL Oracle下:

    Oracle下: 1.新增一个批处理文件:如a.bat 2.新增一个SQL脚本文件:如a.sql 3.a.bat中输入:sqlplus 用户名/密码 @C:\a.sql(假设a.sql在c:盘根目录下 ...

  5. oracle接收输入参数,Oracle带输入输出参数存储过程(包括sql分页功能)

    记录一下,免得以后忘记了又要到处去找. begin /*这里不能直接执行select语句但可以直接执行update.delete.insert语句*/ end里面不能接执行select语句,声明会话级 ...

  6. oracle空格太多,Oracle Sql字符串多余空格处理方法初记

    (一)问题提出: 不知道大家有没有遇到过这样的情况,同样的sql在pl/sql下面执行正常,但是拷贝到表字段中,点击提交的时候老是会报ORA-01480: STR 绑定值的结尾 Null错误,如图: ...

  7. oracle pl sql注意问题,Oracle PL/SQL编写PL/SQL代码的注意事项

    (1)几个值得注意的关键字(2)变量常量赋值注意: ---------------------------------------------------------------------[@mor ...

  8. oracle冷备份 代码,Oracle冷备份和恢复自动产生sql源代码

    以下是oracle冷备份及恢复自动产生sql源代码,各变量含义为: COLD_BACK_DIR: 冷备份目录 SCRIPT_FILE: 此代码所生成的批处理文件路径及文件名称 LOG_FILE: 备份 ...

  9. oracle中执行动态sql语句吗,oracle中有没有可动态执行sql语句的函数

    oracle中有没有可动态执行sql语句的函数 关注:233  答案:2  手机版 解决时间 2021-03-05 15:53 提问者祗剩寂寞 2021-03-04 22:38 oracle中有没有可 ...

最新文章

  1. sublime 经验总结 主题有 less2css
  2. 《从Excel到R 数据分析进阶指南》一3.4 更改数据格式
  3. HPU第三次积分赛-D:Longest Increasing Subsequence(DP)
  4. php ado,常用的php ADODB使用方法集锦
  5. 4.3 Siamese 网络-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  6. 【CyberSecurityLearning 78】DC系列之DC-9渗透测试
  7. 【MRCTF—Web】做题+复现记录
  8. Boost:基于Boost的阻塞tcp echo的测试程序
  9. 代理模式(多线程实现状态监控)
  10. “约见”面试官系列之常见面试题之第八十七篇之ajax发送多个请求优化(建议收藏)
  11. 3.Android的新虚拟ART与原虚拟机DVM的区别
  12. 缺失值填充2——python 热卡填充(Hot deck imputation)、冷卡填充(Cold deck imputation)
  13. 我的100篇随笔纪念,关于JScript开发
  14. 【已解决】iOS11使用MJRefresh上拉加载结束tableView闪动、跳动的问题
  15. WebSocket使用sendObject(Object arg0)向页面方法发送对象
  16. Linux Shell编程参考大全
  17. C3P0数据库连接池
  18. 一花一世界 一叶一菩提
  19. win7使用笔记本做wifi热点
  20. 学计算机用游戏本好吗,学设计的用什么笔记本好呢

热门文章

  1. 组合特征(一)tfidf(word+article)
  2. 看着像学生,实为博导、教授!发过4篇CNS,刚刚又获重要大奖
  3. 可高效训练超大规模图模型,PyTorch BigGraph是如何做到的?
  4. B站上线!DeepMind加UCL强强联手推出深度学习与强化学习进阶课程(附视频)
  5. 雷军22年前写的代码 你见过吗?
  6. tornado源码分析
  7. 几句代码 修改 Kali 2020.3 - root 用户的密码
  8. 大数据背后的神秘定理:贝叶斯公式
  9. 圆桌讨论:Cloud 2.0时代的工业互联网与智能制造
  10. 【Linux】备份与压缩命令命令