1

当我做这在我的存储过程:如何从存储过程调用存储功能和存储返回值

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开发人员抛出2个错误:

PLS-00103:遇到下列其中一项时遇到符号“TEST_RESULT”::=。 (@%;非零范围默认字符符号“。”代替“TEST_RESULT”继续

PLS-00103:遇到以下符号之一时出现符号“END”:begin function pragma procedure subtype type当前光标删除存在之前

Stored_function1是用户定义的,4个参数,并且不属于任何包,在哪里我做错了,我如何改正呢?谢谢。

+0

@techspider我认为这是SQL Server的 –

回答

3

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

这是一个基本框架:

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

在OP评论错别字,而且有'begin'和'结束;' –

+0

所以'test_result'就像一个你的答案中的局部变量? –

+0

@Dylan Chen是的 –