Quantcast
Channel: Liquibase Forums
Viewing all articles
Browse latest Browse all 2993

How to disable useProcedureSchema?

$
0
0
I noticed a problem since upgrading to Liquibase 3.5.1 (from 3.4.2) and I traced the problem to CORE-2626.

I need to disable liquibase.useProcedureSchema but I am unclear on where to specify this.  I have tried the liquibase.properties file, and also tried specifying a <databaseChangeLog> <property> like:

  1. <?xml version="1.0" encoding="utf-8" standalone="no"?>
  2. <databaseChangeLog
  3.     xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.     xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">

  6.   <!-- Need to disable this feature:  https://liquibase.jira.com/browse/CORE-2626 -->
  7.   <property name="liquibase.useProcedureSchema" value="false" dbms="oracle"/>

Alas, it does not seem to be having an impact.

As a side note, this feature does not work for Oracle packages -- the package may be qualified, but the inside procedures should not be.  When you have code like:

  1.   <changeSet author="me" id="foo_package" runOnChange="true">
  2.     <createProcedure>
  3. <![CDATA[
  4. CREATE OR REPLACE PACKAGE "FOO" IS

  5. PROCEDURE bar
  6. (p_one       IN VARCHAR2);

  7. PROCEDURE baz
  8. (p_date IN DATE);

It is getting transformed into:

  1. CREATE OR REPLACE PACKAGE "FOO" IS

  2. PROCEDURE SCHEMA.bar
  3. (p_one       IN VARCHAR2);

  4. PROCEDURE baz
  5. (p_date IN DATE);

which is invalid.  The schema may be applied to the package, but not the owning procedures.  (Interesting how it only impacts the first procedure too.)

I highly recommend revisiting this "feature" with respect to Oracle PL/SQL packages.


Viewing all articles
Browse latest Browse all 2993

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>