我有下面的存储过程,当我尝试执行它时抛出错误。所有事情都是正确的,但不知道为什么会抛出这个错误。任何人都可以帮我解决这个问题。
create or replace PROCEDURE FR_Notes_Mng (
P_STR_ID IN VARCHAR2,
p_Ref_no in VARCHAR2,
P_UserId in VARCHAR2,
P_Note IN VARCHAR2,
P_datestamp IN VARCHAR2,
p_Request_ID in varchar2,
p_WrittenDate IN VARCHAR2
) AS
numSqlCode Number := 0;
RecCounter Number :=0;
strTable varchar2(30) := 'FR_Notes';
strAction varchar2(30) := 'Insert';
vSQLERM VARCHAR2(200) :=SUBSTR(SQLERRM, 1, 85);
BEGIN
Select Count(*) into RecCounter From FR_Notes where str_id=P_str_ID and ref_no=P_Ref_No and user_id=P_UserId and notes=P_note and datestamp=P_Datestamp and to_date(writtendate,'YYYYMMDDHH24MISS')=to_Date(p_WrittenDate,'YYYYMMDDHH24MISS') and request_id=p_request_id;
If RecCounter=0 then
insert into Fr_Notes Values
(p_str_ID,p_ref_no,p_UserId,P_note,p_Datestamp,to_date(p_WrittenDate,'YYYYMMDDHH24MISS'),p_Request_ID,'FR',sysdate);
commit;
end if;
EXCEPTION
WHEN OTHERS THEN
numSqlCode := SQLCODE;
INSERT INTO FR_UNEXPECTED_ERRORS (TABLE_NAME, KEY, ACTION, ERR_CODE)
VALUES (strTable, vSQLERM, strAction, numSqlCode);
END;
错误抛出:
ORA-06550:第1行,第47栏:PLS-00103:遇到符号">"当期待以下之一时:。 (),* @%& = - +< /> at in mod余数不是rem<>或!=或〜=> =< =<> 和/或喜欢像||之间的喜欢4喜欢multiset成员submultiset
当我在数据库级别执行它时,它正确执行但在vbscript代码中失败。下面是我用来执行的vb脚本代码,它抛出了这个错误
function InsertNotes(str_id,ref_no,userId,Note,strdatestamp,writtenDates)
Dim strcon2: set strcon2=server.CreateObject("ADODB.Connection")
Dim sql2
Dim strcmd2
strcon2.open "Provider=MSDAORA;Data Source="&Application("DBDsn")&";User Id="&Application("DBUserName")&"; Password="&Application("DBPassword")&";"
sql2 = "rep2.FR_Notes_Mng"
Set strcmd2 = Server.CreateObject("ADODB.Command")
Set strcmd2.ActiveConnection = strCOn2
strcmd2.CommandText = sql2
strcmd2.CommandType = 4
strcmd2.Parameters.Append strcmd2.CreateParameter("p_str_id", 200,1,50,str_id)
strcmd2.Parameters.Append strcmd2.CreateParameter("p_ref_no", 200,1,50,ref_no)
strcmd2.Parameters.Append strcmd2.CreateParameter("p_UserId", 200,1,50,userId)
strcmd2.Parameters.Append strcmd2.CreateParameter("p_note", 200,1,200,Note)
strcmd2.Parameters.Append strcmd2.CreateParameter("p_Datestamp", 200,1,50,strdatestamp)
strcmd2.Parameters.Append strcmd2.CreateParameter("p_Request_id", 200,1,50,"012")
strcmd2.Parameters.Append strcmd2.CreateParameter("p_WrittenDate", 200,1,50,writtenDates)
strcmd2.Execute
end function
答案 0 :(得分:0)
实际上我已经检查了VB脚本调用中传递给该存储过程的值是什么,并且发现str_id的值没有被传递,因此过程执行失败并抛出错误。
ORA-06550:第1行,第47栏:PLS-00103:遇到符号“>”当期待以下之一时:。 (),* @%& = - +< /> at in mod余数不是rem<>或!=或〜=> =< =<> 和/或喜欢像||之间的喜欢4喜欢multiset成员submultiset
我已经为str_id变量分配了一个值,并通过执行代码重新检查它并且它正常工作。
我在这里通过这个错误知道的一件事是,当我们没有传递必需的参数值或者我们将参数传递为null时,即使必须产生这种类型的错误。
感谢所有帮助我解决这个问题的人。