我有一个名为data的表,如下所示
g_name g_id v_data
----- ---- ------
Test 123 ABC
Test 123 DEG
Test 123 None
Test 123
Test 123 HIJ
我需要一个select查询,它返回如下值(在oracle数据库中):
Value
------------
Test,123,ABC
Test,123,DEG
...
...
...
``` `LISTAGG()` 函数在中不起作用 `Oracle Forms Builder 12c` .
可能有3列以上。因此,我需要一种动态的方式来将所有列组合在一起。
有人能帮帮我吗?
4条答案
按热度按时间3gtaxfhh1#
您可以指定以下值:
hujrc8aj2#
如果您有一个在数据库中创建函数的选项,那么您也许可以将函数的结果检索为要执行的查询
我举个例子:
1.我创建了一个包含6列的表。
2.我创建一个函数来检索查询(也可以作为匿名plsql块调用)
3.调用函数,p\u pretty为'n'(检索不带sql终止符的查询)
4.用p\u pretty作为'y'调用函数,以使用sql终止符获取它
通过这种方式,您可以将它用于任何希望以这种方式构建的查询。我想你可以从oracle表单中检索结果。
4nkexdtk3#
请执行连接
您可以用plsql编写一个动态查询并实现这一点。
使用将此结果传递给列
into
条款。myss37ts4#
首先,您需要一个主键列(call)
id
我将其假定为表的列列表中的第一列。然后您需要创建一个存储函数,其中包含
LISTAGG()
函数,该函数将用于组合从给定列名的某个字典视图派生的列名,例如user_tab_columns
,user_tab_cols
或者只是col
通过concatenetion和动态查询返回每个id
价值观。因此,通过在数据库中创建函数;
并作为常规查询语句从窗体调用:
演示