我正在使用Oracle SQL开发人员版本3.0.04.我试图使用该功能LISTAGG将数据分组在一起..
CREATE TABLE FINAL_LOG AS
SELECT SESSION_DT, C_IP, CS_USER_AGENT,
listagg(WEB_LINK, ' ')
WITHIN GROUP(ORDER BY C_IP, CS_USER_AGENT) "WEB_LINKS"
FROM webviews
GROUP BY C_IP, CS_USER_AGENT, SESSION_DT
ORDER BY SESSION_DT
Run Code Online (Sandbox Code Playgroud)
但是,我一直收到错误,
SQL Error: ORA-01489: result of string concatenation is too long
Run Code Online (Sandbox Code Playgroud)
我很确定输出可能超过4000,因为这里提到的WEB_LINK是url stem和url查询的连接值.
有没有办法解决它还是有其他选择吗?
有没有办法根据它包含的值删除行?例如,我有一个表,其中包含一个包含URL值的列,例如,
/uk/quitclock/om2.asp
/uk/quitclock/om666.wav
在这里,我需要删除带有以WAV,GIF或JPEG结尾的后缀的行.我怎么做?如果不可能,那么excel中是否有任何公式可以帮助我做到这一点?
我尝试过使用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关键字
谁能告诉我这里哪里出错?