我有几张表在网站上展示不同的实体。它们之间的联系对我的任务无关紧要。 (这也不是我的设计)。 我想通过一些文本字段来做翻译,拼写检查等辛苦工作。很多的文字。
我的问题是:我可以顺序通过所有这些表查询FOR LOOP吗?下面的例子中的array_cat是否是一个充分的决定,还是会吃掉我所有的ram?还有另一种变体 - 制作第二个接收表名作为参数的函数。我很乐意选择一个更简单的决定。
下面的测试示例不适用于array_cat中的语法错误。运营商||也给了我语法错误。
package cookiePac;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CookieJar {
private final List<String> cookies;
private static String rawCookiesString = "";
private static String rawCookiesString_1 = "";
public CookieJar () {
this.cookies = new ArrayList<>();
}
/* read the page, store into rawCookiesString */
public static String getUrlContentString (String theUrl) {
StringBuilder content = new StringBuilder();
try {
URL url = new URL(theUrl);
URLConnection urlConnection = url.openConnection();
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(urlConnection.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
content.append(line + "\n");
}
bufferedReader.close();
} catch (Exception e) {
e.printStackTrace();
}
rawCookiesString = content.toString();
return " ";
}
/* select the content between <a> */
public static String proccessString () {
Pattern p = Pattern.compile("<a>(.*?)</a>");
Matcher m = p.matcher(rawCookiesString);
if (m.find()) {
rawCookiesString_1 = m.group(1);
}
return rawCookiesString_1.toString();
}
}
答案 0 :(得分:2)
使用union
编辑:已移除array_agg
DO
$$
DECLARE
qs TEXT;
BEGIN
FOR qs IN (
SELECT messages x FROM posts union all
SELECT comments FROM boards )
LOOP
RAISE DEBUG 'TEXT is %', qs.x;
END LOOP;
END;
$$ LANGUAGE plpgsql;