• 主页
  • Oracle 基础和管理
  • Oracle 高级技术
  • Oracle 认证与考试
javagang 2014年02月05日
请问自定义的Oracle函数,怎样调用才正确?
CREATE OR REPLACE FUNCTION get_salaries(
emp_no IN NUMBER,
emp_count OUT NUMBER
)
RETURN NUMBER
AS
v_sum NUMBER;
BEGIN
SELECT SUM(sal), count(1) INTO v_sum, emp_count
FROM tmp_emp;
RETURN v_sum;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.PUT_LINE('no records.');
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE('other errors.');
END get_salaries;


-- 调用函数get_salaries例程
DECLARE
v_num NUMBER;
v_sum NUMBER;
BEGIN
v_sum := get_salaries(7788, v_num);
DBMS_OUTPUT.PUT_LINE(v_num || ' employees salaries are ' || v_sum);
END;


我自己写了个例程,放到PL/SQL Developer中运行,但是毫无结果;可我在左侧的function列表中已经能够看到我自定义的get_salaries函数,但是查看详细信息的时候发现有如下错误提示,请问错误在哪里?谢谢!

Compilation errors for FUNCTION SYS.GET_SALARIES

Error: PLS-00103: 出现符号 "DECLARE"
Line: 23
Text: DECLARE

Error: PLS-00103: 出现符号 "end-of-file"在需要下列之一时:
(
begin case declare end exception exit for goto if loop mod
null pragma raise return select update while with
<an identifier> <a double-quoted delimited-identifier>
<a bind variable> << continue close current delete fetch lock
insert open rollback savepoint set sql execute commit forall
merge pipe purge
Line: 29
Text: END;

...全文
126 点赞 收藏 2
写回复
2 条回复

还没有回复,快来抢沙发~

发动态
发帖子
Oracle
创建于2007-09-28

6391

社区成员

5.4w+

社区内容

Oracle开发相关技术讨论
社区公告
暂无公告