1.创建包和游标
CREATE OR REPLACE PACKAGE RefCursor
IS type T_WMS_STOCK_INFO
IS
ref CURSOR;
END RefCursor;
2.存储过程
CREATE OR REPLACE
PROCEDURE P_PICKING_GUIDE
/*
描述:拣货指引
作者:shine
日期:2020-11-12
*/
(M_DATA_AUTH IN VARCHAR2, --组织机构
M_DOC_NO IN VARCHAR2, --选择的单据号
M_ITEM_CODE IN VARCHAR2, --物料料号
M_WH_CODE IN VARCHAR2, --仓库编码
M_EMP IN VARCHAR2, --员工号
M_DEVICE_SN IN VARCHAR2, --操作设备IP
M_STORAGE_SN IN OUT VARCHAR2, --所在库位
M_LANG IN VARCHAR2, --语种代码
FLOWCODE OUT VARCHAR2, --动作流程码
M_NEED_SN OUT VARCHAR2, --指引SN
RES OUT VARCHAR2 --返回值
) AS
L_WMS_DOC_TYPE T_WMS_DOC_TYPE%ROWTYPE; --单据类别行对象
L_WMS_OUTSTOCK_DOC T_WMS_OUTSTOCK_DOC%ROWTYPE; --出库单信息行对象
L_WMS_STOCK_INFO_ROW T_WMS_STOCK_INFO%ROWTYPE; --库存信息行对象
L_WMS_PICK_GUID_ROW T_WMS_PICK_GUID%ROWTYPE; --库存信息行对象
L_ITEM_CODE varchar2(50);--物料料号
L_NEED_NUM number;--需求数量
L_DQ_NUM NUMBER;--当前数量
L_SEQ VARCHAR2(50); --项次
L_COUNT NUMBER; --返回结果数量
L_STR_ORDER VARCHAR2(500); --排序条件
L_STATICS_CODE VARCHAR2(100); --策略代码
L_FIFO_DAY VARCHAR2(100); --FIFO放宽天数
L_VAR VARCHAR2(50); --参数管控值
L_SQL VARCHAR2(30000); --查询语句
L_EXCESS_RECEIVE VARCHAR2(50); --超收标志
L_EXCESS_PICK VARCHAR2(50); --超发标志
L_SAMPLE_FLAG VARCHAR2(100); --送检标识
L_HANDOVER_FLAG VARCHAR2(100); --交接标识
L_HANDOVER_WAYS VARCHAR2(100); --交接方式
L_TEST_STEP VARCHAR2(100); --检验阶别
L_SAMPLE_TYPE VARCHAR2(100); --检验类型
L_NEED_S NUMBER; --需求数量
L_NEED_L NUMBER; --需求数量
L_USER_ID SY_USER.ID%TYPE; --当前用户ID
L_NAME SY_USER.NAME%TYPE; --当前用户名称
L_DEPT_ID SY_USER.DEPT_ID%TYPE; --当前用户部门
L_IS_SUPER VARCHAR2(10); --超级库管员标志
/*
V_STORAGE_CODE VARCHAR2(100);
V_ITEM_SN VARCHAR2(100);
V_PRODUCT_DATE date;
V_ITEM_CODE VARCHAR2(100);
V_ITEM_QTY NUMBER;
*/
--定义游标
itemsn_info RefCursor.T_WMS_STOCK_INFO;
V_STORAGE_CODE T_WMS_STOCK_INFO.STORAGE_CODE%type;
V_I