Windsoft / Querydog / Oracle → MariaDB PL/SQL Verification

Oracle → MariaDB PL/SQL Conversion: Verification Results and Remaining Scope

Windsoft Internal Test · October 31, 2026 · Based on Querydog 1.0.45 Source

40 PL/SQL, TYPE, and job objects collected from one Oracle test schema were converted to a separate MariaDB verification DB and compiled. 40/40 DDL compilation success does not mean a 100% overall migration success rate. Actual routine call results and table data migration must be checked separately.

Test Subject and Method

Application history of the previous 10 tests

The first five routine tests for business operations had 0/5 compilation in the initial automatic conversion. After manual conversion for each case, they compiled 5/5 in a separate verification DB. The next five tested triggers, MERGE, JSON, LISTAGG, and dynamic SQL, converting five Oracle logical objects to six MariaDB physical objects and executing them.

These 10 test objects were later reapplied to the actual test target DB, confirming 11/11 DDL success. Differences in Oracle and MariaDB results for one aggregation routine were found to be due to inconsistencies in the target’s basic business data; after synchronization, the results matched for the specified inputs. This history includes manual conversion and target data correctionso it is not calculated as Querydog automatic conversion performance or total business migration rate.

The 10 recently added test routines were compiled and called in an isolated verification DB, not applied in bulk to the actual test target DB.

DDL compilation results by version

TimingIsolated DDL of the same 40 objectsInterpretation
1.0.41 initial measurement32/40 (80%)Of the new 10 routines, 3/10 compiled, and only 1/10 matched actual test input results.
1.0.42 limited conversion added37/40 (92.5%)The new routine matched the compilation result for 8/10 cases and the specified input result for 7/10 cases. PIPELINED was compared after changing the invocation method.
1.0.43~1.0.45 re-verification40/40 (100% DDL)We verified that the new routine produced correct results for all 10/10 specified inputs and confirmed the TYPE replacement procedure. In version 1.0.45, the date function results matched for all 259/259 inputs.

The denominator consists of the same 40 collected objects during the test period. The figures DDL compilation rateand do not represent the equivalence of results for the 40 business functions or the support rate for all Oracle PL/SQL syntax.

Execution verification and conversion conditions

ItemsContents verified during the testRemaining conditions
10 new PL/SQL typesFor the specified inputs, the execution results for all 10/10 targets matched the Oracle reference values.Conversion is narrowed by supported forms. Dynamic DBMS_SQL, complex XMLTABLE/XPath, etc., are not included in these results.
4 existing date functionsCompared with 43 types of inputs including empty strings, spaces, leap years, months/days with 0, multiple delimiters, and various date formats, with results matching for all 259/259 cases.Additional verification is needed for other date formats, regional settings, and inputs.
4 Oracle TYPEsConverted 2 object types and 2 collection types into JSON creation functions and query procedures, confirming round-trip for 48 fields and 27 fields.The original TYPE differs in the call contract. External call sites must be modified, and not all actual data has been verified.
FORALLWe changed a single INSERT with consecutive indexes into a row-by-row loop and observed a result of 3 rows. In the isolated DB, approximately 0.013 seconds for 1,000 rows and approximately 0.058 seconds for 5,000 rows were observed.This is not a performance comparison under the same conditions as the original Oracle, and bulk DML performance is not preserved.

Remaining verification before actual business migration.

  1. TYPE·PIPELINED functions and JSON functions.CALL You need to find and modify the external SQL/program call points in places that were changed to procedures and execute them.
  2. You must check the results of all existing business objects, encrypted text compatibility, autonomous transaction logs, and business rules of expired procedures that are INVALID in the source.
  3. Table data migration is a separate task. You need to verify the number of rows, values, LOBs, foreign key references, errors, and retry results on the actual target.
  4. Large-scale FORALL performance and PL/SQL statements outside the supported range require tests at production scale.

Therefore, this record does not assert a 90% or 100% overall business migration conversion rate. The test results’ summary data for public release (JSON)can be downloaded.

Grounds for DB-to-DB migration function. · Oracle migration user manual. · Introduction to Querydog products