Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在Oracle 12c上更新标识列时断开连接-_Sql_Oracle_Identity Column - Fatal编程技术网

Sql 在Oracle 12c上更新标识列时断开连接-

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 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,但标识列不能更新,不同的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