我尝试过使用LISTAGG功能,但因为有一个可能性,即输出会很长,甚至可能超过4000个字节多..我一直得到错误字符串连接的结果是太长.我按照AskTom页面提到Tim引用了一个返回CLOB的字符串聚合函数的实现.
CREATE TABLE FINAL_LOG AS
SELECT SESSION_DT, C_IP, CS_USER_AGENT,
concat_all_ot(WEB_LINK, ' ')
WITHIN GROUP(ORDER BY C_IP, CS_USER_AGENT) AS "WEBLINKS"
FROM weblog_views
GROUP BY C_IP, CS_USER_AGENT, SESSION_DT
ORDER BY SESSION_DT
Run Code Online (Sandbox Code Playgroud)
为此,我收到以下错误,
SQL错误:ORA-00923:找不到FROM关键字
谁能告诉我这里哪里出错?
如果您使用的是用户定义的聚合函数,则可能需要省略该WITHIN GROUP子句.由于堆组织表中的数据本质上是无序的,因此ORDER BY在CREATE TABLE语句中指定子句也没有意义.此外,如果您使用该链接中的代码,则聚合函数的名称为concat_all. concat_all_ot是对象类型.所以你想要的东西就像
CREATE TABLE FINAL_LOG AS
SELECT SESSION_DT,
C_IP,
CS_USER_AGENT,
concat_all( concat_expr(WEB_LINK, ' ') ) AS "WEBLINKS"
FROM weblog_views
GROUP BY C_IP,
CS_USER_AGENT,
SESSION_DT
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4668 次 |
| 最近记录: |