Re: packages - one file or separate

  • From: William Robertson <william@xxxxxxxxxxxxxxxxxxxx>
  • To: "oracle-l@xxxxxxxxxxxxx" <oracle-l@xxxxxxxxxxxxx>
  • Date: Fri, 20 Oct 2017 18:14:30 +0100

I would worry that some editors might not cope with that. (PL/SQL Developer has 
an “Ignore unrecognised PL/SQL” preference setting so should be OK - I suppose 
others may have something similar.) Also there are sites that need to minimise 
downtime, and a package header recompilation could be the difference between a 
hot deployment and a cold one.

William

On 19 Oct 2017, at 18:47, Powell, Mark <mark.powell2@xxxxxxx> wrote:

We store each Oracle object type in its own file, owner_objectname, except for 
all objects that cease to exist when you drop a table are stored with the 
create table source including DDL for the table, comments, constraints 
including PK, UK, and FK, indexes, grants, trigger, and policies plus all 
synonyms defined on the table are also stored in the table source file.  We 
store the package specification and body in the same file along with grants and 
synonyms.



Mark Powell
Database Administration
(313) 592-5148


From: oracle-l-bounce@xxxxxxxxxxxxx <oracle-l-bounce@xxxxxxxxxxxxx> on behalf 
of Jeff Chirco <backseatdba@xxxxxxxxx>
Sent: Thursday, October 19, 2017 12:44:39 PM
To: Jacek Gębal
Cc: William Robertson; oracle-l@xxxxxxxxxxxxx; oracle@xxxxxxxxxxxxxxx
Subject: Re: packages - one file or separate
 
I have a follow up questions to source control database objects.  Do you put 
your objects into separate folders.  Like Functions to a Functions folder, 
Package Headers to a Packages folder, Package body to PackageBodies folder, 
etc....  Or just everything in one folders all together?

Thanks,
Jeff

On Wed, Sep 13, 2017 at 2:01 PM, Jacek Gębal <jgebal@xxxxxxxxx> wrote:
Hi Jeff, 
If you want to see how we use GIT for version control of source code and 
tests here are few examples:
https://github.com/utPLSQL/utPLSQL
https://github.com/utPLSQL/utPLSQL-demo-project

Regards
Jacek

On 13 September 2017 at 21:53, Jeff Chirco <backseatdba@xxxxxxxxx> wrote:
Thanks. Yeah the tabbed editor in PL/SQL Dev is really nice but I know Toad 
and SQL Developer separate them.  I can get used to it but my developers 
might grumble though.

On Wed, Sep 13, 2017 at 12:27 PM, William Robertson 
<william@xxxxxxxxxxxxxxxxxxxx> wrote:
Separate files for me too. You lose the tabbed editor window in PL/SQL 
Developer but I don't really notice it.

William

On 13 Sep 2017, at 16:31, Michael Cunningham <napacunningham@xxxxxxxxx> 
wrote:

Similar to what Norman said I use separate files and it is primarily due to 
the way the TOAD development environment works. TOAD separates them, so 
that's how I do it. Norman had a good point about being able to modify the 
body without invalidating the package.

Michael



Sent from my iPhone
On Wed, Sep 13, 2017 at 8:00 AM, Jeff Chirco <backseatdba@xxxxxxxxx> wrote:
We put all our database code in files and use a source control. We’ve 
always stored our package header and body in a single file. We use PL/SQL 
Developer and it handles that packages in a single file and opens the 
header and body in nice separate tabs. We getting ready to move out source 
control to Git and wondering if now is the time to split up our package 
files into separate files.  The benefit I guess is that we are not 
compiling the header when nothing has changed. Currently when they made an 
update to the package body the developers will send us the file containing 
the header and so both get recompiled in production. Which unless I am 
mistaken forces referencing objects to recompile.  Only checking out the 
body would prevent that but then we have more files to check out when we 
need the header.

So I am curious what is better or more common?  I’ve been also looking 
around at tools that manage the source control like Datical and Red Gate. 
Although Datical is ridiculously expensive.  Anyways these tools seem to 
prefer packages in separate files. 


What does everyone here do?

Thanks,
Jeff




Other related posts: