create or replace procedure create_Mapping_RELATION(
PROJECT_LIST IN PROJECT_MAPPING_TABLE_LIST,
COST_LIST IN COST_MAPPING_TABLE_LIST,
BGSCHEME_VALUE IN BGSCHEME_LIST
)
AS--定義接收物件
PROJECTLIST PROJECT_LIST;
COSTLIST COST_LIST;
BGSCHEMELIST BGSCHEME_VALUE;
isType varchar2(100);
BEGIN
for i in 1..BGSCHEME_VALUE.COUNT LOOP--外層回圈為控制策略集合
--取得BGSCHEME_VALUE各列的值
for j in 1..COST_LIST.COUNT LOOP --第二層回圈為費用型別映射表集合
for k in 1..PROJECT_LIST.COUNT LOOP --第三層回圈為專案映射關系表集合
PROJECTLIST := PROJECT_LIST(k);--獲取專案映射表集合
COSTLIST := COST_LIST(j);--獲取費用型別映射表集合
-- BGSCHEMELIST := BGSCHEME_VALUE(i);--獲取控制策略集合
COSTLIST.COST_TYPE := isType;
IF PROJECT_LIST(k)=NULL THEN
insert into CT_MAP_MappingRelationEntry(
FID,
CFCOSTTYPENUMBER,
CFCOSTTYPE,
CFBUDGETPROJECTNUMBER,
CFBUDGETNAME,
CFBUDGETPROJECT,
CFBUDGETCOSTTYPE,
CFPROJECTRID,
CFCOSTRID,
CFBGCONTROLSCHEMENUMBER,
CFBGCONTROLSCHEMEID,
CFBILLITEMCOMBINALIAS,
CFISTYPE,
CFBGCONTROLSCHEME,
CFENTRYSTATE) values(
newbosid('E62122E2'),
COSTLIST.DOCUMENT_COST_NUMBER,
COSTLIST.DOCUMENT_COST_NAME,
COSTLIST.BUDGET_PROJECT_NUMBER||'_'||PROJECTLIST.BUDGET_PROJECT_NUMBER,
COSTLIST.BUDGET_PROJECT_NAME||'_'||PROJECTLIST.BUDGET_PROJECT_NAME,
PROJECTLIST.BUDGET_PROJECT_NUMBER,
COSTLIST.BUDGET_PROJECT_NUMBER,
PROJECTLIST.PROJECT_RID,
COSTLIST.COST_RID,
IF isType = '1' THEN --如果為1等于費用管理
'entries.expenseType.number:'||COSTLIST.DOCUMENT_COST_NUMBER,
'entries.expenseType.number',
'entries.expenseType.number:'||COSTLIST.DOCUMENT_COST_NAME,
'1',
BGSCHEMELIST := BGSCHEME_VALUE(i),
'3');
ELSIF isType = '2' THEN --如果為2等于總賬
'entries.account.number:'||COSTLIST.DOCUMENT_COST_NUMBER,
'entries.account.number',
'entries.account.number:'||COSTLIST.DOCUMENT_COST_NAME,
'2',
BGSCHEMELIST := BGSCHEME_VALUE(i),
'3');
END IF
ELSE
insert into CT_MAP_MappingRelationEntry(
FID,
CFCOSTTYPENUMBER,
CFCOSTTYPE,
CFPROJECTNUMBER,
CFPROJECT,
CFBUDGETPROJECTNUMBER,
CFBUDGETNAME,
CFBUDGETPROJECT,
CFBUDGETCOSTTYPE,
CFPROJECTRID,
CFCOSTRID,
CFBGCONTROLSCHEMENUMBER,
CFBGCONTROLSCHEMEID,
CFBILLITEMCOMBINALIAS,
CFISTYPE,
CFBGCONTROLSCHEME,
CFENTRYSTATE) values(
newbosid('E62122E2'),
COSTLIST.DOCUMENT_COST_NUMBER,
COSTLIST.DOCUMENT_COST_NAME,
PROJECTLIST.DOCUMENT_PROJECT_NUMBER,
PROJECTLIST.DOCUMENT_PROJECT_NAME,
COSTLIST.BUDGET_PROJECT_NUMBER||'_'||PROJECTLIST.BUDGET_PROJECT_NUMBER,
COSTLIST.BUDGET_PROJECT_NAME||'_'||PROJECTLIST.BUDGET_PROJECT_NAME,
PROJECTLIST.BUDGET_PROJECT_NUMBER,
COSTLIST.BUDGET_PROJECT_NUMBER,
PROJECTLIST.PROJECT_RID,
COSTLIST.COST_RID,
IF isType = '1' THEN --如果為1等于費用管理
'entries.expenseType.number:'||COSTLIST.DOCUMENT_COST_NUMBER||'|entries.project.number:'||PROJECTLIST.DOCUMENT_PROJECT_NUMBER,
'entries.expenseType.number|entries.project.number',
'entries.expenseType.number:'||COSTLIST.DOCUMENT_COST_NAME||'|entries.project.number:'||PROJECTLIST.DOCUMENT_PROJECT_NAME,
'1',
BGSCHEMELIST := BGSCHEME_VALUE(i),
'3');
ELSIF isType = '2' THEN --如果為2等于總賬
'entries.account.number:'||COSTLIST.DOCUMENT_COST_NUMBER||'|entries.assistRecords.assGrp.project.number:'||PROJECTLIST.DOCUMENT_PROJECT_NUMBER,
'entries.account.number|entries.assistRecords.assGrp.project.number',
'entries.account.number:'||COSTLIST.DOCUMENT_COST_NAME||'|entries.assistRecords.assGrp.project.number:'||PROJECTLIST.DOCUMENT_PROJECT_NAME,
'2',
BGSCHEMELIST := BGSCHEME_VALUE(i),
'3');
END IF
END IF
END LOOP
END LOOP
END LOOP
END;
END create_Mapping_RELATION
uj5u.com熱心網友回復:
你的insert里面的if陳述句怎么一半寫在insert里面,另一半沒寫造成的陳述句執行程序報錯吧uj5u.com熱心網友回復:
IF isType = '1' THEN --如果為1等于費用管理'entries.expenseType.number:'||COSTLIST.DOCUMENT_COST_NUMBER,
'entries.expenseType.number',
'entries.expenseType.number:'||COSTLIST.DOCUMENT_COST_NAME,
'1',
BGSCHEMELIST := BGSCHEME_VALUE(i),
'3');
ELSIF isType = '2' THEN --如果為2等于總賬
'entries.account.number:'||COSTLIST.DOCUMENT_COST_NUMBER,
'entries.account.number',
'entries.account.number:'||COSTLIST.DOCUMENT_COST_NAME,
'2',
BGSCHEMELIST := BGSCHEME_VALUE(i),
'3');
END IF
INSERT 陳述句中,怎么還出現了 IF 陳述句,這是要做什么呢?
uj5u.com熱心網友回復:
2樓,我這樣子的邏輯是不是在存盤程序中實作方式不對嗎?uj5u.com熱心網友回復:
insert into t(col_name)values(
case when isType = '1' then '1111'
when isType ='2' then '2222'
else '33333'
end)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/94855.html
標籤:開發
下一篇:資料遷移到故障轉移群集服務器
