Plsql 将具有IN参数的过程作为记录插入到多个表中
我需要将数据插入到表中,我的过程将通过JAVA调用 所以JAVA人员问我是否可以将JAVA对象(即PLSQL中的记录)作为输入,然后将其插入表中 这些是表格的DDLPlsql 将具有IN参数的过程作为记录插入到多个表中,plsql,oracle11g,plsqldeveloper,Plsql,Oracle11g,Plsqldeveloper,我需要将数据插入到表中,我的过程将通过JAVA调用 所以JAVA人员问我是否可以将JAVA对象(即PLSQL中的记录)作为输入,然后将其插入表中 这些是表格的DDL create table gnv_sol_attributes ( so_id varchar2(20), se_integration_id varchar2(20), parameter_name varchar2(100), actio
create table gnv_sol_attributes (
so_id varchar2(20),
se_integration_id varchar2(20),
parameter_name varchar2(100),
action_code varchar2(20),
parameter_value varchar2(255)
);
create table
gnv_sol_serviceelement (
customer_ref varchar2(20),
billing_account_code varchar2(20),
so_id varchar2(20),
so_type varchar2(5),
se_integration_id varchar2(20),
se_root_integration_id varchar2(20),
se_parent_integration_id varchar2(20),
offer_id varchar2(75),
offer_id_old varchar2(75),
pricing_id varchar2(75),
promo_id varchar2(20),
action_code varchar2(20),
reason_id varchar2(100),
product_code varchar2(40),
product_subsc_date date,
product_start_date date,
product_modify_date date,
product_end_date date,
event_source varchar2(40),
sales_force_code varchar2(20),
line_number varchar2(20),
product_status varchar2(2)
);
因此,在gnv_sol_属性表中,对于单个So_id和se_integration_id,有不同的参数_名称
在这里,他们向我解释说,我们可以在一个记录中插入另一个记录,然后插入它(看起来像多维集合)
gnv_sol_serviceelemen表的示例数据
CUSTOMER_REF,BILLING_ACCOUNT_CODE,SO_ID,SO_TYPE,SE_INTEGRATION_ID,SE_ROOT_INTEGRATION_ID,SE_PARENT_INTEGRATION_ID,OFFER_ID,OFFER_ID_OLD,PRICING_ID,PROMO_ID,ACTION_CODE,REASON_ID,PRODUCT_CODE,PRODUCT_SUBSC_DATE,PRODUCT_START_DATE,PRODUCT_MODIFY_DATE,PRODUCT_END_DATE,EVENT_SOURCE,SALES_FORCE_CODE,LINE_NUMBER,PRODUCT_STATUS
C_1,BA_1,SO_1,OT_1,SE_1,SE_1,SE_1,STDE_A8,,STDE_A8_FEE_AE,,Add,,STDE_A8,7/13/2015,7/13/2015,,,,,1,
C_1,BA_1,SO_1,OT_1,SE_2,SE_1,SE_1,STDE_A8,,STDE_MA,,Add,,STDE_MA,7/14/2015,7/14/2015,,,,,2,
C_1,BA_1,SO_1,OT_1,SE_3,SE_1,SE_1,STDE_A8,,STDE_WIFI,,Add,,STDE_WIFI,7/15/2015,7/15/2015,,,,,3,
C_1,BA_1,SO_1,OT_1,SE_4,SE_1,SE_1,STDE_A8,,STDE_BCK_M_FEE_AE,,Add,,STDE_BCK_M,7/16/2015,7/16/2015,,,,,4,
C_1,BA_1,SO_1,OT_1,SE_5,SE_1,SE_1,STDE_A8,,SBRI_1_FEE_AE,,Add,,SBRI_1,7/17/2015,7/17/2015,,,,,5,
C_1,BA_1,SO_1,OT_1,SE_6,SE_1,SE_1,STDE_A8,,SBRI_6_FEE_AE,,Add,,SBRI_4,7/18/2015,7/18/2015,,,,,6,
C_1,BA_1,SO_1,OT_1,SE_7,SE_1,SE_1,STDE_A8,,SPUN_6_FEE_AE,,Add,,SPUN_6,7/19/2015,7/19/2015,,,,,7,
C_1,BA_1,SO_1,OT_1,SE_8,SE_1,SE_7,STDE_A8,,SPUN_AV_6,,Add,,SPUN_AV_6,7/20/2015,7/20/2015,,,,,8,
C_1,BA_1,SO_1,OT_1,SE_9,SE_1,SE_7,STDE_A8,,SPUN_AF_6,,Add,,SPUN_AF_6,7/21/2015,7/21/2015,,,,,9,
C_1,BA_1,SO_1,OT_1,SE_10,SE_1,SE_7,STDE_A8,,SPUN_ARS_6,,Add,,SPUN_ARS_6,7/22/2015,7/22/2015,,,,,10,
C_1,BA_1,SO_1,OT_1,SE_11,SE_1,SE_1,STDE_A8,,SCOE_VOIP_CEIP_3_FEE_AE,,Add,,SCOE_VOIP_CEIP_3,7/23/2015,7/23/2015,,,,,11,
gnv_sol_属性的示例数据
SO_ID,SE_INTEGRATION_ID,PARAMETER_NAME,ACTION_CODE,PARAMETER_VALUE,
1,SO_1,SE_1,PCT? (Without),Add,?,
2,SO_1,SE_1,FEE PCT,Add,110,
3,SO_1,SE_1,AE PCT,Add,212,
4,SO_1,SE_1,AE+FEE PCT,Add,218,
5,SO_1,SE_1,FEE BOO,Add,YES,
6,SO_1,SE_1,AE BOO,Add,YES,
7,SO_1,SE_1,AE+FEE BOO,Add,YES,
8,SO_1,SE_1,hierarchy ID,Add,,
9,SO_1,SE_1,hierarchy subscription ID,Add,,
10,SO_1,SE_1,hierarchy parent ID,Add,,
11,SO_1,SE_1,subscription date,Add,7/31/2015,
12,SO_1,SE_1,start of charging date,Add,7/31/2015,
13,SO_1,SE_1,start of billing date,Add,7/31/2015,
14,SO_1,SE_1,PAS(Address),Add,,
15,SO_1,SE_1,Download Bandwidth,Add,20480,
16,SO_1,SE_1,upload bandwidth,Add,1024,
我创建了这个过程,它成功地在两个表中插入了一行
create or replace procedure ins_svc (p_svc IN SVC_REC, p_svc_att IN SVC_ATTR_REC)
is
begin
insert into gnv_sol_serviceelement values (p_svc.customer_ref, p_svc.billing_account_code, p_svc.so_id, p_svc.so_type
,p_svc.se_integration_id, p_svc.se_root_integration_id, p_svc.se_parent_integration_id
,p_svc.offer_id, p_svc.offer_id_old, p_svc.pricing_id, p_svc.promo_id, p_svc.action_code
,p_svc.reason_id, p_svc.product_code, p_svc.product_subsc_date, p_svc.product_start_date
,p_svc.product_modify_date, p_svc.product_end_date, p_svc.event_source
,p_svc.sales_force_code, p_svc.line_number, p_svc.product_status);
insert into GNV_SOL_ATTRIBUTES values (p_svc_att.so_id, p_svc_att.se_integration_id, p_svc_att.parameter_name
,p_svc_att.action_code, p_svc_att.parameter_value);
exception
when others then
dbms_output.put_line('error code '||' '||sqlcode||' '||'Error reason'||sqlerrm);
end;
现在,JAVA人员问我是否有办法在gnv_sol_servicelemen表中插入一行
CUSTOMER_REF,BILLING_ACCOUNT_CODE,SO_ID,SO_TYPE,SE_INTEGRATION_ID,SE_ROOT_INTEGRATION_ID,SE_PARENT_INTEGRATION_ID,OFFER_ID,OFFER_ID_OLD,PRICING_ID,PROMO_ID,ACTION_CODE,REASON_ID,PRODUCT_CODE,PRODUCT_SUBSC_DATE,PRODUCT_START_DATE,PRODUCT_MODIFY_DATE,PRODUCT_END_DATE,EVENT_SOURCE,SALES_FORCE_CODE,LINE_NUMBER,PRODUCT_STATUS
C_1,BA_1,SO_1,OT_1,SE_1,SE_1,SE_1,STDE_A8,,STDE_A8_FEE_AE,,Add,,STDE_A8,7/13/2015,7/13/2015,,,,,1,
C_1,BA_1,SO_1,OT_1,SE_2,SE_1,SE_1,STDE_A8,,STDE_MA,,Add,,STDE_MA,7/14/2015,7/14/2015,,,,,2,
C_1,BA_1,SO_1,OT_1,SE_3,SE_1,SE_1,STDE_A8,,STDE_WIFI,,Add,,STDE_WIFI,7/15/2015,7/15/2015,,,,,3,
C_1,BA_1,SO_1,OT_1,SE_4,SE_1,SE_1,STDE_A8,,STDE_BCK_M_FEE_AE,,Add,,STDE_BCK_M,7/16/2015,7/16/2015,,,,,4,
C_1,BA_1,SO_1,OT_1,SE_5,SE_1,SE_1,STDE_A8,,SBRI_1_FEE_AE,,Add,,SBRI_1,7/17/2015,7/17/2015,,,,,5,
C_1,BA_1,SO_1,OT_1,SE_6,SE_1,SE_1,STDE_A8,,SBRI_6_FEE_AE,,Add,,SBRI_4,7/18/2015,7/18/2015,,,,,6,
C_1,BA_1,SO_1,OT_1,SE_7,SE_1,SE_1,STDE_A8,,SPUN_6_FEE_AE,,Add,,SPUN_6,7/19/2015,7/19/2015,,,,,7,
C_1,BA_1,SO_1,OT_1,SE_8,SE_1,SE_7,STDE_A8,,SPUN_AV_6,,Add,,SPUN_AV_6,7/20/2015,7/20/2015,,,,,8,
C_1,BA_1,SO_1,OT_1,SE_9,SE_1,SE_7,STDE_A8,,SPUN_AF_6,,Add,,SPUN_AF_6,7/21/2015,7/21/2015,,,,,9,
C_1,BA_1,SO_1,OT_1,SE_10,SE_1,SE_7,STDE_A8,,SPUN_ARS_6,,Add,,SPUN_ARS_6,7/22/2015,7/22/2015,,,,,10,
C_1,BA_1,SO_1,OT_1,SE_11,SE_1,SE_1,STDE_A8,,SCOE_VOIP_CEIP_3_FEE_AE,,Add,,SCOE_VOIP_CEIP_3,7/23/2015,7/23/2015,,,,,11,
和gnv_sol_属性中的多行,因为在属性表中,同一so_id和SE_INTEGRATION_id的参数值不同
这就是我被卡住的地方
如果有人有出路
数据库版本:--
Oracle Database 11g Enterprise Edition 11.2.0.3.0版-64位生产版欢迎使用SO。请阅读。这里没有人会涉过代码/数据的页面。回答得很好!预计来自stackoverflow