-
ORA-01410: 无效的 ROWID 如何解决0
create global temporary table t( names varchar2(50) ) on commit delete rows; begin begin insert into t values('ALTERATIONINFO_ASQ'); insert into t values('AUDITING_ASQ'); end; --创建表空间序列 begin for cur in (select names from t) loop execute immediate 'create sequence "EMAN"."'||cur.names||'" MINVALUE 0 MAXVALUE 99999999 INCREMENT BY 1 START WITH 20 CACHE 20 NOORDER NOCYCLE'; end loop; end; end;
执行后的错误:
ORA-01410: 无效的 ROWID ORA-06512: 在 line 2 01410. 00000 - "invalid ROWID" *Cause: *Action:
如果只是插入一行数据,却是成功的,现在是我需要插入300多个的序列。在网上查了很久资料,还是不清楚是什么原因造成的,我只是刚接触oracle二周,望大牛们帮帮我。
问题补充:在pl/sql 中执行,只能创建100个序列,然后就报:
ORA-01410: 无效的 ROWID ORA-06512: 在 line 2 01410. 00000 - "invalid ROWID" *Cause: *Action:
错误,我目前只能执行多个,每次100条。实在不清楚为什么会这样子。2012年6月27日 10:19
5个答案 按时间排序 按投票排序
-
execute immediate 'create sequence '||cur.names||' MINVALUE 0 MAXVALUE 99999999 INCREMENT BY 1 START WITH 20 CACHE 20 NOORDER NOCYCLE';
再试试吧哥,我也试了很多很多很多遍了
开始弄出来了个小写名字的sequence,删除都删不了。。。2012年6月27日 16:46
-
是因为你定义的表字段中是varchar类型,让其自增是有问题。你对表在添加一个number类型的字段,让游标循环给这个字段。试试是否可以!还有游标完了要committ。
2012年6月27日 13:30
-
execute immediate 'create sequence '||'EMAN'||'."'||cur.names||'" MINVALUE 0 MAXVALUE 99999999 INCREMENT BY 1 START WITH 20 CACHE 20 NOORDER NOCYCLE';
2012年6月27日 11:18
-
在insert语句之后加上commit提交:
begin begin insert into t values ('ALTERATIONINFO_ASQ'); insert into t values ('AUDITING_ASQ'); commit; end; --创建表空间序列 begin for cur in (select names from t) loop execute immediate 'create sequence "EMAN"."' || cur.names || '" MINVALUE 0 MAXVALUE 99999999 INCREMENT BY 1 START WITH 20 CACHE 20 NOORDER NOCYCLE'; end loop; end; end;
2012年6月27日 10:49
-
create global temporary table t( names varchar2(50) ) on commit delete rows; declare cursor c is select * from t; r c%rowtype; begin begin insert into t values('ALTERATIONINFO_ASQ'); insert into t values('AUDITING_ASQ'); end; --创建表空间序列 begin open c; loop fetch c into r; exit when c%notfound; execute immediate 'create sequence "EMAN"."'||cur.names||'" MINVALUE 0 MAXVALUE 99999999 INCREMENT BY 1 START WITH 20 CACHE 20 NOORDER NOCYCLE'; end loop; close c; commit; end;
2012年6月27日 10:41
相关推荐
下面将详细介绍从ORA-02001至ORA-02107之间的常见错误码及其含义,帮助读者更好地理解和解决在实际操作中可能遇到的问题。 #### ORA-02001:ûSYSб - **含义**: 表示当前用户没有足够的权限执行某些操作。 - **解决...
SYS_INVALID_ROWID (ORA-01410) **异常描述:** 当尝试将一个无效的ROWID转换为有效的ROWID时触发此异常。 **解决方法:** - 确认ROWID的格式是否正确。 - 验证ROWID是否对应于表中的有效行。 #### 21. TIMEOUT_...
- **解决方案**:解决资源冲突。 #### ORA-02069: ˲global_namesΪTRUE - **描述**:global_names参数不是TRUE。 - **解决方案**:设置global_names为TRUE。 #### ORA-02070: ݿⲻִ֧е - **描述**:数据库不...
16. **SYS_INVALID_ROWID (ORA-01410)** - 描述:字符到ROWID的转换失败,因为字符不代表有效的ROWID。 - 举例:尝试将无效的ROWID字符串转换为ROWID。 17. **TIMEOUT_ON_RESOURCE (ORA-00051)** - 描述:等待...
35. **ORA-12051**: ONCOMMIT选项在物化视图的定义中无效。 36. **ORA-12052**: 更新物化视图时出现问题,可能是由于并发更新或数据一致性问题。 37. **ORA-12053**: 描述了一个特定的错误,可能涉及到事务处理或...
20. `Sys_invalid_rowid` (ora-01410):无效字符串尝试转换为 ROWID 类型。 21. `Timeout_on_resource` (ora-00051):等待资源超时。 处理预定义异常通常在异常处理部分使用 WHEN 关键字来匹配异常名称,例如: ```...
- **错误代码**:ORA-01410 - **场景示例**:在尝试将非法字符串转换为ROWID格式时,将引发此异常。 #### 18. TIMEOUT_ON_RESOURCE - **异常描述**:等待资源时超时触发。 - **错误代码**:ORA-00051 - **场景示例*...
20. **SYS_INVALID_ROWID (ORA-01410)** - **描述**:当尝试将无效字符串转换为ROWID类型时触发。 - **示例场景**:例如,如果你尝试将一个不是ROWID格式的字符串转换为ROWID类型,就会引发此异常。 21. **TIME...
- **INVALID_CURSOR** (ORA-1001) - 尝试使用无效的游标。 - **INVALID_NUMBER** (ORA-1722) - 对非数字值进行数字运算。 - **LOGIN_DENIED** (ORA-1017) - 无效的用户名或密码。 - **NO_DATA_FOUND** (ORA-1403) - ...
1. **表名含有空格**:若表名包含空格,则复制过程会因为Oracle错误ORA-00903:无效的表名称,而导致复制失败。 2. **DATE数据类型限制**:SQL Server的datetime类型与Oracle的DATE类型在日期范围上有所不同,...
- **通过ROWID访问**: ROWID包含了表中记录的物理位置,使用索引可以快速定位ROWID,提高查询效率。建立和使用索引是优化的重要手段。 3. **共享SQL语句**: - ORACLE的共享池保存已解析的SQL语句,避免重复解析...
2. ORA-00904标识符无效:这通常是Oracle数据库中出现的一种错误,表明在语句中使用了一个无效的标识符,比如错误的列名、表名或对象名。解决这类问题通常需要核对数据库对象的名称是否正确,并确保SQL语句符合...
2. ORA-00904标识符无效:这是Oracle数据库中的一个常见错误,当SQL语句中使用了无效的标识符时,会引发此错误。解决这个问题通常需要检查SQL语句中的对象名(如表名、列名)是否拼写正确,以及是否在正确的模式...
这是因为在字段`a`上创建索引时,索引只存储了该字段的值及其对应的ROWID,而不会复制整个表的数据。 #### 15. 9i的DataGuard模式及其区别: **知识点解析:** - **物理备库**:与主库完全相同的数据副本。 - **...
19. **获取行的物理地址**: `SELECT ROWID, ename FROM tablename WHERE deptno = 20`返回行的ROWID,这是Oracle中行的唯一物理标识。 20. **转换秒为时分秒格式**: 提供的PL/SQL代码演示了如何将秒数转换为小时、...
§12.1.2 调整或使触发器无效 137 §12.1.3 重组数据 137 §12.2 优化目标 137 §12.2.1 优化序列SQL语句 137 §12.2.2 优化并行执行 138 §12.2.3 调整OLTP应用 138 §12.3 实际优化例子 139 §12.3.1 避免基于规则...