Oracle SQL:如何在具有IDENTITY列的表上使用GROUP BY子句插入SE
发布时间:2020-12-12 16:25:19 所属栏目:百科 来源:网络整理
导读:在一个应用程序中,我打算在Oracle 12c数据库上截断和插入,但是在IDENTITY列中发现了这个问题.尽管INSERT … SELECT语句适用于我尝试过的大多数SELECT语句,但是当这个语句也有GROUP BY子句时,它无法工作,发出“ORA-00979:不是GROUP BY表达式”的抱怨.下面是
在一个应用程序中,我打算在Oracle 12c数据库上截断和插入,但是在IDENTITY列中发现了这个问题.尽管INSERT … SELECT语句适用于我尝试过的大多数SELECT语句,但是当这个语句也有GROUP BY子句时,它无法工作,发出“ORA-00979:不是GROUP BY表达式”的抱怨.下面是一些示例代码:
create table aux ( owner_name varchar2(20),pet varchar2(20) ); insert into aux values ('Scott','dog'); insert into aux values ('Mike','cat'); insert into aux values ('John','turtle'); create table T1 ( id number generated always as identity,owner_name varchar2(20),pet_count number ); insert into T1 (owner_name,pet_count) select owner_name,count(*) as pet_count from aux group by owner_name; select owner_name,count(*) as pet_count from aux group by owner_name; 它适用于第一个插入,但在下一个插入时失败. 编辑:我已经更改了代码,因此问题更容易理解,同时仍然可以重现. 感谢帮助! 在Oracle社区中,这个问题已得到解答.https://community.oracle.com/message/13227544#13227544 insert into T1 (owner_name,pet_count) with t as (select /*+ materialize */ owner_name,count(*) as pet_count from aux group by owner_name) select owner_name,pet_count from t 引用原始答案时,请记住实现提示没有记录.感谢大家的帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Dora.Interception,为.NET Core度身打造的AOP框架 [4]:与
- oracle – 使用impdp导入选择性数据
- Flex mouseEnabled和mouseChildren的区别
- c# – 知道对象的字段/属性是“简单/原始”类型还是其他对象
- 如何在Swift,iOS中使用十六进制颜色值
- invalid bound statement (not found)
- c# – 为BigInteger分配大数时出错
- Backbone React Requirejs 应用实战(二)——使用Backbone M
- Error: An App ID with identifier "*****" is
- C#之IO读写文件方法封装代码