2014-01-06 2 views
0

При чтении Руководство Oracle Приложения разработчика, я наткнулся на эти линии-Oracle формирует 10г - Частные пакеты

Если на стороне клиента (Oracle Forms) пакет превышает предел 10К, вы можете уменьшить размер пакета, размещение частных переменных и процедур в одном или нескольких «частных пакетах».

Может кто-нибудь объяснить, как создавать частные пакеты?
Любые полезные ссылки также приветствуются.

ответ

2

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

Процедура и функция внутри упаковки могут быть частные, не объявляя их в спецификации пакета

Еще один момент, следует отметить, что частные процедуры или функции могут быть вызваны только внутри тела пакета, и мы должны объявить их перед они называются

В вашем случае для решения проблемы 10k Limit вы можете определить пакет оболочки и вызвать пакет, в котором вы можете определить общедоступную процедуру, которую вы определяете в спецификациях и корпусе пакета, и передать все аргументы и использовать публичная процедура только для частного применения

вы можете передать ответ в ниже, например

Execute private procedure globally in oracle package

Упаковочный пакет

CREATE OR REPLACE PACKAGE BODY testPackage_Wrapper AS 
PROCEDURE publicProc IS 
BEGIN 
testPackage.publicProc(); 
END; 
+0

В этой документации они, учитывая, что даже тело пакета не разрешается проводить более 10K. поэтому отправляйтесь на частные пакеты. Я знаю, как создавать частные процедуры, чтобы уменьшить размер процедуры. Но как ограничить размер пакета (используя частные пакеты) - это то, что я хочу знать. Спасибо за ваши мысли. – cdummy

+1

Это хлопотно, но вы можете просто попробовать использовать пакет обертки для вызова публичных процедур в пакете, который вызывает частные процедуры или функции. – psaraj12

+0

Отличный человек. Спасибо за ответ. – cdummy