oracle导出BOM文件,ORACLE ERP导数据(BOM清单)
【IT168 技术文档】
方法:把数据导入BOM清单的方法是,把数据导入接口表中,让其自动运行既可。上传文件的时候,要注意使 用ASCII字符模式。
1、自己建立一中转表
drop table cux_bill_temp;
create table cux_bill_temp(
bill_sequence_id number,
assembly_item_id number,
organization_id number,
assembly_item varchar2(50), --BOM
component_sequence_id number,
component_quantity number, --组件数量
item_num number, --项目序列
operation_seq_num number, --工序序列
component_item_id number,
component_item varchar2(50), --组件
PLANNING_FACTOR number, --计划%d100
component_yield_factor number, --产出率d1
wip_supply_type number, --供应类型
supply_type varchar2(50),
supply_subinventory varchar2(50), --供应子库存
OPTIONAL number, --可选的
OPTIONAL_disp varchar2(10), --可选的
MUTUALLY_EXCLUSIVE_OPTIONS number, --互不相容
MUTUALLY_EXCLUSIVE_O_disp varchar2(10), --互不相容
attribute1 varchar2(50), --排序号
row_num number)
;
2、删除中转表中的数据
delete cux_bill_temp;
3、把要导入的数据放在扩展名为*.csv的文件中,且要相对应于中转表的字段,本例中的文件名为bill.csv。
另外的脚本文件为bill.ctl,其内容如下:
options (skip=1) //跳过第一行,一般第一行为其字段说明
LOAD DATA
INFILE bill.csv //bill.csv为数据文件
APPEND
INTO TABLE cux_bill_temp
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
(与中转表相对应的字段列表)
登录进入ORACLE数据库服务器,利用命令:(sqlload 用户名/密码@数据库名)载入文件bill.csv的数据入中转表。
4、查看中转表中的记录数(以备导入数据后进行对比)
select count(*) from cux_bill_temp;
5、去除导入时在表bill.csv中的关键字段的空格字符,以免影响导入。
update cux_bill_temp
set ASSEMBLY_ITEM=replace(ASSEMBLY_ITEM,' ',''),
COMPONENT_ITEM=replace(COMPONENT_ITEM,' ','');
6、查看是否有重复的选项(既是否重复了Item)
select assembly_item,component_item,min(row_num),count(*)
from cux_bill_temp
group by assembly_item,component_item
having count(*)>1;
如果有重复的Item,则要删除(或是重新合并)
delete cux_bill_temp
where row_num in (select min(row_num) from cux_bill_temp
group by assembly_item,component_item
having count(*)>1);
以下步骤为选做(如有重复才做,没有重复不做7-10)
7、再重新建立一个临时表(对于有重复数据,则只取一条数据,现取row_num最小的一条)
drop table cux_bill_a;
create table cux_bill_a
as
select assembly_item,
component_item,
component_quantity,
PLANNING_FACTOR,
component_yield_factor,
supply_type,
supply_subinventory,
OPTIONAL_disp,
MUTUALLY_EXCLUSIVE_O_disp,
attribute1,
min(row_num) row_num
from cux_bill_temp
group by assembly_item,
component_item,
component_quantity,
PLANNING_FACTOR,
component_yield_factor,
supply_type,
supply_subinventory,
OPTIONAL_disp,
MUTUALLY_EXCLUSIVE_O_disp,
attribute1;
8、删除cux_bill_temp表
delete cux_bill_temp;
9、再重cux_bill_a表中把数据导入给cux_bill_temp表,完成把重复数据剔除的功能
insert into cux_bill_temp(
assembly_item,
component_item,
component_quantity,
PLANNING_FACTOR,
component_yield_factor,
supply_type,
supply_subinventory,
OPTIONAL_disp,
MUTUALLY_EXCLUSIVE_O_disp,
attribute1,
row_num)
select assembly_item,
component_item,
component_quantity,
PLANNING_FACTOR,
component_yield_factor,
supply_type,
supply_subinventory,
OPTIONAL_disp,
MUTUALLY_EXCLUSIVE_O_disp,
attribute1,
row_num
from cux_bill_a;
10、删除表cux_bill_a
drop table cux_bill_a;
11、再检查一次表,是否有重复的数据
select assembly_item,component_item,min(row_num),count(*)
from cux_bill_temp
group by assembly_item,component_item
having count(*)>1;
12、查看在mtl_system_items表中,既是在库存表中,有没有不存在的Item.
select distinct item
from (
select distinct assembly_item item
from cux_bill_temp b
where not exists (select null from mtl_system_items where segment1=b.assembly_item and organization_id=2)
union
select distinct component_item item
from cux_bill_temp b
where not exists (select null from mtl_system_items where segment1=b.component_item and organization_id=2)
)
order by item;
13、如果在mtl_system_items中,有不存在的物品ITEM时,要把其删除(或是把这些物品Item导入到系统中)
删除:delete cux_bill_temp b
where not exists (select null from mtl_system_items where segment1=b.component_item and organization_id=2);
delete cux_bill_temp a
where not exists (select null from mtl_system_items where segment1=a.assembly_item and organization_id=2);
14、对没有物品Item的进行处理,把其放入另一临时表cux_item_temp中(以备查询及导入mtl_system_items表中)
delete cux_item_temp;
insert into cux_item_temp(
segment1,description)
select distinct item,item
from (
select distinct assembly_item item
from cux_bill_temp b
where not exists (select null from mtl_system_items where segment1=b.assembly_item and organization_id=2)
union
select distinct component_item item
from cux_bill_temp b
where not exists (select null from mtl_system_items where segment1=b.component_item and organization_id=2)
)
;
将找到没有ITEM的BOM数据放到另一个表中,以备下次ITEM导入后在导BOM
create table cux_bom_temp1
select distinct item
from (
select distinct assembly_item item
from cux_bill_temp b
where not exists (select null from mtl_system_items where segment1=b.assembly_item and organization_id=2)
union
select distinct component_item item
from cux_bill_temp b
where not exists (select null from mtl_system_items where segment1=b.component_item and organization_id=2)
)
-----------------------------------------------------------------------------------------------------------
15、从表mtl_system_items中把物品的编码ID加入中转表cux_bill_temp表(从项目主组织)中
update cux_bill_temp b
set assembly_item_id=(select inventory_item_id from mtl_system_items
where segment1=b.assembly_item and organization_id=2),
component_item_id=(select inventory_item_id from mtl_system_items
where segment1=b.component_item and organization_id=2);
16、查看是否有没有物品ID的编码存在(既没有物品的ID被导入临时表cux_bill_temp中)
select row_num
from cux_bill_temp
where assembly_item_id is null or component_item_id is null;
17、对其中导入的数据进行处理
update cux_bill_temp
set OPTIONAL=1
where upper(OPTIONAL_disp) like 'Y%';
update cux_bill_temp
set OPTIONAL=2
where OPTIONAL is null;
update cux_bill_temp
set MUTUALLY_EXCLUSIVE_OPTIONS=1
where upper(MUTUALLY_EXCLUSIVE_O_DISP) like 'Y%';
update cux_bill_temp
set MUTUALLY_EXCLUSIVE_OPTIONS=2
where MUTUALLY_EXCLUSIVE_O_DISP is null;
18、查看cux_bill_temp中的数据处理是否有漏
select count(*)
from cux_bill_temp
where OPTIONAL is null
or MUTUALLY_EXCLUSIVE_OPTIONS is null
or assembly_item_id is null
or component_item_id is null;
19、更新其内的WIP_SUPPLY_TYPE;
update cux_bill_temp
set WIP_SUPPLY_TYPE=6
where component_item like 'B%';
20、删除表中的包(cux_bill_temp中),其相对应于表bom_bill_of_materials(既在表中已经存在了些选项包,不必导入包头,只需导入包内容既可)
delete cux_bill_temp t
where exists (select null from bom_bill_of_materials where assembly_item_id=t.assembly_item_id and organization_id=2);
21、利用已经写好的包写入数据(既写入接口表bom_bill_of_mtls_interface)
exec cux_bom_temp.insert_bill_15(1);
select count(*) from cux_bill_temp temp
where exits (select null from bom_inventory_components b
where temp.bill_sequence_id=b.bill_sequence_id
and temp.component_item_id=b.component_item_id);
delete cux_bill_temp temp
where exists (select null from bom_inventory_components b
where b.bill_sequence_id=temp.bill_sequence_id
and b.component_item_id=temp.component_item_id);
exec cux_bom_temp.insert_bill_10(1);
22、对写入的数据在接口表中的情况进行查看
select count(*) from bom_bill_of_mtls_interface;
23、接着更新
exec cux_bom_temp.insert_bill_15(1);
select count(*) from cux_bill_temp where bill_sequence_id is null;
exec cux_bom_temp.insert_bill_20(1);
去提交请求
select count(*) from bom_inventory_comps_interface;
(导入成功后)对组件进行排序
exec cux_bom_temp.update_bill_item_num4;
select count(*) from bom_inventory_comps_interface;
24、对于接口表中的数据进行导入
delete bom_bill_of_mtls_interface;
insert into bom_bill_of_mtls_interface(
assembly_type,assembly_item_id,
organization_id,
process_flag,transaction_type)
select distinct 1,assembly_item_id,
1,
1,'CREATE'
from cux_bill_temp;
oracle导出BOM文件,ORACLE ERP导数据(BOM清单)相关推荐
- oracle导出dnf文件,ORACLE 常见故障恢复-dnf文件损坏
故障现象 丢失某个数据库文件,造成了数据库无法启动,同时数据库处于非归档模式,也没有冷备份,启动时的错误信息如下: ORA-01157: cannot identify/lock data file ...
- oracle导出dmp文件教程
oracle导出dmp文件教程 启动&关闭oracle教程 医院内网服务器导出dmp文件只要进行下面1.2.4的操作 1.切换到oralce用户 su oracle 2.使环境变量生效 sou ...
- toad for oracle导出dmp文件
toad for oracle导出dmp文件 步骤: 1.选择菜单Database-->Export-->Export Utility Wizard: 2.选择Export tables, ...
- oracle 创建日志文件,oracle创建日志文件
一团网资讯 一团资讯 > oracle > oracle创建日志文件 oracle创建日志文件 2018-04-14 15:39:48 发布者:来源网络 创建日志文件的语法如下: ...
- oracle导出脚本文件怎么打开,Windows下的Oracle导出脚本 -电脑资料
Windows下的Oracle导出脚本 导出脚本内容: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ...
- oracle 导出dmp 文件 闪退 plsql
oracle数据库没有安装在本地,使用plsql连接操作,无法导出dmp文件, 配置ORACLE_HOME环境变量 D:\app\weizhicheng\product\11.2.0\client_1 ...
- 关于Oracle导出.db文件
最简单的Oracle导出.db数据库文件 一.需要使用到的工具 1.PLSQLDev(建议使用13以上版本)2.Navicat (能支持连接SQLlite数据库)3.WPS/Office(修改文件使用 ...
- linux下oracle导出dmp文件,并排除不需要导出的表
工作中经常需要在linux中导出备份oracle数据库,但部分数据表太大或者是日志表是不需要进行备份,在进行整库导出备份时是可以将这部分表排除不做导出. 使用oracle账户登录linux 执行导出命 ...
- oracle导出dmp文件
使用dmp方式导出时有些表未导出 原因:表创建完未执行过 1.在plsql中执行下面sql语句,将查询出的结果复制出来依次执行. select 'alter table '|| table_name ...
- oracle导出字符集命令,Oracle数据的导出及导入实现
最近由于项目原因,我学习了Oracle数据库一些知识.数据的导出及导入,是任何数据库使用人员必备的一项技能,现给大家介绍一下Oracle数据的导出及导入实现方法. 数据的导出及导入,可以用命令exp/ ...
最新文章
- Retrofit 入门和提高
- k8s pod资源限制策略:requests、limits配置示例
- 9Linux服务器编程之:mkdir()函数和rmdir()函数
- TensorRT(4)-Profiling and 16-bit Inference
- 编程之美4:求数组中的最大值和最小值
- influxdb tsm文件_Influxdb中TSM文件结构解析之读写TSM
- 烟花散尽漫说无(參考资料)
- 平板电脑办公软件_办公软件便签电脑版免费下载
- 心有所鼠,鼠年快乐~
- Java贪吃蛇全代码
- 数据挖掘的技术都有哪些?
- “汇新杯”青年创客专项赛介绍
- 语音合成 g2p 字典设计
- 使用 Microsoft Teams 开会到底有多少途径——参会
- 使用 JDB 调试 Android 应用程序
- renren-generator:运行报错java: 找不到符号 符号: 类 Longblob
- 通达信指标公式编写常用函数(八)——MAX、MIN、BETWEEN、ABS
- php odbc驱动,PHP Database ODBC
- 猿人学·爬虫逆向高阶课
- matlab导入las格式点云,LAS 点云数据格式
热门文章
- 幸福的烦恼:显卡算力太高而pytorch版本太低不支持
- ORA-03113: end-of-file on communication channel 解决方法
- Stable Diffusion 抠图工具使用小记
- 阿里面试官:说一下公平锁和非公平锁的区别?
- 有些MP4只有音频没有视频的解决办法
- 《萌小甜动图字帖》使用简介
- python柱状图挨在一起_Excel图表,怎么把柱形图紧挨着?-excle柱状图挨在一起
- 嵌入式系统框架----硬件篇
- 生态版图 | 10月份YashanDB获信创产品认证,并与3款产品完成互认证
- 深度学习基础--输出层的神经元数应该与分类数匹配(分类数大于等于2)则是一个监督学习任务,对吗?