我正在Oracle 19c中安装一个数据库模式,安装脚本已经在Oracle 12中反复使用,没有问题。
我对19c的问题是,当它运行我们的视图脚本时,它会打开一些视图。我们看到的错误不是一个组的表达式。
我们有一些观点,例如,我们有这样的观点:
SELECT name, TRUNC(date) as Day
FROM sometable
GROUP BY name, TRUNC(date)它将错误指向select,就好像它没有看到字段已经在group表达式中一样。
如前所述,这些查询在Oracle 12中运行良好多年,直到现在才出现问题。
这是19c的一个错误,还是需要应用的东西?
发布于 2022-01-26 21:44:26
19c,你是说?不能复制它。
SQL> select banner from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production您使用的表(这样您就不会说这是罪魁祸首)(显然,date是一个无效的列名;这是为date数据类型保留的)。
SQL> create table sometable as
2 select 'Little' name, sysdate datum
3 from dual
4 connect by level <= 3;
Table created.查询本身有效吗?是:
SQL> select name, trunc(datum) as day
2 from sometable
3 group by name, trunc(datum);
NAME DAY
------ --------
Little 26.01.22注意--因为您没有聚合任何东西--您可以使用DISTINCT而不是GROUP BY
SQL> select DISTINCT name, trunc(datum) as day
2 from sometable;
NAME DAY
------ --------
Little 26.01.22我可以创建一个视图吗?是:
SQL> create view v_sometable as
2 select name, trunc(datum) as day
3 from sometable
4 group by name, trunc(datum);
View created.
SQL>就像我说的,我不能复制它。
请复制/粘贴您自己的SQL*Plus会话(就像我做的那样),这样我们就可以看到您到底做了什么,以及是如何响应的。
https://stackoverflow.com/questions/70867616
复制相似问题