小编sv.*_*sv.的帖子

date_trunc org.postgresql.util.PSQLException:错误:语法错误在"$ 1"或附近

运行此Java/JDBC代码时出现此错误.任何想法如何解决它?

好像它在抱怨date_trunc函数中的参数?

org.postgresql.util.PSQLException:错误:语法错误在"$ 1"或附近 位置:100

        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryEx
ecutorImpl.java:2161)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutor
Impl.java:1890)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.ja
va:255)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Stat
ement.java:560)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(Abstract
Jdbc2Statement.java:417)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc
2Statement.java:302)
Run Code Online (Sandbox Code Playgroud)

Java代码:

static PreparedStatement searchErrorPP = connection.prepareStatement(
"select count(*) from tracking where date_trunc('day', run_date) <= 
     date_trunc('day', timestamp ?)");



public static int queryCount(java.util.Date date) throws SQLException {


  PreparedStatement ps = null;
  try {
      ps = searchErrorPP;
      ps.setDate( 1, new java.sql.Date(date.getTime()));
      ResultSet rs = ps.executeQuery();
Run Code Online (Sandbox Code Playgroud)

生成的查询在pgAdmin中执行正常:

select count(*) from tracking where date_trunc('day', run_date) <= 
           date_trunc('day', timestamp '2014-11-11 -05:00:00')
Run Code Online (Sandbox Code Playgroud)

java postgresql jdbc

9
推荐指数
1
解决办法
1万
查看次数

如何向GNU Parallel提供大量命令?

我正在评估GNU Parallel是否可用于并行搜索存储在系统上的文件.系统中每年的每一天(doy)只能有一个文件(因此每年最多366个文件).假设系统上有3660个文件(大约10年的数据).该系统可以是多CPU多核Linux或多CPU Solaris.

我正在存储搜索命令以在数组中的文件上运行(每个文件一个命令).这就是我现在正在做的事情(使用bash)但是我无法控制并行启动的搜索次数(绝对不想一次启动所有3660次搜索):

#!/usr/bin/env bash
declare -a cmds
declare -i cmd_ctr=0

while [[ <condition> ]]; do
    if [[ -s $cur_archive_path/log.${doy_ctr} ]]; then
      cmds[$cmd_ctr]="<cmd_to_run>"
      let cmd_ctr++
    fi
done

declare -i arr_len=${#cmds[@]}
for (( i=0; i<${arr_len}; i++ ));
do
  # Get the command and run it in background
  eval ${cmds[$i]} &
done
wait
Run Code Online (Sandbox Code Playgroud)

如果我要使用parallel(它将自动计算最大CPU /核心并且仅并行开始这么多搜索),我如何重新cmds使用并行数组并重写上述代码?另一种方法是将所有命令写入文件,然后执行cat cmd_file | parallel

parallel-processing bash gnu-parallel

8
推荐指数
1
解决办法
4866
查看次数

如何拆分包含分隔符和转义分隔符的字符串?

我的字符串分隔符是;.分隔符在字符串中转义为\;.例如,

irb(main):018:0> s = "a;b;;d\\;e"
=> "a;b;;d\\;e"
irb(main):019:0> s.split(';')
=> ["a", "b", "", "d\\", "e"]
Run Code Online (Sandbox Code Playgroud)

有人可以建议我正则表达式,所以分裂的输出将是["a", "b", "", "d\\;e"]?我正在使用Ruby 1.8.7

ruby regex

4
推荐指数
1
解决办法
1661
查看次数

Spring web flow如何在从流退出到外部重定向时添加flash属性

我是 Spring Web Flow (2.3.1) 的新手,这就是我想要做的:

我有一个 JSP 页面,它在页面底部为页面顶部选择的作者列出了一个分页的书籍表。我在顶部的“添加图书”(就在作者下拉列表下方)有一个按钮/链接,单击它会启动一个 Spring 网络流,该流将转到一个页面,用户可以在其中输入图书的详细信息,如步骤 1、2 和 3(在 3 个不同的视图/页面中)。单击“保存”会创建新书,并应将用户带回带有分页书籍列表的视图。

现在,我想在 Save 操作之后添加一个 flash 属性(成功消息)并将用户带回 Books 页面(分页),预先选择“上一个”作者并显示成功消息。

我有以下最终状态的 Web 流 XML:

<end-state id="home" view="externalRedirect:/books/" >
    <output name="author" value="book.author" />
</end-state>
Run Code Online (Sandbox Code Playgroud)

我执行 externalRedirect 的原因是我希望 URL 读起来就像用户在添加新书后刚刚点击了 Books 列表页面一样。如果我不进行重定向而是指向tiles.xml 中的视图名称,我会正确地看到Flash 消息,但URL 仍显示Web 流,例如?execution=e1s1。在这两种情况下,都不会自动选择作者。

如何在重定向后保留 Flash 成功消息和作者选择?

output变量在外部重定向中是否有任何意义?

我还在保存操作中设置以下内容:

    requestContext.getFlowScope().put("authorId", book.getAuthorId());
Run Code Online (Sandbox Code Playgroud)

java jsp tiles spring-mvc spring-webflow-2

3
推荐指数
1
解决办法
2919
查看次数