table_name partition(partition_name);select * from scubagear partition(p3);我的可以SQL> select * from scubagear partition(p3);未选定行但是读取整表会报错SQL> select * from scubagear;
select * from scubagear
              *
ERROR 位于第 1 行:
ORA-00376: 此时无法读取文件 8
ORA-01110: 数据文件 8: 'D:\ORACLE\ORADATA\ORCL\TS1.ORA'

解决方案 »

  1.   

    Below is an example of selecting a row from a specific partition.--First look at all of the data.SQL> SELECT * FROM sales_detail_data;date_of_s INVOICE_NUMBER ITEM_LINE_NO  item_sku  QTY_SOLD
    --------  -------------- ------------  --------  --------
    01-JAN-99              1            1   1000000         1
    01-JAN-99              2            1   1000000         1
    01-JAN-99              2            2   1000000         1
    01-APR-99              2            1   2000000         1
    01-APR-99              2            2   9000000         5
    30-JUN-99              3            1   1000000         1
    01-JUL-99              4            1   2000000         1
    01-SEP-99              5            1   4000000         1
    31-DEC-99              6            1   1000000         2--Now just the data in the SALES_Q1_99 partition.SQL> SELECT * FROM sales_detail_data partition (sales_q1_99);DATE_OF_S INVOICE_NUMBER ITEM_LINE_NO  item_sku  QTY_SOLD
    --------  -------------- ------------  --------  --------
    01-JAN-99              1            1   1000000         1
    01-JAN-99              2            1   1000000         1
    01-JAN-99              2            2   1000000         1--Note the problem if we are looking for specific data in the wrong partition.
    --This query works fine.SQL> SELECT * FROM sales_detail_data PARTITION (sales_q1_99)
      2  WHERE TO_CHAR(date_of_sale,'DD-MON-YY')=
      3  TO_DATE('01-JAN-99','DD-MON-YY');DATE_OF_S INVOICE_NUMBER ITEM_LINE_NO  item_sku  QTY_SOLD
    --------  -------------- ------------  --------  --------
    01-JAN-99              1            1   1000000         1
    01-JAN-99              2            1   1000000         1
    01-JAN-99              2            2   1000000         1--This query fails because the wrong partition is selected.SQL> SELECT * FROM sales_detail_data PARTITION (sales_q2_99)
      2   WHERE TO_CHAR(date_of_sale,'DD-MON-YY')=
      3   TO_DATE('01-JAN-99','DD-MON-YY');
    no rows selected