FUNCTION Get_Machine_Work_Center_No (
contract_ IN VARCHAR2,
part_no_ IN VARCHAR2,
routing_revision_ IN VARCHAR2,
bom_type_ IN VARCHAR2,
alternative_no_ IN VARCHAR2) RETURN VARCHAR2
IS
temp_ ROUTING_OPERATION_TAB.work_center_no%TYPE;
BEGIN
temp_ := '';
temp_ := Get_Work_Center_No(contract_,part_no_,routing_revision_,bom_type_,alternative_no_,3);
if (temp_ = '') then
temp_ := Get_Work_Center_No(contract_,part_no_,routing_revision_,bom_type_,alternative_no_,1);
END if;
RETURN temp_;
END Get_Machine_Work_Center_No;
//取工作中心編號,首先取第三個工序的工作中心,若取不到,則取第一個工序的工作中心;
測試中發現:若有第三個工序,則能取正確;若只有一個工序就是取不出來,真是奇怪;
估計是判斷有問題:修改如下資料就正確無誤:
FUNCTION Get_Machine_Work_Center_No (
contract_ IN VARCHAR2,
part_no_ IN VARCHAR2,
routing_revision_ IN VARCHAR2,
bom_type_ IN VARCHAR2,
alternative_no_ IN VARCHAR2) RETURN VARCHAR2
IS
temp_ ROUTING_OPERATION_TAB.work_center_no%TYPE;
BEGIN
temp_ := '';
temp_ := Get_Work_Center_No(contract_,part_no_,routing_revision_,bom_type_,alternative_no_,3);
if (temp_ = '') or (temp_ IS NULL ) then
temp_ := Get_Work_Center_No(contract_,part_no_,routing_revision_,bom_type_,alternative_no_,1);
END if;
RETURN temp_;
END Get_Machine_Work_Center_No;
小問題,也要一個一個來解決...