Creating/replacing packages using Liquibase

I’m using Liquibase to apply development changes to QA environments. I have both table and DML changes working great via Liqibase. I’ve tried to push packages and their bodies using:


The file has a slash at the end, while Liquibase’s error does not show it. Could this be related?


I hope you have answer your pbm, but in case I will give my experience with packages on Oracle database with liquibase ^^

Initialy, I had one sql file that create all my packages for each single user (one sql file per user, but x packages, functions or prec per user).

I had losts of errors, so I decided to split these sql files on package (header and body splitted) and one file per function / proc (best uses from liquibase site).

… but still had some errors on packages !

So finally, I end up with the following (see :

  1. sql file and changelog files in UTF8 (explicitely)

  2. only one endDelimiter per SQL file : “/” in a single line and with new line before and after

  3. oracle enDelimiter added in tag

  4. trip comment = “true” and splitStatement=“false”

as said, it was harsh to find the perfect balance, but now it works fine.

Hope this could help


Thanks a lot for the reply Phillipe!
I still don’t have the solution; that is until your post. My approach (as it was before I’ve started using Liquibase) was to have single sql file for each package, but each file containing both the package and the body, delimited by a slash (/) twice.

I would like to try your method, but unfortunately, it seems like the link you’ve put does not work for me.

  1. What do you mean by "2. What does “trip comment” mean?

I think that what Phillipe meant was rather than “enDelimiter”, it should be “endDelimiter”, and rather than “trip comment” it should be “stripComments”.

So, going back to your original changeset, it should maybe look like this:

Steve Donie Principal Software Engineer Datical, Inc.