MYSQL编程:ORACLE9I中内部表的利用
而且其固有的弹性使得它易于扩展以处理不断增长的需求,或当需求MySQL学习教程减弱时缩减规模。oracleORACLE9I中内部表的利用申明:这个帖子报告Oracle9I内部表(ExternalTable)的低级利用。
甚么是内部表?
Externaltable和正轨的表很类似,详细的界说能够拜见《Oracle观点手册》,以下的几点必要注重:
>创立的语法相似于:"CREATETABLE...ORGANIZATIONEXTERNAL"
>数据在数据库的内部构造,是操纵体系文件。
>操纵体系文件在数据库中的标记是经由过程一个逻辑目次来映照的。
>数据是只读的。(内部表相称于一个只读的虚表)
>不成以在下面运转任何DML操纵,不成以创立索引。
>能够查询操纵和毗连。能够并行操纵。
例子:
假定有以下的两个数据文件:
1立体文件数据的形貌
假定以下的两个立体文件
1.dat:
7369,SMITH,CLERK,7902,17-DEC-80,100,0,20
7499,ALLEN,SALESMAN,7698,20-FEB-81,250,0,30
7521,WARD,SALESMAN,7698,22-FEB-81,450,0,30
7566,JONES,MANAGER,7839,02-APR-81,1150,0,20
2.dat:
7654,MARTIN,SALESMAN,7698,28-SEP-81,1250,0,30
7698,BLAKE,MANAGER,7839,01-MAY-81,1550,0,30
7934,MILLER,CLERK,7782,23-JAN-82,3500,0,10
(要有对操纵体系中该目次的读写权限。)
2创立一个逻辑目次并举行得当受权:
SQL>CREATEDIRECTORYTESTDIRASD:TEMP;
目次已创立。
SQL>GRANTREADONDIRECTORYTESTDIRTODEMO;
受权乐成。
SQL>GRANTWRITEONDIRECTORYTESTDIRTODEMO;
受权乐成。
注重:创立终了逻辑目次以后要把立体文件拷贝到该目次下,别的还要注重文件名字不要写错。
3创立内部表
SQL>ED
已写进文件afiedt.buf
1CREATETABLEDEMO.EXT
2(emp_idnumber(4),
3enamevarchar2(12),
4jobvarchar2(12),
5mgr_idnumber(4),
6hiredatedate,
7salarynumber(8),
8commnumber(8),
9dept_idnumber(2))
10ORGANIZATIONEXTERNAL
11(TYPEORACLE_LOADER
12DEFAULTDIRECTORYTESTDIR
13ACCESSPARAMETERS(RECORDSDELIMITEDBYNEWLINE
14FIELDSTERMINATEDBY,)
15*LOCATION(1.DAT,2.DAT))
SQL>/
表已创立。
4举行Select选择操纵看看是不是准确:
SQL>select*fromDEMO.EXT;
EMP_IDENAMEJOBMGR_IDHIREDATESALARYCOMMDEPT_ID
----------------------------------------------------------------
7369SMITHCLERK790217-DEC-80100020
7499ALLENSALESMAN769820-FEB-81250030
7521WARDSALESMAN769822-FEB-81450030
7566JONESMANAGER783902-APR-811150020
7654MARTINSALESMAN769828-SEP-811250030
7698BLAKEMANAGER783901-MAY-811550030
7934MILLERCLERK778223-JAN-823500010
假如要失掉内部表的有关信息:
SQL>DESCDBA_EXTERNAL_TABLES;
称号
-----------------------------------------------------------------
OWNER
TABLE_NAME
TYPE_OWNER
TYPE_NAME
DEFAULT_DIRECTORY_OWNER
DEFAULT_DIRECTORY_NAME
REJECT_LIMIT
ACCESS_TYPE
ACCESS_PARAMETERS
SQL>SELECTOWNER,TABLE_NAME,DEFAULT_DIRECTORY_NAME,ACCESS_PARAMETERS
2FROM
3DBA_EXTERNAL_TABLES;
OWNERTABLE_NAMEDEFAULT_DIRECTORY_NAMEACCESS_PARAMETERS
------------------------------------------------------------------------------
DEMOEXTTESTDIRRECORDSDELIMITEDBYNEWLINE
FIELDSTERMINATEDBY,
假如DBA想要晓得立体文件的地位,利用以下的查询:
SQL>descDBA_EXTERNAL_LOCATIONS;
称号
-----------------------------------------
OWNER
TABLE_NAME
LOCATION
DIRECTORY_OWNER
DIRECTORY_NAME
SQL>select*fromDBA_EXTERNAL_LOCATIONS;
OWNERTABLE_NAMELOCATIONDIRDIRECTORY_NAME
------------------------------------------------------------------------
DEMOEXT1.DATSYSTESTDIR
DEMOEXT2.DATSYSTESTDIR
参考文档:Oracle9iDatabaseAdministrationGuide
DBaaS并不意味着解决方案提供者要让自己失业。与其他系统一样,在实施DBaaS解决方案时,客户可能需要部署、迁移、支持、异地备份、系统集成和灾难恢复等方面的帮助。 我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过! 多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。 我个人认为就是孜孜不懈的学习 再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。 这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。 这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片? 我们学到了什么?思考问题的时候从表的角度来思考问 原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
页:
[1]