Oracle - источник не имеет работоспособной цели - PullRequest
0 голосов
/ 07 сентября 2011

Я совершенно новичок в 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 ]

1 голос
/ 07 сентября 2011

cannot compile body of 'PAY_ZONE_PKG' without its specification указывает, что create or replace package PAY_ZONE_PKG был либо неудачным, либо что спецификация пакета была удалена после попытки скомпилировать тело.

Итак, проблема не в теле, а в спецификации.

0 голосов
/ 07 сентября 2011

Я не могу воспроизвести это.

Код:

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;

компилируется.

А также тело успешно создано.

Вы пытались создать их самостоятельно.Сначала спецификация, а потом и тело.

...