v_seq number:=1;
你的缺省值语法也有问题
你的缺省值语法也有问题
解决方案 »
- 一个查询语句,请问哪里有错?
- 函数里面的SQL语句,怎样使用传入的参数作为条件表达式? 有例子不抽象,请进
- oracle 10g中的包含CLOB字段如何导入oracle8i?
- 关于复制的问题(100分求救)
- pl/sql develop 存储过程 显示返回集
- 存储过程中如何返回多条记录
- 请问Oracle9i的sys用户如何设置成不用sysdba,sysoper登录的?
- 安装ORACLE的磁盘是否不能做文件碎片整理???
- 溺水三千,帮帮我!
- 求1条SQL语句,请大神帮帮忙
- Oracle form6i神奇的事情
- SELECT replace(lph02,'•','-') FROM lph_file
FUNCTION FUNTest2 RETURN NUMBER IS V_SEQ NUMBER DEFAULT 1; BEGIN RETURN V_SEQ; END FUNTest2;
procedure PROC_Test IS CURSOR CUR1 IS SELECT * FROM tab WHERE id=63; BEGIN FOR CURR IN CUR1 LOOP FUNTest2(); END LOOP ; END PROC_Test;
end;
1.必须要定义包头才行
2.在包里面的每个函数或者存储过程, end 需要end当前的函数或者存储过程。 (忘了这是不是必须的了。 但是 出于代码可读性,也建议这么做)
3. table 好像是关键字吧?
FUNTest2(); // 报错
-- 这句, function 是返回值的,你直接调整用一个函数是不可以的,应该写成如下形式select FUNTest2() into myvar from dual -- 或myvar := FUNTest2();
FUNCTION FUNTest2 RETURN NUMBER;
procedure PROC_Test;
end;
create or replace package body Alan_Test_PKG is
FUNCTION FUNTest2 RETURN NUMBER IS V_SEQ NUMBER DEFAULT 1; BEGIN RETURN V_SEQ; END FUNTest2;
procedure PROC_Test IS CURSOR CUR1 IS SELECT * FROM tab WHERE id=63; BEGIN FOR CURR IN CUR1 LOOP FUNTest2(); END LOOP ; END PROC_Test;
end;1.必须要定义包头才行,定义
2.在包里面的每个函数或者存储过程,end 需要end当前的函数或者存储过程。
1.没有定义包头
2.select *from table where id =63;中table是关键字
3.调用函数 时必须有变量来接收返回值,
例如:declare
vars number;
begin
vars:=FUNTest2;
--或
select FUNTest2 into vars from dual;
end;
如果带有出参的话,还要在函数后面加括号放参数。