oracle bom层级sql,oracle bom_tree.sql
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相关推荐
- oracle按层级分组,oracle按照指定列分组合计group by rollup()
group by rollup() 按分组合计 select grouping(status),status,owner,object_type,count(*) from dba_objects w ...
- oracle层级计算推演,(特价书)Oracle 高性能SQL引擎剖析:SQL优化与调优机制详解(资深Oracle专家黄玮十年磨一剑,盖国强作序力荐)(china-pub首发)...
第一篇 执 行 计 划 执行计划是指示Oracle如何获取和过滤数据.产生最终结果集,是影响SQL语句执行性能的关键因素.我们在深入了解执行计划之前,首先需要知道执行计划是在什么时候产生的,以及如何让 ...
- oracle中的sql%rowcount,sql%found、sql%notfound、sql%rowcount和sql%isopen
Oracle 存储过程 删除表记录时删除不存在的记录也是显示删除成功 create or replace procedure delDept(p_deptno in dept.deptno%type) ...
- 批量处理SQL Oracle下:
Oracle下: 1.新增一个批处理文件:如a.bat 2.新增一个SQL脚本文件:如a.sql 3.a.bat中输入:sqlplus 用户名/密码 @C:\a.sql(假设a.sql在c:盘根目录下 ...
- oracle接收输入参数,Oracle带输入输出参数存储过程(包括sql分页功能)
记录一下,免得以后忘记了又要到处去找. begin /*这里不能直接执行select语句但可以直接执行update.delete.insert语句*/ end里面不能接执行select语句,声明会话级 ...
- oracle空格太多,Oracle Sql字符串多余空格处理方法初记
(一)问题提出: 不知道大家有没有遇到过这样的情况,同样的sql在pl/sql下面执行正常,但是拷贝到表字段中,点击提交的时候老是会报ORA-01480: STR 绑定值的结尾 Null错误,如图: ...
- oracle pl sql注意问题,Oracle PL/SQL编写PL/SQL代码的注意事项
(1)几个值得注意的关键字(2)变量常量赋值注意: ---------------------------------------------------------------------[@mor ...
- oracle冷备份 代码,Oracle冷备份和恢复自动产生sql源代码
以下是oracle冷备份及恢复自动产生sql源代码,各变量含义为: COLD_BACK_DIR: 冷备份目录 SCRIPT_FILE: 此代码所生成的批处理文件路径及文件名称 LOG_FILE: 备份 ...
- oracle中执行动态sql语句吗,oracle中有没有可动态执行sql语句的函数
oracle中有没有可动态执行sql语句的函数 关注:233 答案:2 手机版 解决时间 2021-03-05 15:53 提问者祗剩寂寞 2021-03-04 22:38 oracle中有没有可 ...
最新文章
- sublime 经验总结 主题有 less2css
- 《从Excel到R 数据分析进阶指南》一3.4 更改数据格式
- HPU第三次积分赛-D:Longest Increasing Subsequence(DP)
- php ado,常用的php ADODB使用方法集锦
- 4.3 Siamese 网络-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
- 【CyberSecurityLearning 78】DC系列之DC-9渗透测试
- 【MRCTF—Web】做题+复现记录
- Boost:基于Boost的阻塞tcp echo的测试程序
- 代理模式(多线程实现状态监控)
- “约见”面试官系列之常见面试题之第八十七篇之ajax发送多个请求优化(建议收藏)
- 3.Android的新虚拟ART与原虚拟机DVM的区别
- 缺失值填充2——python 热卡填充(Hot deck imputation)、冷卡填充(Cold deck imputation)
- 我的100篇随笔纪念,关于JScript开发
- 【已解决】iOS11使用MJRefresh上拉加载结束tableView闪动、跳动的问题
- WebSocket使用sendObject(Object arg0)向页面方法发送对象
- Linux Shell编程参考大全
- C3P0数据库连接池
- 一花一世界 一叶一菩提
- win7使用笔记本做wifi热点
- 学计算机用游戏本好吗,学设计的用什么笔记本好呢