如何从存储过程调用存储函数并存储返回值

时间:2016-01-08 21:08:38

标签: stored-procedures plsql oracle-sqldeveloper stored-functions pls-00103

当我在存储过程中执行此操作时:

   create procedure Proc1(
       startdate IN TIMESTAMP,
       ENDDATE IN TIMESTAMP
   )
   declare test_result number --line 55
    test_result:=Stored_function1(startdate,enddate,11,13); --line 56
END;

SQL Developer抛出2个错误:

  

PLS-00103:当遇到以下情况之一时遇到符号“TEST_RESULT”:: =。 (@%;非空范围默认字符符号“。”代替“TEST_RESULT”继续。

     

PLS-00103:遇到以下其中一项时遇到符号“END”:begin function pragma procedure子类型当前游标删除存在

Stored_function1是用户定义的,有4个参数,不属于任何包。我哪里做错了,我该如何纠正?感谢。

1 个答案:

答案 0 :(得分:3)

没有看到更多它很难说,但似乎你的程序中有一些语法错误。不需要DECLARE,第55行末尾应该有一个分号,而第56行应该有BEGIN

这是一个基本的骨架:

Create or replace procedure my_procedure as
  test_result number;
BEGIN
  test_result := Stored_function1(startdate, enddate, 11, 13); 
END;