我可以通过给出 regexp_substr 的查询来创建选择组吗?
我有一个名为 data_column 的列,它有一些值,例如“123123,12,123123”。我想计算按第二个分组的行数。
但是当我运行时
select count(*) from table group by regexp_substr(data_column,'[^,]+',1,2);
它给出了
ORA-00932: incostintent datatypes: Expected: - got: CLOB 00932. 00000 - “数据类型不一致:预期 %s 得到 %s”
我不能按正则表达式子字符串分组吗?
I have a column named data_column, it has some value like "123123,12,123123". I want to count rows grouped by the second one.
But when i run
select count(*) from table group by regexp_substr(data_column,'[^,]+',1,2);
It gives
ORA-00932: incostintent datatypes: expected: - got: CLOB
00932. 00000 - "inconsistent datatypes: expected %s got %s"
Cant i group by a regex substring?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题不是来自
regexp_substr
函数,而是来自您的列数据类型:在这里您可以看到该函数的行为正确,但是 Oracle(使用 10.2 进行测试)不允许您使用 clob 进行分组列:
您可以将函数输出转换为 VARCHAR2 以执行 GROUP BY:
the problem doesn't come from the
regexp_substr
function but from your column data type:Here you see that the function behaves correctly, however Oracle (tested with 10.2) doesn't allow you to group with a clob column:
You can convert the function output to a VARCHAR2 to perform the GROUP BY: