PLS-00103遇到符号">"执行存储的prcedure

时间:2017-05-05 05:01:30

标签: oracle vbscript asp-classic

我有下面的存储过程,当我尝试执行它时抛出错误。所有事情都是正确的,但不知道为什么会抛出这个错误。任何人都可以帮我解决这个问题。

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

1 个答案:

答案 0 :(得分:0)

实际上我已经检查了VB脚本调用中传递给该存储过程的值是什么,并且发现str_id的值没有被传递,因此过程执行失败并抛出错误。

  

ORA-06550:第1行,第47栏:PLS-00103:遇到符号“>”当期待以下之一时:。 (),* @%& = - +< /> at in   mod余数不是rem<>或!=或〜=> =< =<>   和/或喜欢像||之间的喜欢4喜欢multiset成员submultiset

我已经为str_id变量分配了一个值,并通过执行代码重新检查它并且它正常工作。

我在这里通过这个错误知道的一件事是,当我们没有传递必需的参数值或者我们将参数传递为null时,即使必须产生这种类型的错误。

感谢所有帮助我解决这个问题的人。