动态列名称和值

时间:2017-12-24 10:00:58

标签: database postgresql plpgsql

以下是我表格中的测试数据。

col_names                             col_1       col_2         col_3

{col_names, col_1, col_2, col_3}      ABCD        XYZ           PQR
{col_names, col_1, col_2, col_3}      TYTY        UIO           ERT

此处,第一列是数组中列的名称。此处列数将根据第一列而变化。

我想通过游标获取数据并形成字符串。以下是我的逻辑。这里info_sql获取上面的表数据。

OPEN info_sql_curs FOR EXECUTE info_sql;
LOOP
    FETCH NEXT FROM info_sql_curs INTO info_sql_rec;
    EXIT WHEN NOT FOUND;

    -- First time - we need to fetch the column details..
    IF first_time THEN
        column_names := info_sql_rec.col_names;
        first_time := false;
    END IF;

    FOR i IN 2 .. array_upper(column_names,1)
    LOOP
        info_str := info_str || column_names[i] || ' = ' || 'info_sql_rec.' || column_names[i] || E'\n';
    END LOOP;

END LOOP;
CLOSE info_sql_curs;

我想形成" info_sql_rec.col_1"和其他列名。我们无法对其进行硬编码,因为列名可能会发生变化。我想获取" info_sql_rec.col_1"的详细信息,如何在形成字符串后获取值?

以上方法是否正确?如果这不正确,请让我知道吗?

先谢谢。

0 个答案:

没有答案