684
社区成员
发帖
与我相关
我的任务
分享/*************************************************************************
* 存储过程名称: PR_ECOS_CUSTBACK_MAIN
* 存储过程功能: 用户中差评登记表涉及的ECOS_Op_CustFeedBack_Detail表与ECOS_Op_CustFeedBack_Head表,
* 以上2个表所关联的页面根据3个输入参数:
* 1:页面Number
* 2:页面Number对应的功能方法ID
* 3:前端传到后台的JSON字符串
* 分别调用不同的子存储过程
* 存储过程执行实例: EXEC PR_ECOS_CUSTBACK_MAIN '001','insert','{JSON字符串}'
*************************************************************************/
CREATE OR REPLACE PROCEDURE "PR_ECOS_CUSTBACK_MAIN"
( V_PAGE_NO IN VARCHAR2,--页面Number
V_FUN_ID IN VARCHAR2,--页面Number,对应的功能方法ID
V_JSON_STR IN VARCHAR2,--前端传到后台的JSON字符串
V_OU_RETURN OUT VARCHAR2,----成功返回OK 失败返回ERROR,输出参数也是要传递的,初始化时传空''即可
V_OU_MSG OUT VARCHAR2,--成功返回空,失败返回失败原因,输出参数也是要传递的,初始化时传空''即可
V_OU_JSON OUT CLOB --返回的JSON字符串,输出参数也是要传递的,初始化时传空''即可
)
IS
V_RETURN VARCHAR2(100);
V_HEAD_JSON CLOB;
BEGIN
IF V_PAGE_NO = "" or V_PAGE_NO is null THEN
V_OU_RETURN := 'ERROR';
V_OU_MSG := '页面Number不能为空!';
RETURN;
END IF;
IF V_FUN_ID = "" or V_FUN_ID is null THEN
V_OU_RETURN := 'ERROR';
V_OU_MSG := '页面Number对应的功能方法ID不能为空!';
RETURN;
END IF;
IF V_JSON_STR = "" or V_JSON_STR is null THEN
V_OU_RETURN := 'ERROR';
V_OU_MSG := '前端传到后台的JSON字符串不能为空!';
RETURN;
END IF;
IF V_JSON_STR is not JSON THEN
V_OU_RETURN := 'ERROR';
V_OU_MSG := '前端传到后台的JSON字符串格式不对!';
RETURN;
END IF;
IF V_PAGE_NO = '001' and V_FUN_ID ='insert' THEN --中差评ECOS_Op_CustFeedBack_Head表新增
PR_ECOS_CUSTBACK_HEAD_INSERT(V_PAGE_NO,V_FUN_ID,V_JSON_STR,V_RETURN);
IF V_RETURN <> 'OK' THEN
V_OU_RETURN := 'ERROR';
V_OU_MSG := V_RETURN;
RETURN;
END IF;
END IF;
IF V_PAGE_NO = '001' and V_FUN_ID ='delete' THEN --中差评ECOS_Op_CustFeedBack_Head表删除
PR_ECOS_CUSTBACK_HEAD_DELETE(V_PAGE_NO,V_FUN_ID,V_JSON_STR,V_RETURN);
IF V_RETURN <> 'OK' THEN
V_OU_RETURN := 'ERROR';
V_OU_MSG := V_RETURN;
RETURN;
END IF;
END IF;
IF V_PAGE_NO = '001' and V_FUN_ID ='update' THEN --中差评ECOS_Op_CustFeedBack_Head表修改
PR_ECOS_CUSTBACK_HEAD_UPDATE(V_PAGE_NO,V_FUN_ID,V_JSON_STR,V_RETURN);
IF V_RETURN <> 'OK' THEN
V_OU_RETURN := 'ERROR';
V_OU_MSG := V_RETURN;
RETURN;
END IF;
END IF;
IF V_PAGE_NO = '001' and V_FUN_ID ='select' THEN --中差评ECOS_Op_CustFeedBack_Head表查询
PR_ECOS_CUSTBACK_HEAD_QUERY(V_PAGE_NO,V_FUN_ID,V_RETURN,V_HEAD_JSON);
IF V_RETURN <> 'OK' THEN
V_OU_RETURN := 'ERROR';
V_OU_MSG := V_RETURN;
V_OU_JSON := V_HEAD_JSON;
RETURN;
END IF;
END IF;
IF V_PAGE_NO = '002' and V_FUN_ID ='insert' THEN --中差评ECOS_Op_CustFeedBack_Detail表新增
PR_ECOS_CUSTBACK_DETAIL_INSERT(V_PAGE_NO,V_FUN_ID,V_JSON_STR,V_RETURN);
IF V_RETURN <> 'OK' THEN
V_OU_RETURN := 'ERROR';
V_OU_MSG := V_RETURN;
RETURN;
END IF;
END IF;
IF V_PAGE_NO = '002' and V_FUN_ID ='delete' THEN --中差评ECOS_Op_CustFeedBack_Detail表删除
PR_ECOS_CUSTBACK_DETAIL_DELETE(V_PAGE_NO,V_FUN_ID,V_JSON_STR,V_RETURN);
IF V_RETURN <> 'OK' THEN
V_OU_RETURN := 'ERROR';
V_OU_MSG := V_RETURN;
RETURN;
END IF;
END IF;
IF V_PAGE_NO = '002' and V_FUN_ID ='update' THEN --中差评ECOS_Op_CustFeedBack_Detail表修改
PR_ECOS_CUSTBACK_DETAIL_UPDATE(V_PAGE_NO,V_FUN_ID,V_JSON_STR,V_RETURN);
IF V_RETURN <> 'OK' THEN
V_OU_RETURN := 'ERROR';
V_OU_MSG := V_RETURN;
RETURN;
END IF;
END IF;
IF V_PAGE_NO = '002' and V_FUN_ID ='select' THEN --中差评ECOS_Op_CustFeedBack_Detail表查询
PR_ECOS_CUSTBACK_DETAIL_QUERY(V_PAGE_NO,V_FUN_ID,V_JSON_STR,V_RETURN);
IF V_RETURN <> 'OK' THEN
V_OU_RETURN := 'ERROR';
V_OU_MSG := V_RETURN;
RETURN;
END IF;
END IF;
COMMIT;
V_OU_RETURN := 'OK';
EXCEPTION
WHEN OTHERS THEN
V_OU_RETURN := 'ERROR';
V_OU_MSG := '失败,原因是:' || SQLERRM;
ROLLBACK;
INSERT INTO SYS_ERROR_LOG
(ROW_ID, PR_NAME, ERROR_DESC, INSDT)
VALUES
(SYS_ERROR_LOG_SEQ.NEXTVAL, 'PR_ECOS_CUSTBACK_MAIN', V_OU_MSG, SYSDATE);
COMMIT;
END PR_ECOS_CUSTBACK_MAIN;
-- 把 这个双引号,改成单引号,再重建一下这个过程,下面还有好几处
IF V_PAGE_NO = "" or V_PAGE_NO is null THEN
[/quote]
方便的话,把你完整源码贴上来,别截图。另外可以考虑重启一下环境试试
-- if 语句,你没有写 then 关键字
-- 应该这样写
if var = 0 then
v_out := 1000 ;
end if ;