В Oracle PL / SQL есть ли способ импортировать пакеты и их членов? - PullRequest
6 голосов
/ 13 апреля 2011

Учитывая пакет:

create or replace package foo as
  f1 number := 1;
end;
/

Вместо:

declare
begin
  dbms_output.put_line('f1 = ' || foo.f1);
end;
/

Я хотел бы написать:

declare
begin
  -- pseudocode not a valid PL/SQL
  import dbms_output.*;
  import foo.*;
  put_line('f1 = ' || f1);
end;
/

Но как это сделать?

РЕДАКТИРОВАТЬ Джефф: (пытаясь оставаться в духе того, как все делается в PL / SQL)

DECLARE
  PRAGMA IMPORT dbms_output AS d;
  PRAGMA IMPORT foo AS f;
BEGIN
  d.put_line('f1 = ' || f.f1);
END;
/

Ответы [ 2 ]

9 голосов
/ 13 апреля 2011

Проще говоря, вы не можете. Извините, но другого ответа нет!

1 голос
/ 14 апреля 2011

Конечно, вы можете!

:) вроде ...

declare
  procedure put_line (p in varchar2) is begin dbms_output.put_line(p); end;
  function f1 return number is begin return foo.f1; end;
begin
   put_line('f1 = ' || f1);
end;
/
...