创建包报错了,

tears008 2009-06-02 11:09:41


--创建包规范
CREATE OR REPLACE PACKAGE SHENG
IS
FUNCTION f( v_empno emp.empno%type) RETURN emp.ename%type;

PROCEDURE p(v_deptno emp2.deptno%type);
END SHENG;


--创建包体
CREATE OR REPLACE PACKAGE BODY SHENG AS
CREATE OR REPLACE FUNCTION f(v_empno emp.empno%type)
RETURN emp.ename%type;
AS
v_ename emp.ename%type;
BEGIN
SELECT b.ename INTO v_ename FROM emp a
LEFT JOIN emp b ON a.mgr = b.empno
WHERE a.empno = v_empno;
RETURN v_ename;
END f;
CREATE OR REPLACE PROCEDURE p
(v_deptno emp2.deptno%type)
as
CURSOR c IS
SELECT * FROM emp2 WHERE deptno = v_deptno FOR UPDATE;
BEGIN
FOR v_emp IN c LOOP
UPDATE emp2 SET sal = sal + 100 WHERE CURRENT OF c;
END LOOP;
COMMIT;
END p;
END SHENG;




警告: 创建的包体带有编译错误。

SQL> show errors;
PACKAGE BODY SHENG 出现错误:

LINE/COL ERROR
-------- -----------------------------------------------------------------
2/5 PLS-00103: 出现符号 "CREATE"在需要下列之一时:
begin end
function package pragma procedure subtype type use
<an identifier> <a double-quoted delimited-identifier> form
current cursor

SQL>

麻烦能帮我看看吗.?谢谢哦!


...全文
58 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
vanjayhsu 2009-06-04
  • 打赏
  • 举报
回复
楼上的说的很对。。。
robin_ares 2009-06-03
  • 打赏
  • 举报
回复
CREATE OR REPLACE FUNCTION=>FUNCTION
CREATE OR REPLACE PROCEDURE p =>PROCEDURE p

包体里怎么会有CREATE OR REPLACE语句
bw555 2009-06-03
  • 打赏
  • 举报
回复
把FUNCTION 和PROCEDURE 前面的
CREATE OR REPLACE 去掉

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧