# HG changeset patch
# User Rafa Alonso <ral@openbravo.com>
# Date 1501151885 -7200
#      Thu Jul 27 12:38:05 2017 +0200
# Node ID 80815a4828f6c72f5375acfa3514a7c1f66a5a0f
# Parent  c5f112181318c8a14d8c6accd9549383428ef107
Fixes issue 36226: Verify if an oracle user exists before dropping it

Problem: The first time the install.source is executed, the clean.database task is trying to drop a user that does not exists, throwing an error

diff -r c5f112181318 -r 80815a4828f6 src-db/database/build-create.xml
--- a/src-db/database/build-create.xml	Thu Jul 20 17:54:57 2017 -0400
+++ b/src-db/database/build-create.xml	Thu Jul 27 12:38:05 2017 +0200
@@ -58,7 +58,7 @@ create.database: creates the database fr
 
 
   <target name="clean.database.ORACLE">
-    <sql driver="${bbdd.driver}" url="${bbdd.url}" userid="${bbdd.systemUser}" password="${bbdd.systemPassword}" onerror="continue">
+    <sql driver="${bbdd.driver}" url="${bbdd.url}" userid="${bbdd.systemUser}" password="${bbdd.systemPassword}" delimiter="/">
       <classpath>
         <fileset dir="${base.lib}">
           <include name="**/*.jar">
@@ -66,7 +66,16 @@ create.database: creates the database fr
         </fileset>
       </classpath>
       <transaction>
-        DROP USER ${bbdd.user} CASCADE;
+        -- DROP USER IF EXISTS
+        DECLARE
+          v_count NUMBER;
+        BEGIN
+          SELECT COUNT(*) INTO v_count FROM dba_users WHERE UPPER(username) = UPPER('${bbdd.user}');
+          IF (v_count > 0) THEN
+            EXECUTE IMMEDIATE 'DROP USER ${bbdd.user} CASCADE';
+          END IF;
+        END;
+        /
       </transaction>
     </sql>
   </target>
@@ -83,7 +92,7 @@ create.database: creates the database fr
         DROP DATABASE IF EXISTS ${bbdd.sid};
       </transaction>
     </sql>
-    <sql driver="${bbdd.driver}" url="${bbdd.url}/postgres" userid="${bbdd.systemUser}" password="${bbdd.systemPassword}" onerror="continue" autocommit="true">
+    <sql driver="${bbdd.driver}" url="${bbdd.url}/postgres" userid="${bbdd.systemUser}" password="${bbdd.systemPassword}" autocommit="true">
       <classpath>
         <fileset dir="${base.lib}">
           <include name="**/*.jar">
@@ -91,7 +100,7 @@ create.database: creates the database fr
         </fileset>
       </classpath>
       <transaction>
-        DROP ROLE ${bbdd.user};
+        DROP ROLE IF EXISTS ${bbdd.user};
       </transaction>
     </sql>
   </target>
