【发布时间】:2018-09-19 00:46:27
【问题描述】:
这是我第一次创建同时具有 IN 和 OUT 参数的存储过程,我很迷茫。我想要做的是让 API 将 3 个参数(ID_TX、FORM_NAME 和 DATA_DATE)传递到我的存储过程中,并让我的存储过程执行一个简单的插入,然后传递一个值(SUBMISSION_ID)。但是,当我尝试编译代码时,我不断收到错误消息。错误如下:
Error(8,1): PLS-00103: Encountered the symbol "INSERT" when expecting one of the following: begin function pragma procedure subtype type <an identifier> <a double-quoted delimited-identifier> current cursor delete exists prior The symbol "begin" was substituted for "INSERT" to continue.
Error(10,1): PLS-00103: Encountered the symbol "RETURNING" when expecting one of the following: . ( ) , * % & = - + < / > at in is mod remainder not rem => <an exponent (**)> <> or != or ~= >= <= <> and or like like2 like4 likec between || multiset member submultiset
Error(11,1): PLS-00103: Encountered the symbol "END"
我是否缺少一些语法基础/知识?提前致谢!
create or replace procedure API_SUBMISSION(rID_TX IN VARCHAR, rFORM_NAME IN VARCHAR, rDATA_DATE IN VARCHAR, v_submission_id OUT NUMBER)
IS BEGIN
DECLARE
v_submission_id number;
insert into submission (SUBMISSION_ID, RESPONDENT_ID, SUBMISSION_DT, SUBMISSION_TYPE_ID, SUBMISSION_NAME_TX, SUBMISSION_SEQ_NB, CREATE_DT, CREATE_USER_ID, MODIFY_DT, MODIFY_USER_ID, EFFECTIVE_DT, INACTIVE_DT)
VALUES (null, get__respondent_id(rID_TX, rFORM_NAME, trunc(sysdate), sysdate, rDATA_DATE || 'TEST ' || rFORM_NAME, 1, sysdate, 1, null, null, null, null)
returning submission_id into v_submission_id;
END API_SUBMISSION;
【问题讨论】:
-
您遇到的错误是什么?
-
抱歉,我意识到我遗漏了它们,只是按照你的要求添加了它们 :)
-
我很笨。当我在网上查看一些示例时,它已经“返回”,对此感到抱歉
-
你是正确的,返回是正确的。这是在这个 SO 上重复的:stackoverflow.com/questions/5558979/…
-
啊,也许我需要学习如何更好地搜索。我试过找但没找到:(你是怎么这么快/这么容易地搜索到的(尤其是7年前的问题??)?