Oracle - Source没有可运行的目标

时间:2011-09-07 13:17:56

标签: oracle oracle-sqldeveloper

我是Oracle的新手。

我正在尝试创建一个包但它会抛出一个错误:  Source does not have a runnable target.

我想要做的是创建一个包并在包体中定义一些存储过程。

这是我的包装定义的样子:

CREATE OR REPLACE 
PACKAGE PAY_ZONE_PKG AS
  TYPE CURSOR_TYPE IS REF CURSOR;

  PROCEDURE spGetZones(Zones_Cursor OUT CURSOR_TYPE);

END PAY_ZONE_PKG;

这是我的包体看起来像:

create or replace
PACKAGE BODY PAY_ZONE_PKG IS

PROCEDURE spGetZones(Zones_Cursor OUT CURSOR_TYPE) AS
  BEGIN
    OPEN Zones_Cursor FOR
      SELECT *
      FROM ESP.PAY_ZONE
      ORDER BY NAME ASC;
  EXCEPTION
     WHEN NO_DATA_FOUND
     THEN NULL;
  END spGetZones;

END PAY_ZONE_PKG;

当我尝试创建包体时,它会抛出错误

cannot compile body of 'PAY_ZONE_PKG' without its specification

我在这里缺少什么?

2 个答案:

答案 0 :(得分:1)

cannot compile body of 'PAY_ZONE_PKG' without its specification表示create or replace package PAY_ZONE_PKG不成功,或者在尝试编译正文后删除了包规范。

所以,问题不在于身体,而在于规范。

答案 1 :(得分:0)

我无法复制。

代码:

CREATE OR REPLACE 
PACKAGE PAY_ZONE_PKG AS
  TYPE CURSOR_TYPE IS REF CURSOR;

  PROCEDURE spGetZones(Zones_Cursor OUT CURSOR_TYPE);

END PAY_ZONE_PKG;

编译。

并且身体也成功创造。

您是否尝试过独立创建它们?第一个规范,然后是身体。