def METHOD_NAME(
    self,
    *,
    user: str = ORACLE_USER,
    password: str = ORACLE_PASS,
    host: str = ORACLE_HOST,
    port: int = ORACLE_PORT,
    **_: Any,
) -> None:
    """Load test data into a Oracle backend instance.
    Parameters
    ----------
    data_dir
        Location of testdata
    script_dir
        Location of scripts defining schemas
    """
    database = "IBIS_TESTING"
    # suppress the exception if the user/pass/db combo already exists
    with contextlib.suppress(subprocess.CalledProcessError):
        subprocess.check_call(
            [
                "docker",
                "compose",
                "exec",
                "oracle",
                "./createAppUser",
                user,
                password,
                database,
            ]
        )
    init_oracle_database(
        url=sa.engine.make_url(
            f"oracle://{user}:{password}@{host}:{port:d}/{database}",
        ),
        database=database,
        schema=self.ddl_script,
        connect_args=dict(service_name=database),
    )
    # then call sqlldr to ingest
    with concurrent.futures.ThreadPoolExecutor() as executor:
        for fut in concurrent.futures.as_completed(
            executor.submit(
                subprocess.check_call,
                [
                    "docker",
                    "compose",
                    "exec",
                    "oracle",
                    "sqlldr",
                    f"{user}/{password}@{host}:{port:d}/{database}",
                    f"control=data/{ctl_file.name}",
                ],
                stdout=subprocess.DEVNULL,
            )
            for ctl_file in self.script_dir.joinpath("oracle").glob("*.ctl")
        ):
            fut.result()