2016-07-27 5 views
0

Я довольно новичок в программировании PLSQL, поэтому я все еще сталкиваюсь с такими общими проблемами, как этот.Добавить существующую функцию в пакет PLSQL

Я разработал некоторые автономные функции (функции Oracle PLSQL), и я хочу сгруппировать их в одном пакете.

Так что я создал новый пакет, но у меня есть несколько вопросов о том, что делать дальше:

  1. есть ли возможный способ напрямую связать функции в мой пакет? Я так не думаю, но возможно ...
  2. Могу ли я назвать функции внутри пакета так же, как внешние функции, или я вызову проблему с областью?

Благодарим за помощь. Marcello

ответ

3

Вы не можете связать автономную функцию с пакетом, вам просто нужно скопировать код функции в тело пакета и спецификацию функции в спецификацию пакета.

Например, если у вас есть:

create or replace function my_function 
    return number 
is 
begin 
    return 42; 
end; 

... то вы можете скопировать его в пакет, как это:

create or replace package my_package is 
    function my_function 
     return number; 
end; 

и

create or replace package body my_package is 
    function my_function 
     return number 
    is 
    begin 
     return 42; 
    end; 
end; 

Вы можете дать им одно и то же имя, что и автономные функции без каких-либо проблем. Если вы вызываете одну из этих функций из пакета без обязательств (только my_function), вы будете называть версию пакета; если вы действительно хотите вызвать автономную функцию из пакета, вам нужно добавить префикс схемы: my_schmea.my_function. Но, надеюсь, вы бы этого не хотели!

Смежные вопросы