运行此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) 我正在评估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
我的字符串分隔符是;.分隔符在字符串中转义为\;.例如,
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
我是 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 ×2
bash ×1
gnu-parallel ×1
jdbc ×1
jsp ×1
postgresql ×1
regex ×1
ruby ×1
spring-mvc ×1
tiles ×1