内存表概念.docx

上传人:b****5 文档编号:5757158 上传时间:2023-01-01 格式:DOCX 页数:6 大小:18.72KB
下载 相关 举报
内存表概念.docx_第1页
第1页 / 共6页
内存表概念.docx_第2页
第2页 / 共6页
内存表概念.docx_第3页
第3页 / 共6页
内存表概念.docx_第4页
第4页 / 共6页
内存表概念.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

内存表概念.docx

《内存表概念.docx》由会员分享,可在线阅读,更多相关《内存表概念.docx(6页珍藏版)》请在冰豆网上搜索。

内存表概念.docx

内存表概念

1内存表概念 

1、PL/SQL表类似于C语言中的数组。

如果要声明一个PL/SQL表,要先定义该表类型,然后在声明属于该类型的变量。

 

2、理论上,数据库数据空间有多大,我们的内存表就可以存储多大的数据,就是说他和我们的物理表是相同的,我们可以把物理表的数据完全拷贝到内存表中。

 

3、PL/SQL表的元素没有必要按照特定的次序排列,因为他们不是象数组那样连续存储在内存中,元素可以按照任意键值进行插入。

4、PL/SQL表的键值(KEY)没有必要是顺序的。

表所占用的内存并不依赖于键所使用的数值。

--Purpose:

内存表使用

--1.建立表类型

CREATEORREPLACETYPEty_objISOBJECT(p_empnoVARCHAR2(50)

p_enameVARCHAR2(50)

jobVARCHAR2(50)

);

--2.建立数组

CREATEORREPLACETYPEty_objtabISTABLEOFty_obj;

--3.建立函数

CREATEORREPLACEFUNCTIONfunc_infoRETURNty_objtab

IS

v_ty_objtabty_objtab:

=ty_objtab();--返回内存表

BEGIN

FORcurIN(SELECT*FROMemp)LOOP

v_ty_objtab.extend;

v_ty_objtab(v_ty_objtab.count):

=ty_obj(cur.empno,cur.ename,cur.job);

ENDLOOP;

RETURNv_ty_objtab;

ENDfunc_info;

--4.测试1

--查询出所有结果

SELECT*FROMTABLE(func_info);

--查询出部分结果

DECLARE

vtabty_objtab;

BEGIN

vtab:

=func_info;

dbms_output.put_line(vtab

(1).p_empno);

END;

--查询结果行数

DECLARE

vtabty_objtab;

BEGIN

vtab:

=func_info;

dbms_output.put_line(vtab.count);

END;

--综合操作

DECLARE

vtabty_objtab;

BEGIN

vtab:

=func_info;

FORiIN1..vtab.countLOOP

--修改内存表中数据

vtab(i).p_ename:

=vtab(i).p_ename||'mm';

--读取内存表中数据

dbms_output.put_line(vtab(i).p_ename);

--测试表明操作成功

ENDLOOP;

END;

 

上回在做一个物料Item导入程序的时候,我刚开始是建立的一些表来先存好需要导入的Item数据,数据量大了的时候效率就不是太好了,而且会出现老多的问题,后来在探讨的时候被Leader给说了,说有更好的方法来解决,比如内存表和临时表等等,当时我就被内存表的内存二字给吸引了,心想这个绝对很有意思的,然后就整理出了上面的总结性的东西,虽然看似很简单,但是却明了,把内存表的核心内容都理通了,实用,学习起来也不吃力~~

要说内存表的使用场景的话哈,我的觉得在做接口程序的时候用内存表来存临时的数据是一个不错的选择,先把最初的原始数据放到内存表中,然后逻辑处理内存表的数据,然后再将处理过后的合法的数据insert到接口表。

所有的操作都是在内存中进行的,不存在物理上的创建和删除内存表,那么在多个用户同时跑这个程序的时候也不存在什么冲突,所以说我觉得这个东西非常的有用~~

我所晓得也就这么点哈,几乎够用了也,如有错误望各位指正~~

 

AP接口表:

AP_INVOICES_INTERFACE

AP_INVOICE_LINES_INTERFACE

涉及的请求:

应付款管理系统开放接口导入

涉及案例:

运费导AP、费用导AP

PO接口表:

申请:

PO_REQUISITIONS_INTERFACE_ALL

涉及请求:

导入申请

采购:

po_headers_interface

po_lines_interface

po_distributions_interface

涉及的请求:

ImportStandardPurchaseOrders

接收:

rcv_headers_interface

rcv_transactions_interface

mtl_transaction_lots_interface

涉及请求:

接收事务处理处理器

涉及案例:

运费导采购、MRP导申请、POP导申请

GL接口表:

gl_interface

涉及案例:

ADI导日记账、返利导日记账

FA接口表:

fa_mass_additions

FAAPI:

增加fa_addition_pub.do_addition

修改:

fa_adjustment_pub.do_adjustment

  fa_asset_desc_pub.update_desc

涉及案例:

电子资产清理

库存事务接口:

mtl_transactions_interface

1)一般用来做各类杂收发、CostUpdate,对于和业务有关的事务一般不建议使用,比如SO发货,如果自己发会导致Workflow没有往下走

2)成功导入之后运行CostManager生成会计分录

3)平均成本更新也通过此接口;如果该Item没有交易,则成本数据不会进入cst_item_costs

固定资产接口:

fa_mass_additions

1)fa_mass_additions这个表有几个Trigger需要注意;会自动去插其他表,删除的时候也是

2)折旧方法接口表无法给,而是自动从Category继承下来,所以导入之后需要Update表

3)不是通过AP引过来的FA,是没有SourceLines信息的;如果需要,可以通过插表来实现

4)数据进接口之后从Navigator:

MassAdditions/PostMassAdditions提交请求集,这样会有个报表显示导入结果。

不过我的测试程序可以直接提交请求集。

总账分录接口:

gl_interface

1)最简单的接口,不说了

应付发票接口:

ap_invoices_interface/ap_invoice_lines_interface

1)ProfileAP:

UseInvoiceBatchControls定义是否使用批控制

2)仅支持CREDIT/STANDARD;注意金额正负,小于零用CREDIT,大于零用STANDARD

3)PREPAYMENT/DEBIT/EXPENSEREPORT/MIXED不支持,先用CREDIT或者STANDARD,进去之后再Update正式表ap_invoices_all

4)导入之后可再调用请求InvoiceValidation自动Validate发票

应收发票接口:

ra_interface_lines_all/ra_interface_salescredits_all

1)几个接口表之间的关系和其他接口不同,不是通过ID关联,而是通过描述性弹性域LineTransactionFlexfield定义

2)接口给ID还是Name,要根据TransactionSource上的定义,不能随便给

3)ra_interface_distributions_all这个表可以不插,让系统自动生成分配行

4)如果没有销售员,可以提供一条ID=-3的NoSalesPerson记录给接口。

这个要看ARSystemOptionMiscellaneous上的设置是否要求销售员

应收收据接口:

ar_interim_cash_receipts_all

1)ARReceipt标准接口是Lockbox,需要预先定义Format;Oracle根据Format定义把接口数据写到ar_interim_cash_receipts_all;我们可以跳过第一步,直接把数据插入到ar_interim_cash_receipts_all,不过Batch需要我们直接插表

2)在Batch界面查看:

数据在ar_interim_cash_receipts_all的BatchType为MannualQuick

3)Batch的Currency取本位币即可,收据用需要的货币

客户导入接口:

ra_customers_interface_all/ra_customer_profiles_int_all/ra_contact_phones_int_all

1)要导Customer,ra_customer_profiles_int_all需要有记录

2)orig_system_party_ref相同的话,Customer_Number不同,可以在一个Party下建多个Customer

3)shipto的bill_to_orig_address_ref可用billto的orig_system_address_ref,这样可以自动关联

4)需要打Patch3606744和3558213,否则Statement和Dunning类型的SiteUse导不进去

5)不是所以字段都可以从Interface进去;以HZ_Cust_Site_Uses_all为例,导入之后需要直接Update如下比较重要的字段:

payment_term_id、order_type_id、warehouse_id、territory_id、primary_salesrep_id

6)更新HZ_Cust_Site_Uses_all的Primary_flag的时候注意同时更新hz_cust_acct_sites_all的bill_to_flag和ship_to_flag为P(Primary)或者Y

销售订单接口:

oe_headers_iface_all/oe_lines_iface_all/oe_actions_iface_all

1)整张Close的订单可以通过接口表;Close的订单,Oracle几乎是直接插表;其他的要做很多验证

2)部分行Close的订单,可以给行Assign一个仅负责Close(Enter/Fulfill/Close/End)的工作流,这样WorkflowBackGroundProcess起来之后就会Close

3)非Close的订单行号不能重复,所以接口表我们给空;如果有需要待导入后UpdateLine表即可

4)数量正负要与LineType的类型一致,正的对Order,负的对Return,否则接口报InventoryItem错误

5)订单号更新需要更新几个表:

oe_order_headers_all/wsh_delivery_details/mtl_sales_orders

6)订单行在收货或者发货不足的情况下会拆行,拆行的时候系统几乎是拷贝所有的字段,如果碰到Unique的字段会失败。

我碰到的问题是把源系统的line_id记录在弹性域上,并给这个弹性域建了Unique索引,导致Dropship的订单采购部分收货老是报错

采购订单接口:

po_headers_interface/po_lines_interface/po_distributions_interface

1)PO接口有问题可察看错误信息表po_interface_errors,可以解决大部分问题

2)本位币导入之后,头上的RateDate为空,需要Update表

3)quantity_billed也可以事后更新,这样AP不会再Match过来

4)审批记录可以直接插入表po_action_history

5)注意采购的ValdiateORG

6)如果Item没有Assign给Ship_to_org,会报Nodatafound错误

采购接收接口:

rcv_shipment_headers/rcv_transactions_interface

1)收据头直接写表;收据行和收货事务通过接口

2)注意parent_transaction_id,Receive需要放空

3)PO接口有问题可察看错误信息表po_interface_errors,可以解决大部分问题

4)如果要再现原来的ReceivingTransaction,可按如下顺序分批进入接口RECEIVE、TRANSFER、ACCEPT、REJECT、DELIVER、RETURNTORECEIVING、RETURNTOVENDOR、CORRECT

库存项目接口:

mtl_system_items_interface

1)在MasterOrg新增Item比较简单,给足需要的字段即可

2)在其他组织增加Item(相当于从MasterAssign后再Update),需要注意MasterOrgConctrol的字段需要保持主组织的值(比较多,看mtl_item_attributes的Conctrol_level=1)

3)在其他组织增加Item还需要注意一些字段需要保持主组织的值,否则接口会报错,它们是create_supply_flag、dual_uom_control、buyer_id、allowed_units_lookup_code、purchasing_item_flag、internal_order_flag、inventory_item_flag

4)如果要给ItemAssignCategory,可以通过mtl_item_categories_interface,对应的请求是ItemCategoryAssignmentOpenInterface

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1