0

我制作了一个应用程序,其中我将 sql 查询放入 java 方法中,如下所示..

private static String getSaleTransactionsQuery(final String currentTradingDate){

        final String query =
            " SELECT '990' line_code, " +
            " sum(toti_wag.TTIW_CUST_CNT) amount " +
            " FROM total_till_wag toti_wag " +
            " where toti_wag.TOTI_TRADING_DATE = '" + currentTradingDate + "' ";

        return query;
    }

现在,当我想过滤掉 sql 查询时,我必须将此查询复制到 sql 文件中,并且必须手动删除引号(“”)和加号(+),以使它们成为纯 sql,然后必须执行它们以查看查询输出,是否有任何其他工具可以格式化所有这些意味着删除引号和加号,请告知

4

2 回答 2

1

您可以制作一个简单的脚本来帮助您。

http://jsfiddle.net/GFhFg/7/

我发现在完成这项工作的 JavaScript 中将一些东西放在一起很容易。

function cleanIt(txt) {
    var result = "";
    // remove semi-colon at the end
    txt = txt.replace(/\;$/m, '');
    var lines = txt.split('\n');
    for(var i=0; i<lines.length; i++) {
        var line = lines[i];
        // trim whitespace
        line = line.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
        // remove + from beginning or end of line
        line = line.replace(/^\+\s*/, '').replace(/\s*\+$/, '');
        // remove quotes
        line = line.replace(/"/g, '');
        // remove the +'s around parameters/variables
        line = line.replace(/('?\s*\+\s*)([^\s\+']+)(\s*\+\s*'?)/g, '$2')
        result += line + '\n';
    }
    return result;
}

显然它还没有经过详尽的测试,但它应该给你一个开始的基础。

于 2012-11-07T18:13:32.937 回答
0

没有自动化的方法。 您可以编写一些通用的自定义函数来为您完成。

一种好的主动方法是将所需的详细信息记录在日志文件中。如果您这样做并记录您的查询,那么您将在日志文件中看到不带引号和加号的查询。

于 2012-11-07T18:14:29.327 回答