Bo's Oracle Station

查看: 1396|回复: 0

模拟MOS售后处理逻辑坏块

[复制链接]

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2020-1-4 09:43:31 | 显示全部楼层 |阅读模式
  1. select  * from REPAIR_TABLE;

  2. BEGIN
  3. DBMS_REPAIR.ADMIN_TABLES (
  4.    table_name => 'REPAIR_TABLE',
  5.    table_type => DBMS_REPAIR.REPAIR_TABLE,
  6.    action => DBMS_REPAIR.CREATE_ACTION,
  7.    tablespace => 'USERS');
  8. END;

  9. select  * from REPAIR_TABLE;

  10. select  * from ORPHAN_KEY_TABLE;

  11. BEGIN
  12. DBMS_REPAIR.ADMIN_TABLES (
  13.    table_name => 'ORPHAN_KEY_TABLE',
  14.    table_type => DBMS_REPAIR.ORPHAN_TABLE,
  15.    action => DBMS_REPAIR.CREATE_ACTION,
  16.    tablespace => 'USERS');
  17. END;

  18. select  * from ORPHAN_KEY_TABLE;

  19. DECLARE
  20.   num_corrupt INT;
  21. BEGIN
  22. num_corrupt := 0;
  23. DBMS_REPAIR.CHECK_OBJECT (
  24.    schema_name => 'HR',
  25.      object_name => 'TLOG',
  26.    repair_table_name => 'REPAIR_TABLE',
  27.    corrupt_count => num_corrupt);
  28.   dbms_output.put_line( 'Find  '|| num_corrupt||' Bolcks.'  );
  29. END;

  30. select  * from REPAIR_TABLE;


  31. DECLARE
  32. num_fix INT;
  33. BEGIN
  34. num_fix := 0;
  35. DBMS_REPAIR.FIX_CORRUPT_BLOCKS (
  36.      schema_name => 'HR',
  37.      object_name => 'TLOG',
  38.      object_type => DBMS_REPAIR.TABLE_OBJECT,
  39.      repair_table_name => 'REPAIR_TABLE',
  40.    fix_count => num_fix);
  41.     dbms_output.put_line( 'Fix  '|| num_fix||' Bolcks.'  );
  42. END;


  43. begin
  44.   dbms_repair.skip_corrupt_blocks(schema_name => 'HR',
  45.   object_name => 'TLOG');
  46. end;

  47. select  * from ORPHAN_KEY_TABLE;

  48. DECLARE
  49.   num_orphans INT;
  50. BEGIN
  51. num_orphans := 0;
  52. DBMS_REPAIR.DUMP_ORPHAN_KEYS (
  53.   schema_name => 'HR',
  54.   object_name => 'ILOG_A',
  55.   object_type => DBMS_REPAIR.INDEX_OBJECT,
  56.   repair_table_name => 'REPAIR_TABLE',
  57.   orphan_table_name => 'ORPHAN_KEY_TABLE',
  58.   key_count => num_orphans);
  59. DBMS_OUTPUT.PUT_LINE('orphan key count: ' || TO_CHAR(num_orphans));
  60. END;


  61. DECLARE
  62.   num_orphans INT;
  63. BEGIN
  64. num_orphans := 0;
  65. DBMS_REPAIR.DUMP_ORPHAN_KEYS (
  66.   schema_name => 'HR',
  67.   object_name => 'ILOG_B',
  68.   object_type => DBMS_REPAIR.INDEX_OBJECT,
  69.   repair_table_name => 'REPAIR_TABLE',
  70.   orphan_table_name => 'ORPHAN_KEY_TABLE',
  71.   key_count => num_orphans);
  72. DBMS_OUTPUT.PUT_LINE('orphan key count: ' || TO_CHAR(num_orphans));
  73. END;

  74. select  keyrowid from ORPHAN_KEY_TABLE  where index_name='ILOG_A';

  75. select  * from orphan_key_table where index_name='ILOG_B' and keyrowid||' '='AAAVZYAIgAAAMABAAA'||' ';

  76. select index_name, dump(key) from ORPHAN_KEY_TABLE;

  77. select chr(65) from dual;
复制代码
为了机器排序而存储实数的算法:
oracle-internal1.png
例子:

  1. 195,2,25,12,30


  2. 100**(195-193-0)(2-1)+
  3. 100**(195-193-1)(25-1)+
  4. 100**(195-193-2)(12-1)+
  5. 100**(195-193-3)(30-1)  

  6. 10000+2400+11+0.29=12411.29
复制代码




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-5-9 04:26 , Processed in 0.041774 second(s), 27 queries .

快速回复 返回顶部 返回列表