您的位置:首页 > 其它

把数据导入BOM清单

2012-05-08 10:06 435 查看
方法:把数据导入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 PTIONAL=1

where upper(OPTIONAL_disp) like 'Y%';

update cux_bill_temp

set PTIONAL=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;

---------------------------------------------------------------have test is current

select * from bom_temp_04 where inventory_item_id=233814

select * from bom.bom_bill_of_mtls_interface WHERE transaction_id=185533

delete bom.bom_bill_of_mtls_interface

select * from bom.bom_inventory_comps_interface WHERE transaction_id=185539

delete bom.bom_inventory_comps_interface

select * from inv.mtl_interface_errors

delete inv.mtl_interface_errors

insert into bom.bom_bill_of_mtls_interface

(

assembly_type, --M/E

assembly_item_id,

organization_id,

process_flag,

transaction_type

)

select distinct

1 assembly_type,

inventory_item_id assembly_item_id,

299 organization_id,

1 process_flag,

'CRATE' transaction_type from bom_temp_04 where inventory_item_id=233814

-------------------

#2

insert into bom_inventory_comps_interface

(

OPERATION_SEQ_NUM ,

COMPONENT_ITEM_ID ,

LAST_UPDATE_DATE ,

LAST_UPDATED_BY ,

CREATION_DATE ,

CREATED_BY ,

LAST_UPDATE_LOGIN ,

ITEM_NUM ,

COMPONENT_QUANTITY ,

COMPONENT_YIELD_FACTOR ,

COMPONENT_REMARKS ,

EFFECTIVITY_DATE ,

CHANGE_NOTICE ,

IMPLEMENTATION_DATE ,

DISABLE_DATE ,

ATTRIBUTE_CATEGORY ,

ATTRIBUTE1 ,

ATTRIBUTE2 ,

ATTRIBUTE3 ,

ATTRIBUTE4 ,

ATTRIBUTE5 ,

ATTRIBUTE6 ,

ATTRIBUTE7 ,

ATTRIBUTE8 ,

ATTRIBUTE9 ,

ATTRIBUTE10 ,

ATTRIBUTE11 ,

ATTRIBUTE12 ,

ATTRIBUTE13 ,

ATTRIBUTE14 ,

ATTRIBUTE15 ,

PLANNING_FACTOR ,

QUANTITY_RELATED ,

SO_BASIS ,

OPTIONAL ,

MUTUALLY_EXCLUSIVE_OPTIONS ,

INCLUDE_IN_COST_ROLLUP ,

CHECK_ATP ,

SHIPPING_ALLOWED ,

REQUIRED_TO_SHIP ,

REQUIRED_FOR_REVENUE ,

INCLUDE_ON_SHIP_DOCS ,

LOW_QUANTITY ,

HIGH_QUANTITY ,

ACD_TYPE ,

OLD_COMPONENT_SEQUENCE_ID ,

COMPONENT_SEQUENCE_ID ,

BILL_SEQUENCE_ID ,

REQUEST_ID ,

PROGRAM_APPLICATION_ID ,

PROGRAM_ID ,

PROGRAM_UPDATE_DATE ,

WIP_SUPPLY_TYPE ,

SUPPLY_SUBINVENTORY ,

SUPPLY_LOCATOR_ID ,

REVISED_ITEM_SEQUENCE_ID ,

MODEL_COMP_SEQ_ID ,

ASSEMBLY_ITEM_ID ,

ALTERNATE_BOM_DESIGNATOR ,

ORGANIZATION_ID ,

ORGANIZATION_CODE ,

COMPONENT_ITEM_NUMBER ,

ASSEMBLY_ITEM_NUMBER ,

REVISED_ITEM_NUMBER ,

LOCATION_NAME ,

REFERENCE_DESIGNATOR ,

SUBSTITUTE_COMP_ID ,

SUBSTITUTE_COMP_NUMBER ,

TRANSACTION_ID ,

PROCESS_FLAG ,

BOM_ITEM_TYPE ,

OPERATION_LEAD_TIME_PERCENT ,

COST_FACTOR ,

INCLUDE_ON_BILL_DOCS ,

PICK_COMPONENTS ,

DDF_CONTEXT1 ,

DDF_CONTEXT2 ,

NEW_OPERATION_SEQ_NUM ,

OLD_OPERATION_SEQ_NUM ,

NEW_EFFECTIVITY_DATE ,

OLD_EFFECTIVITY_DATE ,

ASSEMBLY_TYPE ,

INTERFACE_ENTITY_TYPE ,

TRANSACTION_TYPE ,

BOM_INVENTORY_COMPS_IFCE_KEY ,

ENG_REVISED_ITEMS_IFCE_KEY ,

ENG_CHANGES_IFCE_KEY)

select distinct

1,-- OPERATION_SEQ_NUM

comp_item_id COMPONENT_ITEM_ID,-- COMPONENT_ITEM_ID

sysdate,-- LAST_UPDATE_DATE

1231,-- LAST_UPDATED_BY

sysdate,-- CREATION_DATE

1231,-- CREATED_BY

null,-- LAST_UPDATE_LOGIN

1,-- ITEM_NUM

component_quantity component_quantity ,--COMPONENT_QUANTITY

1,-- COMPONENT_YIELD_FACTOR

null,-- COMPONENT_REMARKS

sysdate,-- EFFECTIVITY_DATE

null,-- CHANGE_NOTICE

null,-- IMPLEMENTATION_DATE

null,-- DISABLE_DATE

null,-- ATTRIBUTE_CATEGORY

null,-- ATTRIBUTE1

null,-- ATTRIBUTE2

null,-- ATTRIBUTE3

null,-- ATTRIBUTE4

null,-- ATTRIBUTE5

null,-- ATTRIBUTE6

null,-- ATTRIBUTE7

null,-- ATTRIBUTE8

null,-- ATTRIBUTE9

null,-- ATTRIBUTE10

null,-- ATTRIBUTE11

null,-- ATTRIBUTE12

null,-- ATTRIBUTE13

null,-- ATTRIBUTE14

'upload08',-- ATTRIBUTE15

null,--100,-- PLANNING_FACTOR

null,--2,-- QUANTITY_RELATED

null,--2,-- SO_BASIS

null,--2,-- OPTIONAL

null,--2,-- MUTUALLY_EXCLUSIVE_OPTIONS

null,--1,-- INCLUDE_IN_COST_ROLLUP

null,--2,-- CHECK_ATP

null,-- SHIPPING_ALLOWED

null,--2,-- REQUIRED_TO_SHIP

null,--2,-- REQUIRED_FOR_REVENUE

null,--2,-- INCLUDE_ON_SHIP_DOCS

null,-- LOW_QUANTITY

null,-- HIGH_QUANTITY

null,-- ACD_TYPE

null,-- OLD_COMPONENT_SEQUENCE_ID

null,--v_seq,-- COMPONENT_SEQUENCE_ID

null,--v_seq,-- BILL_SEQUENCE_ID

null,-- REQUEST_ID

null,-- PROGRAM_APPLICATION_ID

null,-- PROGRAM_ID

null,-- PROGRAM_UPDATE_DATE

null,-- WIP_SUPPLY_TYPE

null,-- SUPPLY_SUBINVENTORY

null,-- SUPPLY_LOCATOR_ID

null,-- REVISED_ITEM_SEQUENCE_ID

null,-- MODEL_COMP_SEQ_ID

inventory_item_id,-- ASSEMBLY_ITEM_ID

null,-- ALTERNATE_BOM_DESIGNATOR

299,-- ORGANIZATION_ID

null,-- ORGANIZATION_CODE

null,-- COMPONENT_ITEM_NUMBER

null,-- ASSEMBLY_ITEM_NUMBER

null,-- REVISED_ITEM_NUMBER

null,-- LOCATION_NAME

null,-- REFERENCE_DESIGNATOR

null,-- SUBSTITUTE_COMP_ID

null,-- SUBSTITUTE_COMP_NUMBER

null,-- TRANSACTION_ID

1,-- PROCESS_FLAG

null,--4,-- BOM_ITEM_TYPE

null,-- OPERATION_LEAD_TIME_PERCENT

null,-- COST_FACTOR

null,-- INCLUDE_ON_BILL_DOCS

null,-- PICK_COMPONENTS

null,-- DDF_CONTEXT1

null,-- DDF_CONTEXT2

null,-- NEW_OPERATION_SEQ_NUM

null,-- OLD_OPERATION_SEQ_NUM

null,-- NEW_EFFECTIVITY_DATE

null,-- OLD_EFFECTIVITY_DATE

1,-- ASSEMBLY_TYPE

null,-- INTERFACE_ENTITY_TYPE

'CREATE',-- TRANSACTION_TYPE

null,-- BOM_INVENTORY_COMPS_IFCE_KEY

null,-- ENG_REVISED_ITEMS_IFCE_KEY

null -- ENG_CHANGES_IFCE_KEY

from bom_temp_04 where inventory_item_id=233814
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: