SQL string is not Query

Estou tentando executar um PL SQL em um dataset, mas sem sucesso. Erro retornado: SQL string is not Query.

Código do dataset:


    var newDataset = DatasetBuilder.newDataset(); 
    var dataSource = "/jdbc/FluigDB"; 
    var ic = new javax.naming.InitialContext(); 
    var ds = ic.lookup(dataSource); 
    var created = false;

    try {
        var conn = ds.getConnection();
        var stmt = conn.createStatement();
        var rs = stmt.executeQuery(query);
    }
    catch (e) {
        log.error("ERRO==============> " + e.message);
    }
    finally {
        if (stmt != null) {
            stmt.close();
        }
        if (conn != null) {
            conn.close();
        }
    }

    return newDataset;

Sintaxe PL SQL que estou executando:


var query =
' declare ' +
' variavel int; '+
' begin function funcao(param1 int) return varchar2) is begin <código> end; '+
' BEGIN '+
' DBMS_OUTPUT.PUT_LINE('OUT: ' || funcao(1)); '+
' END; '

Desde já, agradeço.

Primeiramente, preciso que dizer que as execuções de scripts dessa forma no fluig não são recomendadas. Principalmente, o uso do datasource padrão, devido problemas que podem ser gerados por rollbacks gerenciados pela aplicação nesse contexto.

Dito isso, seu problema parece ser o uso de query para rodar um processamento.

Experimente usar var rs = stmt.executeUpdate(query); ou então var rs = stmt.execute(query);

Essa é mais uma dúvida em relação a JAVA do que fluig, então, se você conseguisse rodar os comandos da API Jdbc num projeto java isolado poderia certificar-se que eles deveriam funcionar também dentro do fluig, com os devidos ajustes (Java x Javascript...)

Perfeito. Funcionou. Muito obrigado!

Show, que bom. Não esquece de marcar como solucionado.

Ok, já foi marcado.