Sql 在Oracle 12c上更新标识列时断开连接-
Oracle 12.1.0.1.0 以下是我的SQL(用于教育目的): 删除表t1级联约束; 表T1已删除。 创建表t1(n编号 默认生成为标识,m号默认为空1); 表T1已创建。 插入t1值(默认值,默认值); 插入1行。 更新t1 set m=默认值; 1行已更新。 更新t1集合n=默认值; SQL错误:ORA-00905:无法从套接字读取更多数据错误Sql 在Oracle 12c上更新标识列时断开连接-,sql,oracle,identity-column,Sql,Oracle,Identity Column,Oracle 12.1.0.1.0 以下是我的SQL(用于教育目的): 删除表t1级联约束; 表T1已删除。 创建表t1(n编号 默认生成为标识,m号默认为空1); 表T1已创建。 插入t1值(默认值,默认值); 插入1行。 更新t1 set m=默认值; 1行已更新。 更新t1集合n=默认值; SQL错误:ORA-00905:无法从套接字读取更多数据错误 因此,我无法更新“默认生成为标识”列。此外,当我尝试这样做时,我失去了与数据库的连接。这是一个错误/功能还是我做错了什么?不确定Oracle
因此,我无法更新“默认生成为标识”列。此外,当我尝试这样做时,我失去了与数据库的连接。这是一个错误/功能还是我做错了什么?不确定Oracle,但标识列不能更新,不同的RDBMS对同一列设置了限制。@Rahul一开始我自己并不理解,但真正的问题是失去与数据库的连接。无法更新标识列。我认为发生的情况是,服务器进程实际上对尝试更新标识感到非常惊讶(即未做好准备),导致连接崩溃。检查警报日志文件中的ora-600/类似文件以及同时转储的任何trc文件-听上去确实像Simon所说,但是警报日志会确认,最好打开跟踪,并发布跟踪输出。您使用的是
SQL*Plus
还是任何GUI工具?如果不是sqlplus,您可以在sqlplus中重试并发布结果。
drop table t1 cascade constraints;
table T1 dropped.
create table t1 (n number
generated by default as identity, m number default on null 1);
table T1 created.
insert into t1 values(default, default);
1 rows inserted.
update t1 set m = default;
1 rows updated.
update t1 set n = default;
SQL Error: ORA-00905: No more data to read from socket error