什么叫 oracle 中建的外表?
所有表??

解决方案 »

  1.   

    就是oracle 不是可以建立外表的嘛(就是能把指定格式的文件直接定义一下表结构,就能使用select 等数据操作),就是如何判断出这些表
      

  2.   

    晕,就是把用户自己建的外表通过语句查询出来
    比如:select * from tabs;
    这里查出来的是所有的表,我要从中找出那些是外表
      

  3.   

    猜测楼主说的是EXTERNAL TABLE,外部表
    可以通过
     select * from DBA_EXTERNAL_TABLES;
    得到
      

  4.   

    不知什么是外表。
    给你这个。
    ORACLE系统表查询 
      1、用户: 
       select username from dba_users; 
      改口令 
       alter user spgroup identified by spgtest; 
      2、表空间: 
       select * from dba_data_files; 
       select * from dba_tablespaces;//表空间    select tablespace_name,sum(bytes), sum(blocks) 
        from dba_free_space group by tablespace_name;//空闲表空间    select * from dba_data_files 
        where tablespace_name='RBS';//表空间对应的数据文件    select * from dba_segments 
        where tablespace_name='INDEXS'; 
      3、数据库对象: 
       select * from dba_objects; 
       CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、 
       PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。 
      4、表: 
       select * from dba_tables; 
       analyze my_table compute statistics;->dba_tables后6列 
       select extent_id,bytes from dba_extents 
       where segment_name='CUSTOMERS' and segment_type='TABLE' 
       order by extent_id;//表使用的extent的信息。segment_type='ROLLBACK'查看回滚段的空间分配信息 
       列信息: 
        select distinct table_name 
        from user_tab_columns 
        where column_name='SO_TYPE_ID'; 
      5、索引:  
       select * from dba_indexes;//索引,包括主键索引 
       select * from dba_ind_columns;//索引列 
       select i.index_name,i.uniqueness,c.column_name 
        from user_indexes i,user_ind_columns c 
         where i.index_name=c.index_name 
         and i.table_name ='ACC_NBR';//联接使用 
      6、序列: 
       select * from dba_sequences; 
      7、视图: 
       select * from dba_views; 
       select * from all_views; 
      text 可用于查询视图生成的脚本 
      8、聚簇: 
       select * from dba_clusters; 
      9、快照: 
       select * from dba_snapshots; 
      快照、分区应存在相应的表空间。 
      10、同义词: 
       select * from dba_synonyms 
        where table_owner='SPGROUP'; 
        //if owner is PUBLIC,then the synonyms is a public synonym. 
         if owner is one of users,then the synonyms is a private synonym. 
      11、数据库链: 
       select * from dba_db_links; 
      在spbase下建数据库链 
       create database link dbl_spnew 
       connect to spnew identified by spnew using 'jhhx'; 
       insert into acc_nbr@dbl_spnew 
       select * from acc_nbr where nxx_nbr='237' and line_nbr='8888'; 
      12、触发器: 
       select * from dba_trigers; 
      存储过程,函数从dba_objects查找。 
      其文本:select text from user_source where name='BOOK_SP_EXAMPLE'; 
      建立出错:select * from user_errors; 
      oracle总是将存储过程,函数等软件放在SYSTEM表空间。 
      13、约束: 
      (1)约束是和表关联的,可在create table或alter table table_name add/drop/modify来建立、修改、删除约束。 
      可以临时禁止约束,如: 
       alter table book_example 
       disable constraint book_example_1; 
       alter table book_example 
       enable constraint book_example_1; 
      (2)主键和外键被称为表约束,而not null和unique之类的约束被称为列约束。通常将主键和外键作为单独的命名约束放在字段列表下面,而列约束可放在列定义的同一行,这样更具有可读性。 
      (3)列约束可从表定义看出,即describe;表约束即主键和外键,可从dba_constraints和dba_cons_columns 查。 
       select * from user_constraints 
       where table_name='BOOK_EXAMPLE'; 
       select owner,CONSTRAINT_NAME,TABLE_NAME 
        from user_constraints 
        where constraint_type='R' 
        order by table_name; 
      (4)定义约束可以无名(系统自动生成约束名)和自己定义约束名(特别是主键、外键) 
      如:create table book_example 
        (identifier number not null); 
        create table book_example 
        (identifier number constranit book_example_1 not null); 
      14、回滚段: 
      在所有的修改结果存入磁盘前,回滚段中保持恢复该事务所需的全部信息,必须以数据库发生的事务来相应确定其大小(DML语句才可回滚,create,drop,truncate等DDL不能回滚)。 
      回滚段数量=并发事务/4,但不能超过50;使每个回滚段大小足够处理一个完整的事务; 
       create rollback segment r05 
       tablespace rbs; 
       create rollback segment rbs_cvt 
       tablespace rbs 
       storage(initial 1M next 500k); 
      使回滚段在线 
       alter rollback segment r04 online; 
      用dba_extents,v$rollback_segs监测回滚段的大小和动态增长。 
      回滚段的区间信息 
       select * from dba_extents 
       where segment_type='ROLLBACK' and segment_name='RB1'; 
      回滚段的段信息,其中bytes显示目前回滚段的字节数 
       select * from dba_segments 
        where segment_type='ROLLBACK' and segment_name='RB1'; 
      为事物指定回归段 
       set transaction use rollback segment rbs_cvt 
      针对bytes可以使用回滚段回缩。 
       alter rollback segment rbs_cvt shrink; 
       select bytes,extents,max_extents from dba_segments 
        where segment_type='ROLLBACK' and segment_name='RBS_CVT'; 
      回滚段的当前状态信息: 
       select * from dba_rollback_segs 
        where segment_name='RB1'; 
      比多回滚段状态status,回滚段所属实例instance_num 
      查优化值optimal 
       select n.name,s.optsize 
        from v$rollname n,v$rollstat s 
         where n.usn=s.usn; 
      回滚段中的数据 
       set transaction use rollback segment rb1;/*回滚段名*/ 
       select n.name,s.writes 
        from v$rollname n,v$rollstat s 
         where n.usn=s.usn; 
      当事务处理完毕,再次查询$rollstat,比较writes(回滚段条目字节数)差值,可确定事务的大小。 
      查询回滚段中的事务 
       column rr heading 'RB Segment' format a18 
       column us heading 'Username' format a15 
       column os heading 'Os User' format a10 
       column te heading 'Terminal' format a10 
       select r.name rr,nvl(s.username,'no transaction') us,s.osuser os,s.terminal te 
        from v$lock l,v$session s,v$rollname r 
         where l.sid=s.sid(+) 
         and trunc(l.id1/65536)=R.USN 
         and l.type='TX' 
         and l.lmode=6 
       order by r.name; 
      15、作业 
      查询作业信息 
       select job,broken,next_date,interval,what from user_jobs; 
       select job,broken,next_date,interval,what from dba_jobs; 
      查询正在运行的作业 
       select * from dba_jobs_running; 
      使用包exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (10/(24*60*60))')加入作业。间隔10秒钟 
    exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (11/(24*60))')加入作业。间隔11分钟使用包exec dbms_job.remove(21)删除21号作业。 
      

  5.   

    猜测楼主说的是EXTERNAL TABLE,外部表
    可以通过
     select * from DBA_EXTERNAL_TABLES;
    得到
    --
    都没有听过
    赶紧搜索学习一下
      

  6.   

    zt
    外部表External table 
    =========================================================== 
    作者: xsb(http://xsb.itpub.net)
    发表于:2005.08.19 09:21
    分类: Oracle 
    出处:http://xsb.itpub.net/post/419/38484
    --------------------------------------------------------------- 把一个普通的文本格式的OS文件看作是Oracle数据库的外部表,Oracle可以象普通表一样进行select 操作,可以建视图,可以与其他进行连接等,但不能对其进行DML操作,即该表是只读的!(10g里可借此导出数据至平面dmp文件)。
    External table和正规的表很相似,以下的几点需要注意:l 数据在数据库的外部组织,是操作系统文件。 
    l 操作系统文件在数据库中的标志是通过一个逻辑目录来映射的。    
    l 数据是只读的。(外部表相当于一个只读的虚表)  
    l 不可以在上面运行任何DML操作,不可以创建索引。  
    l 可以查询操作和连接,可以并行操作。假设如下的两个平面文件 
        1.dat:
    7301,SMITH,CLERK,7902,17-DEC-80,100,0,20
    7402,ALLEN,SALESMAN,7698,20-FEB-81,250,0,30
    7503,WARD,SALESMAN,7698,22-FEB-81,450,0,30
    7504,JONES,MANAGER,7839,02-APR-81,1150,0,20
     2.dat:
    7611,MARTIN,SALESMAN,7698,28-SEP-81,1250,0,30
    7612,BLAKE,MANAGER,7839,01-MAY-81,1550,0,30
    7913,MILLER,CLERK,7782,23-JAN-82,3500,0,10
    创建一个逻辑目录:
    CREATE DIRECTORY DIR_TEST AS 'D:TEMP';
    定义外部表:
    CREATE TABLE EXT1 
    emp_id number(4), 
    ename varchar2(12), 
    job varchar2(12) , 
    mgr_id¡¡number(4) , 
    hiredate date, 
    salary number(8), 
    comm number(8), 
    dept_id number(2)) 
    ORGANIZATION EXTERNAL
    (TYPE ORACLE_LOADER 
    DEFAULT DIRECTORY DIR_TEST
    ACCESS PARAMETERS(RECORDS DELIMITED BY NEWLINE 
    FIELDS TERMINATED BY ',') 
    LOCATION('1.DAT','2.DAT'))
    查询外部表:
    select * from ext1;
    得到外部表的有关信息:
    SELECT OWNER,TABLE_NAME,DEFAULT_DIRECTORY_NAME,ACCESS_PARAMETERS 
    FROM DBA_EXTERNAL_TABLES;
    select * from DBA_EXTERNAL_LOCATIONS; ===================================================升级Oracle中的外部表--创建逻辑目录dirls,外部表数据文件所在位置
    CREATE OR REPLACE directory DIR_x1 as 'd:dbexp';
    --创建外部表结构create table x1
    (c1 VARCHAR2(10)
    , c2 VARCHAR2(10)
    )
    organization external
    ( type oracle_loader
    default directory dir_x1
    access parameters ( records delimited by newline
    badfile 'x1.bad'
    discardfile 's1.dis'
    logfile 'x1.log'
    fields terminated by ','
    optionally enclosed by '"'
    missing field values are null
    )
    location ('x1.txt','x2.txt')
    )http://www.softhouse.com.cn/html/200509/2005090516013200010796.html甲骨文(Oracle)数据库的外部表(external tables ),作为一个平台文件,在支撑Oracle SQL的时候,对整合Oracle数据仓库以及“寄生”在服务器上的表数据的外部元数据起着至关重要的作用。此外,外部表也可用来当作“csv”文件,允许这种类型的外部表数据在微软的Excel电子数据表中得以使用。一个名为Peter Kok的技术人员,发布了一则Oracle外部表获得升级的技巧,他列出的操作步骤如下:1、在外部表中定义一个“view”;2、在这个“view”中,分别为“插入”、“更新”和“删除”定义一个“INSTEAD OF”型的triggers;3、在这些triggers中,编写PL/SQL以执行必要的处理过程。Kok接着出示了例子的代码,还提供了这项技术的免费下载,在最后也提出了一些重要的“警告”:The problem is with doing a multiple delete (i.e. a delete statement that affects more than one row). As we noted before, the INSTEAD OF trigger is implicitly for each row. This means statement-level information is unavailable. 
    例子如下所示:create or replace view emp_ext_tab_vw
    as
    select rownum rownumber
    , emp.empno empno
    , emp.ename ename
    , emp.job job
    , emp.mgr mgr
    , emp.hiredate hiredate
    , emp.sal sal
    , emp.comm comm
    , emp.deptno deptno
    from emp_ext_tab emp
    order by rownumber asc
    /create or replace trigger emp_ext_tab_vw_brd
    instead of delete on emp_ext_tab_vw
    begin
    --
    emp_ext_tab_dml.delete_record ( :OLD.rownumber );
    --
    end;
    /10g里可借此导出数据至平面dmp文件:http://www.orafaq.com/node/848create table x_1
    organization external
    ( type oracle_datapump
    default directory dir_dmp
    location ('x_1.dmp')
    ) as 
    select owner,table_name,tablespace_name from dba_tables where owner='XSB'; select * from x_1;create table x_2 (
    owner varchar2(100),table_name varchar2(100),tablespace_name varchar2(100)
    )
    organization external
    ( type oracle_datapump
    default directory dir_dmp
    location ('x_1.dmp')
    );xsb 发表于:2005.08.19 09:21 ::分类: ( Oracle ) ::阅读:(891次) :: Permanent link :: 引用 (0) 
      

  7.   

    icedut(冰)的回复正是要我找的答复,谢谢大家了哦
    马上就结贴
      

  8.   

    xiaoxiao1984(笨猫儿) 知道得真多
      

  9.   

    不对,应该是xiaoxiao1984(笨笨猫儿)的回复才是我要的答案