如何转换成Oracle代码?高分求!

yjh53615728 2012-04-30 11:32:29

DECLARE @t INT
SET @t=1
-->创建临时表#t_BOM存储第一阶的子项物料代码
CREATE TABLE #t_BOM(BMB03 varchar(400),层 INT)
INSERT INTO #t_BOM
SELECT aa.BMB03,@t
FROM bmb_file aa
WHERE aa.BMB01='14N1003'
ORDER BY aa.BMB03

-->创建临时表#t_BOMChild存储“其下阶有BOM”的子项物料代码
CREATE TABLE #t_BOMChild(BMB03 varchar(400),层 INT)
INSERT INTO #t_BOMChild
SELECT aa.BMB03,aa.层
FROM #t_BOM aa
WHERE EXISTS (SELECT bb.BMB01 FROM bmb_file bb WHERE aa.BMB03=bb.BMB01)

-->循环向临时表#t_BOM和#t_BOMChild插入数据
WHILE @@ROWCOUNT>0
BEGIN
SET @t=@t+1
INSERT INTO #t_BOM
SELECT bb.BMB03,@t
FROM #t_BOMChild aa
INNER JOIN bmb_file bb ON aa.BMB03=bb.BMB01
WHERE aa.层=@t-1

INSERT INTO #t_BOMChild
SELECT aa.BMB03,aa.层
FROM #t_BOM aa
WHERE aa.层=@t AND EXISTS (SELECT bb.BMB01 FROM bmb_file bb WHERE aa.BMB03=bb.BMB01)
END

-->若要去掉下阶有物料的子物料代码则需要下面Delete语句
DELETE FROM #t_BOM
WHERE EXISTS(SELECT * FROM #t_BOMChild bb WHERE #t_BOM.BMB03=bb.BMB03)

SELECT *
FROM #t_BOM aa
...全文
112 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
myloveral 2012-05-08
  • 打赏
  • 举报
回复
--新手,不知道对不对

DECLARE t INT;
t:=1;
-->创建临时表t_BOM存储第一阶的子项物料代码
CREATE GLOBAL TEMPORARY TABLE t_BOM(BMB03 varchar(400),层 INT)
INSERT INTO t_BOM
SELECT aa.BMB03,t
FROM bmb_file aa
WHERE aa.BMB01='14N1003'
ORDER BY aa.BMB03;

-->创建临时表t_BOMChild存储“其下阶有BOM”的子项物料代码
CREATE GLOBAL TEMPORARY TABLE t_BOMChild(BMB03 varchar(400),层 INT)
INSERT INTO t_BOMChild
SELECT aa.BMB03,aa.层
FROM t_BOM aa
WHERE EXISTS (SELECT bb.BMB01 FROM bmb_file bb WHERE aa.BMB03=bb.BMB01);

-->循环向临时表t_BOM和t_BOMChild插入数据
WHILE SQL%ROWCOUNT>0 loop
t:=t+1
INSERT INTO t_BOM
SELECT bb.BMB03,@t
FROM t_BOMChild aa
INNER JOIN bmb_file bb ON aa.BMB03=bb.BMB01
WHERE aa.层=t-1;

INSERT INTO t_BOMChild
SELECT aa.BMB03,aa.层
FROM t_BOM aa
WHERE aa.层=t AND EXISTS (SELECT bb.BMB01 FROM bmb_file bb WHERE aa.BMB03=bb.BMB01);

end loop;


-->若要去掉下阶有物料的子物料代码则需要下面Delete语句
DELETE FROM t_BOM
WHERE EXISTS(SELECT * FROM t_BOMChild bb WHERE t_BOM.BMB03=bb.BMB03);

SELECT *
FROM t_BOM aa;
sunny_haizi 2012-05-04
  • 打赏
  • 举报
回复
这个可以用powerdesigner
秋雨飘落 2012-05-03
  • 打赏
  • 举报
回复
基础的ORACLE的东西,如果给你转,也要写好几分钟了
了解 2012-05-02
  • 打赏
  • 举报
回复
进来学习。向你们学习,祝你们成功。
  • 打赏
  • 举报
回复
你应该把这个帖子移到Oracle版块去。这里懂Oracle的人不是很多

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧