diff --git a/modules/database-commons/src/main/java/org/testcontainers/ext/ScriptSplitter.java b/modules/database-commons/src/main/java/org/testcontainers/ext/ScriptSplitter.java index 888bf4df420..ba05b71e7bd 100644 --- a/modules/database-commons/src/main/java/org/testcontainers/ext/ScriptSplitter.java +++ b/modules/database-commons/src/main/java/org/testcontainers/ext/ScriptSplitter.java @@ -101,8 +101,8 @@ private boolean endOfBlock(boolean recursive) { if (";".equals(scanner.getCurrentMatch())) { if (recursive) { sb.append(temporary); - appendMatch(); } + appendMatch(); return true; } sb.append(temporary); diff --git a/modules/database-commons/src/test/java/org/testcontainers/ext/ScriptSplittingTest.java b/modules/database-commons/src/test/java/org/testcontainers/ext/ScriptSplittingTest.java index 7b2068df672..baaf3bbd08c 100644 --- a/modules/database-commons/src/test/java/org/testcontainers/ext/ScriptSplittingTest.java +++ b/modules/database-commons/src/test/java/org/testcontainers/ext/ScriptSplittingTest.java @@ -320,12 +320,19 @@ public void testIfLoopBlocksSpecificSeparator() { " IF something_wrong THEN LEAVE rec_loop; END IF;\n" + " do_something_else;\n" + " END LOOP;\n" + - "END", + "END;", "CALL something();" ); splitAndCompare(script, expected, "@"); } + @Test + public void oracleStyleBlocks() { + String script = "BEGIN END; /\n" + "BEGIN END;"; + List expected = Arrays.asList("BEGIN END;", "BEGIN END;"); + splitAndCompare(script, expected, "/"); + } + @Test public void testMultiProcedureMySQLScript() { String script =