|
|
extract.c有点问题,生成的metafile.drl是乱码
extract.c有点问题,以下的右关联我做了nvl保护,因为没有进行空值保护,程序会报错Error - ORA-01405: fetched column value is NULL
text *select=(text *)"select a.data_object_id,a.object_name,a.object_type,a.owner,nvl(b.tab#,0) from dba_objects a, sys.tab$ b where a.object_id=b.obj#(+) and (a.object_type like '%TABLE%' or a.object_type like '%INDEX%' or a.object_type like '%LOB%' or a.object_type like '%TYPE%') order by a.data_object_id,b.tab#";
text *select2=(text *)"select a.data_object_id,count(*) from dba_objects a, sys.tab$ b where a.object_id=b.obj#(+) and (a.object_type like '%TABLE%' or a.object_type like '%INDEX%' or a.object_type like '%LOB%' or a.object_type like '%TYPE%') group by a.DATA_OBJECT_ID order by a.DATA_OBJECT_ID";
text *select3=(text *)"select a.data_object_id,nvl(b.tab#,0),c.column_name,c.column_id,c.DATA_TYPE from dba_objects a, sys.tab$ b,dba_tab_cols c where a.object_type in ('TABLE','TABLE PARTITION') and a.object_id=b.obj#(+) and a.object_name=c.table_name and a.owner=c.owner order by a.data_object_id,b.tab#,c.column_id";
text *select4=(text *)"select a.data_object_id,nvl(b.tab#,0),count(*) from dba_objects a, sys.tab$ b,dba_tab_cols c where a.object_type in ('TABLE','TABLE PARTITION') and a.object_id=b.obj#(+) and a.object_name=c.table_name and a.owner=c.owner group by a.data_object_id,b.tab# order by a.data_object_id,b.tab#";
text *select5=(text *)"select max(data_object_id) maxrow from dba_objects";
程序编译能成功,执行./extract hs_user/hundsun@db_user drlog.par
会报错Create metafile error,check path:/home/oracle/rl/drlog/metafile.drl
发现drlog.par的路径不对,修改文件路径执行成功
但是发现生成的文件是只有metafile.drl是二进制乱码,其他都是空文件
所以执行./drlog drlog.par o1_mf_3_4vjwzvt7_.log 都是报错
read file /home/oracle/test/metafile.drl.clu error,cluster error! |
|