I agree, that's broken. To share a wider picture here my path how I discovered it (slightly striped): I tried to migrate my 2k blocksize al32utf8 DB from 10.2.0.5 to 11.2.0.2. the @catupgrd.sql failed with SQL> begin 2 dbms_stats.delete_table_stats('SYS', 'OBJ$MIG'); 3 dbms_stats.delete_table_stats('SYS', 'USER$MIG'); 4 dbms_Stats.gather_table_stats('SYS', 'OBJ$MIG', estimate_percent => 100, 5 method_opt=>'FOR ALL COLUMNS SIZE SKEWONLY'); 6 dbms_Stats.gather_table_stats('SYS', 'USER$MIG', estimate_percent => 100, 7 method_opt=>'FOR ALL COLUMNS SIZE SKEWONLY'); 8 end; 9 / begin * ERROR at line 1: ORA-04063: package body "SYS.DBMS_STATS" has errors ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_STATS" ORA-06512: at line 2 ok. dbms_stats seems to be broken. so let's try to run catupgrd.sql again - same problem. so I tried to recompile dbms_stats manually. at running @prvtstas.plb it showed me there was an error at line 2175. IF you are curious what's going on there: 2175 CURSOR GET_COL_GROUP_USAGE(OWNER VARCHAR2, TABNAME VARCHAR2) IS 2176 SELECT CU.OBJ# OBJN, CU.COLS, 2177 (CASE WHEN BITAND(CU.FLAGS, 1) = 1 THEN 'FILTER ' ELSE '' END) || 2178 (CASE WHEN BITAND(CU.FLAGS, 2) = 2 THEN 'JOIN ' ELSE '' END) || 2179 (CASE WHEN BITAND(CU.FLAGS, 4) = 4 THEN 'GROUP_BY ' ELSE '' END) USAGE, 2180 CU.FLAGS USAGEFLG 2181 FROM SYS.COL_GROUP_USAGE$ CU 2182 WHERE CU.OBJ# = (SELECT O.OBJ# FROM SYS.OBJ$ O, SYS.USER$ U 2183 WHERE O.OWNER# = U.USER# 2184 AND U.NAME = OWNER 2185 AND O.NAMESPACE = 1 2186 AND O.REMOTEOWNER IS NULL 2187 AND O.LINKNAME IS NULL 2188 AND O.SUBNAME IS NULL 2189 AND O.TYPE# = 2 2190 AND O.NAME = TABNAME) 2191 ORDER BY ... I checked COL_GROUP_USAGE$ - but it did not exist! Some grep in $ORACLE_HOME/rdbms/admin brought me to c1102000.sql There I can read: -- #(9577300) Column group usage create table col_group_usage$ ( obj# number, /* object number */ /* * We store intcol# separated by comma in the following column. * We allow upto 32 (CKYMAX) columns in the group. intcol# can be * upto 1000 (or can be 64K in future or with some xml virtual columns?). * Assume 5 digits for intcol# and one byte for comma. * So max length would be 32 * (5+1) = 192 */ cols varchar2(192 char), /* columns in the group */ timestamp date, /* timestamp of last time this row was changed */ flags number, /* various flags */ constraint pk_col_group_usage$ primary key (obj#, cols)) organization index storage (initial 200K next 100k maxextents unlimited pctincrease 0) / As I tried to create that table manually, I recieved my ORA-01429. My own workaround (without approval of ORacle Support!) was to create the IOT with cols varchar2(192 byte) - as I'm sure all column names in this DB will only be plain ASCII, this should be fine just to make the db available again. Guess what? it worked ;-) This issue is filed at MOS as BUG:10410249 - but development has not commented it, yet. I hope that answered some questions. Martin Am 17.12.2010 um 18:57 schrieb Jeremiah Wilton: > On Dec 17, 2010, at 9:29 AM, Martin Berger wrote: > >> If anyone want to have fun, just run this simple testcase: >> use your 11.2.0.2 rdbms binaries (linux and hp-ux tested, but others will >> also work). >> >> create a small pfile: >> >> db_name=test >> db_block_size=2048 >> db_create_file_dest=/tmp >> >> set any ORACLE SID and run >> >> create database character set al32utf8; >> >> I'd like to see your results ;-) >> (I can give some more infos, do not waste time for investigations) > > Wow that's broken. 2K block size doesn't really seem like much of an edge > case. 8k block size works fine, but you already know that. > > SQL> create database character set al32utf8; > create database character set al32utf8 > * > ERROR at line 1: > ORA-01092: ORACLE instance terminated. Disconnection forced > ORA-01501: CREATE DATABASE failed > ORA-01519: error while processing file '?/rdbms/admin/doptim.bsq' near line > 416 > ORA-00604: error occurred at recursive SQL level 1 > ORA-01429: Index-Organized Table: no data segment to store overflow row-pieces > Process ID: 2246 > Session ID: 87 Serial number: 3 > > Removed db_block_size from the pfile, and" > > SQL> create database character set al32utf8; > > Database created. > > -- > Jeremiah Wilton > http://www.bluegecko.net > > >