############################################################################# ############################################################################# sub createTablePage($) { $TABLE = uc(shift); $PAGE_NAME = "Template:DataDict:$DATABASE:$USER:$TABLE"; $bot->delete($PAGE_NAME, "Deleting $page"); $COMMENT = $db->selectrow_array(qq{SELECT nvl(max(comments),'??') FROM all_tab_comments WHERE owner = '$USER' AND table_name = Upper('$TABLE')}); $text = qq§{|class="dd_table" style="width:800px;" !class="dd_head" colspan=4 |Tabelle $TABLE |- |class="dd_cell" colspan=4|'''$COMMENT''' §; $SQL = qq{ select t1.column_name, Nvl2(DATA_PRECISION, data_type||'('||data_precision||','||data_scale||')', data_type||'('||data_length||')' ) as data_type, decode(nullable,'N','NOT NULL', '') as null_status, comments from all_tab_columns t1, all_col_comments t2 where t1.table_name = t2.table_name and t1.column_name = t2.column_name and t1.table_name = Upper('$TABLE') and t1.owner = '$USER' ORDER BY COLUMN_ID }; $dd_query = $db -> prepare ($SQL) or die "2 $!"; $dd_query -> execute() or die "3 $!"; $dd_query -> bind_columns(\($COL,$TYPE,$NULLABLE,$COMMENT)) or die "4 $!"; while (@foo = $dd_query->fetchrow_array){ print "Column ".$COL."\n"; $text = $text . qq§|- |class="dd_cell" width=20%| $COL |class="dd_cell" width=20%| $TYPE |class="dd_cell" width=10%| $NULLABLE |class="dd_cell" width=50%| $COMMENT §; } $text = $text . qq§|} §; $bot->edit({ page => $PAGE_NAME, text => $text, summary => 'Data Dictionary Synchronisation', }); $dd_query->finish(); }