通过不同的未链接表的不同字段连续循环

时间:2017-04-30 14:21:34

标签: sql postgresql loops select plpgsql

我有几张表在网站上展示不同的实体。它们之间的联系对我的任务无关紧要。 (这也不是我的设计)。 我想通过一些文本字段来做翻译,拼写检查等辛苦工作。很多的文字。

我的问题是:我可以顺序通过所有这些表查询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();
    }
}

1 个答案:

答案 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;