当前位置:文档之家› oracle外部表External table

oracle外部表External table

oracle外部表External table
oracle外部表External table

外部表External table

把一个普通的文本格式的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_PARAMETER S

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')

)

https://www.doczj.com/doc/6515306393.html,/html/200509/2005090516013200010796.html

甲骨文(Oracle)数据库的外部表(external tables ),作为一个平台文件,在支撑Oracl e 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 affec ts more than one row). As we noted before, the INSTEAD OF trigger is implici tly 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

, https://www.doczj.com/doc/6515306393.html,m 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文件:https://www.doczj.com/doc/6515306393.html,/node/848

create 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) ::阅读:(771次) :: Permanent lin k:: 引用(0)

re: 外部表External table [回复]

The following hypothetical SQL statements create an external table in the hr s chema named admin_ext_employees and load its data into the hr.employees t able.

CONNECT / AS SYSDBA;

-- Set up directories and grant access to hr

CREATE OR REPLACE DIRECTORY admin_dat_dir

AS '/flatfiles/data';

CREATE OR REPLACE DIRECTORY admin_log_dir

AS '/flatfiles/log';

CREATE OR REPLACE DIRECTORY admin_bad_dir

AS '/flatfiles/bad';

GRANT READ ON DIRECTORY admin_dat_dir TO hr;

GRANT WRITE ON DIRECTORY admin_log_dir TO hr;

GRANT WRITE ON DIRECTORY admin_bad_dir TO hr;

-- hr connects

CONNECT hr/hr

-- create the external table

CREATE TABLE admin_ext_employees

(employee_id NUMBER(4),

first_name VARCHAR2(20),

last_name VARCHAR2(25),

job_id VARCHAR2(10),

manager_id NUMBER(4),

hire_date DATE,

salary NUMBER(8,2),

commission_pct NUMBER(2,2),

department_id NUMBER(4),

email VARCHAR2(25)

)

ORGANIZATION EXTERNAL

(

TYPE ORACLE_LOADER

DEFAULT DIRECTORY admin_dat_dir

ACCESS PARAMETERS

(

records delimited by newline

badfile admin_bad_dir:'empxt%a_%p.bad'

logfile admin_log_dir:'empxt%a_%p.log'

fields terminated by ','

missing field values are null

( employee_id, first_name, last_name, job_id, manager_id,

hire_date char date_format date mask "dd-mon-yyyy",

salary, commission_pct, department_id, email

)

)

LOCATION ('empxt1.dat', 'empxt2.dat')

)

PARALLEL

REJECT LIMIT UNLIMITED;

-- enable parallel for loading (good if lots of data to load)

ALTER SESSION ENABLE PARALLEL DML;

-- load the data in hr employees table

INSERT INTO employees (employee_id, first_name, last_name, job_id, manage

r_id,

hire_date, salary, commission_pct, department_id, email) SELECT * FROM admin_ext_employees;

数据库及Oracle基础知识培训自学教材试题_V1 0

Oracle初级试题 一、选择题(20% 不定项每题2分) 1.对于Oracle用户方案下,根据模式/映像,请选出不属于模式的对象(D) A.表B.索引C.视图D.约束 2.在客户端配置哪个文件,可以使客户端访问oracle server?(A) A.tnsnames.ora B.sqlnet.ora C.listener.ora D.init.ora 3.搜索列中的数据,但只记得部分字符串,通常可以用以下哪种运算?(C) A.in B.between C.like D.exists 4.如从表中删除了一条记录,以下哪个语句可以保存数据库中的改变?(B) A.savepoint B.commit C.rollback D.update 5.下面关于视图的说法,请选出正确的(ABCD) A.一个视图可以创建为只读 B.一个视图可以用来连接两张或更多的表而被创建 C.在视图中不能含有order by子句 D.在视图中不能含有group by子句 6.在select语句中包含了where子句,请问group by子句可以放在哪里?(D) A.where子句前面 B.from子句前面 C.order by子句后面 D.where子句后面 7.关于having子句,以下说法正确的是:(C) A.having与where相同 B.having用于单行条件查询 C.having用于已分组的条件查询 D.having子句必须紧跟在where子句后面使用 8.能够在外部表上进行的操作有:(A) A.select B.update C.insert D.delete 9.在更改索引的操作(alter index)中,以下哪些子句可以定期优化索引?(AC) A.rename B.coalesce C.rebuild D.deallocate unused 10.请选出能够产生锁的操作:(AB) A.select … for update B.commit C.rollback D.lock table 二、填充题(20% 每空4分) 1.数据库最常用的DML操作有SELECT、UPDATE 、DELETE 和INSERT 等(要求写出操作命令)。 2.假设有两个数据N1和N2,请用函数实现如下算法:当N1>N2时,返回“大于”; 当N1=N2时,返回“等于”;当N1N2 then Return ‘大于’;

oracle常用命令及格式

oracle常用命令及格式 一:关于日志管理的 1.切换日志:sql> alter system switch logfile; 2.切换checkpoints:sql> alter system checkpoint; 3.增加日志组:sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo') size1m; 4.增加日志成员 sql> alter database add logfile member sql> '/disk3/log1b.rdo' to group 1, sql> '/disk4/log2b.rdo' to group 2; 5.改变日志文件名字或路径 sql> alter database rename file 'c:/oracle/oradata/oradb/re do01.log' sql> to 'c:/oracle/oradata/redo01.log'; (此处注意,那个文件路径的输入格式) 6.删除日志文件组:sql> alter database drop logfile group 3;

7.删除日志文件成员 sql> alter database drop logfile member 'c:/oracle/oradata/ redo01.log'; 8.清除日志文件内容 sql> alter database clear [unarchived] logfile 'c:/oracle/l og2a.rdo'; 二、关于表空间管理的 1.创建表空间 sql> create tablespace tablespace_name datafile 'c:\oracle\ oradata\file1.dbf' size100m, sql> 'c:\oracle\oradata\file2.dbf' size100mminimum extent 5 50k [logging/nologging] sql> default storage (initial 500k next 500k maxextents 500 pctinccease 0) sql> [online/offline] [permanent/temporary] [extent_managem ent_clause]

ORACLE AWR报告生成和分析

ORACLE AWR报告生成和分析 Automatic Workload Repository是10g引入的一个重要组件。在里面存贮着近期一段时间内,默认是7天,数据库活动状态的详细信息。 AWR报告是对AWR视图进行查询而得到的一份自动生成的报告。可以通过下面的脚本手工得到一份AWR报告。 exec dbms_workload_repository.create_snapshot; ... running the specified workload exec dbms_workload_repository.create_snapshot; @?/rdbms/admin/awrrpt 通过AWR和AWR报告,DBA可以容易地获知最近数据库的活动状态,数据库的各种性能指标的变化趋势曲线,最近数据库可能存在的异常,分析数据库可能存在的性能瓶颈从而对数据库进行优化。 AWR报告所有的数据来源于AWR视图,即以DBA_HIST_开头的所有系统表,Database Reference有对所有这些系统表的描述,这应该是Oracle官方对AWR报告的官方注释了。 而对于如何有效地去分析AWR报告,这可能更需要DBA经验的日积月累。 AWR的前身是Statspack,Statspack在10g和11g中也有提供,同时和AWR 一起做了同步更新,而且Statspack是公开源代码的,因此,关于Statspack的资料,还有Statspack的源代码,都是理解AWR的一个有用的辅助。 如果关注数据库的性能,那么当拿到一份AWR报告的时候,最想知道的第一件事情可能就是系统资源的利用情况了,而首当其冲的,就是CPU。 而细分起来,CPU可能指的是 ●OS级的User%, Sys%, Idle% ●DB所占OS CPU资源的Busy% ●DB CPU又可以分为前台所消耗的CPU和后台所消耗的CPU

ORACLE SQLPLUS 常用命令及解释

Oracle SQLPlus常用命令及解释 1.@ 执行位于指定脚本中的SQLPlus语句。可以从本地文件系统或Web服务器中调用脚本。可以为脚本中的变量传递值。在iSQL*Plus中只能从Web服务器中调用脚本。 2.@@ 执行位于指定脚本中的SQL*Plus语句。这个命令和@(“at”符号)命令功能差不多。在执行嵌套的命令文件时它很有用,因为它会在与调用它的命令文件相同的路径或url中查找指定的命令文件。在iSQL*Plus中只支持url形式。 3./ 执行保存在SQL缓冲区中的最近执行的SQL命令或PL/SQL块。在SQL*Plus命令行中,可在命令提示符或行号提示符使用斜线(/)。也可在iSQL*Plus的输入区中使用斜线(/)。斜线不会列出要执行的命令。 4.ACCEPT 可以修改既有变量,也可定义一个新变量并等待用户输入初始值,读取一行输入并保存到给出的用户变量中。ACCEPT在iSQL*Plus中不可用。 5.APPEND 把指定文本添加到SQL缓冲区中当前行的后面。如果text的最前面包含一个空格可在APPEND和text间输入两个空格。如果text的最后是一个分号,可在命令结尾输入两个分号(SQL*Plus会把单个的分号解释为一个命令结束符)。APPEND 在iSQL*Plus中不可用。 6.ARCHIVE LOG 查看和管理归档信息。启动或停止自动归档联机重做日志,手工(显示地)归档指定的重做日志,或者显示重做日志文件的信息。 7.ATTRIBUTE 为对象类型列的给定属性指定其显示特性,或者列出单个属性或所有属性的当前显示特性。 8.BREAK 分开重复列。指定报表中格式发生更改的位置和要执行的格式化动作(例如,在列值每次发生变化时跳过一行)。只输入BREAK而不包含任何子句可列出当前的BREAK定义。 9.BTITLE 在每个报表页的底部放置一个标题并对其格式化,或者列出当前BTITLE定义。

实验二、创建数据库及表、完整性约束

2.数据库设计 创建文件组,将分散储存的文件指定到同一文件组FILEGROUP下。将表的索引和表构建在同一个架构SCHEMA下,可以减小数据库表的大小,以提升表查询效率。 示例代码 sql> CREATE DATABASE 销售管理 ON PRIMARY ( NAME = SalesData, FILENAME = 'C:\DB\SalesData_1.mdf', SIZE = 50MB, MAXSIZE = UNLIMITED, FILEGROWTH = 20% ), ( NAME = SalesD, FILENAME = 'D:\DB\SalesData_2.ndf', SIZE = 50MB, MAXSIZE = UNLIMITED, FILEGROWTH = 10 MB ) LOG ON ( NAME = SalesLog, FILENAME = 'D:\DB\SalesLog.ldf', SIZE = 10MB, MAXSIZE = 50MB, FILEGROWTH = 10MB ) alter database 销售管理 add filegroup f1 alter database 销售管理 add file (NAME = SalesData,FILENAME = 'C:\DB\SalesData_1.mdf'), (NAME = SalesD,FILENAME = 'D:\DB\SalesData_2.ndf') to filegroup f1 CREATE SCHEMA Sales; GO; CREATE TABLE Sales.Region (Region_id int NOT NULL, Region_Name char(5) NOT NULL) WITH (DISTRIBUTION = REPLICATE); GO 3.为电话字段创建用户定义数据类型 sql>create type telephone from varchar(11) not null

linux上的sqlnet.ora限制IP访问

配置sqlnet.ora限制IP访问Oracle 与防火墙类似的功能,Oracle 提供限制与允许特定的IP或主机名通过Oracle Net来访问数据库。这个功能由sqlnet.ora配置文件来实 现。该文件通常$ORACLE_HOME/network/admin/ 目录下,与tnsnames.ora以及listener.ora位于同一路径。用法也比较简单。通过监听器的 限制,实现轻量级访问限制,比在数据库内部通过触发器进行限制效率要高。 1. 实现 通过在sqlnet.ora文件中增加下列记录来实现 tcp.validnode_checking = yes tcp.invited_nodes = (hostname1, hostname2,ip1,ip2) tcp.excluded_nodes = (10.103.11.17,hostname1,hostname2) 当使用invited_nodes时,则所有没有包含在invited_nodes值中的IP或主机将无法通过Oracel Net连接到数据库。而如果使用 excluded_nodes时,除了excluded_nodes值中列出的IP和主机不可访问之外,其余的节点都可以访问数据库。通常情况下,更倾向于使 用excluded_nodes参数。 2. 注意 使用excluded_nodes与invited_nodes的一些特性 不支持通配符的使用(如hostname不能写为svhs0*,IP地址不能写为 10.103.11.*) excluded_nodes与invited_nodes为互斥方式,要么使用前者,要么使用后者 如果tcp.invited_nodes与tcp.excluded_nodes都存在,则tcp.invited_nodes 优先 要将本地地址,或者Cluster群集其他节点的地址都加入到允许列表,否则监听器可能无法启动 修改之后,一定要重起监听或reload才能生效,而不需要重新启动数据库仅提供对TCP/IP协议的支持 3. 实战 -->使用tnsping demo92,连接正常 C:\>tnsping demo92 TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 25-JUN-2011 18:55:39

创建表与约束

1、数据的完整性:数据完整性是要求数据库中的数据具有准确性。准确性是通过数据库表的设计和约束来实现的。 A、实体完整性约束 实体完整性约束要求表中的每一行数据都反映不同的实体,不能在表中存在完全相同的数据行。 实现方法:索引、唯一约束、主键约束或标识列属性。 B、域完整性约束 域完整性约束是给定列的输入有效性。 实现方法:限制数据类型、检查约束、输入格式、外键约束、默认值、非空约束。 C、引用完整性 在输入或删除数据行时,引用完整性约束来保持表之间已经定义的关系。 在强制引用完整性时,SQL Server禁止用户进行下列操作: (1)当主表中没有关联的记录时,将记录添加到相关表中。 (2)更改主表中的值导致相关表中的记录孤立。 (3)从主表中删除记录,但仍存在与该记录匹配的相关记录。 实现方法:通过主键和外键之间的引用关系来实现。 D、自定义完整性约束

用户根据具体应用来定义特定的规则。如定义学生年龄必须在10到30之间。 实现方法:定义规则、存储过程或触发器 2、主键:一个表中只能有一个主键,主键保证了表中行的唯一性。一个表中可以没有主键,但一般会设置一个主键。 外键:外键是子表中对应的主键的列,外键强调了应用完整性。 3、检查约束也叫CHECK约束,用于定义列中可接受的数据或者格式,例如scores表中的score数值应当为0~100,如果不满足要求应当不允许输入。 方法:在设计scores表时,右击选择“CHECK约束”,在出现的对话框中单击“添加”按钮,添加一个新的约束。然后单击“表达式”右侧的小按钮,在弹出的“CHECK约束表达式”对话框中输入: 0<=score and score<=100 sno like ‘2009[1-9][1-9][1-9][1-9][1-9][1-9]’ SEmail LIKE ‘%@%’ Sage>=10 and Sage<=50 4、导入和导出数据:右击数据库,选择“任务”中的“导出数据”选项,在向导中选择数据库,单击“下一步”;输入文件名称并确定文件相关选项;选择是否用一条查询语

oracle数据库基本命令

oracle数据库基本命令 oracle安装后 sys:超级管理员(dba),默认密码为:change_on_install system:系统管理员(dbaoper),默认密码为:manager; sys与system的不同在于sys能够create datebase而system则不能。scott:普通用户,默认密码:tiger 1.切换用户:conn 用户名/密码; SQL> conn system/manager; Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 Connected as system SQL> conn sys/change_on_install as sysdba; Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 Connected as SYS 注意:sys与其他用户在命令窗口切换时的不同。 2.修改密码:passw username;(普通用户可以修改自己密码,管理员可以修改其他人的密码) 3.显示当前用户。show user; 4.断开数据库同时推出:exit; 文件操作 5.运行sql脚本,start d:\a.sql; 6.编辑指定的sql脚本。Edit d:\a.sql; 7.将屏幕上指定的内容输出到指定文本中去。spool e:\b.sql;执行语句;spool off;

8.显示设置环境变量; 可以用来控制输出的各种格式,如果希望永久保存可以修改glogin.sql脚本。 Linesize(行宽): show linesize;显示行宽 set linesize 90;设置行宽为90个字符。 Pagesize(页面大小): Show pagesize;显示页面大小 Set pagesize 180;设置页面的小。 (做报表时可以用。一页设定几行。)

实验一创建数据库及关系表数据完整性约束

一、实验目的 1.???掌握SQL Server 数据库管理系统的使用,能够在该环境中进行日常数据库操作; 2.???掌握在SQL Server 中使用图形化工具创建数据库的方法; 3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句; 4.掌握修改表结构的语句。 5.掌握数据完整性约束的功能。 二、实验内容和步骤 1.创建符合如下条件的数据库: 数据库的名字为:Students 数据文件的逻辑文件名为:Students_dat ,存放在用户盘某目录下; 文件的初始大小为:5MB增长方式为自动增长,每次增加1MB 实验结果: 2.在已建立的Students 数据库中,确定出各表中的数据类型,写出创建满足下述条件的四张表的SQL 语句,并查看执行结果。 实验结果: 3 .写出实现如下操作的SQL 语句,并查看执行结果: 1)在选课表中添加一个新的修课类别列:列名为:选课类别,类型为char (4) 2)将课程表中的学分列的类型改为:tinyint(微整型,取值范围在0?255)。3)删除学生表的专业列。 4) 为教师表添加主码约束,其主码列 为: 教师号。 实验结果: 4.在Students 数据库中,编写建立满足完整性要求的定义表的SQL 语句,执行并观察执行结果。 ( 1 )图书表,结构如下: 书号:统一字符编码定长类型,长度为6,主码,书名:统一字符编码可变长类型,长度为30 ,非空,第一作者:普通编码定长字符类型,长度为10,非空, 岀版日期:小日期时间型,小于等于当前系统日期,(用getdate()实现) 印刷数量:小整型,取值范围:1000?5000,默认为4000 , 价格:定点小数,小数部分一位,整数部分 3 位。 实验结果: ( 2 )书店表,结构如下:书店编号:统一字符编码定长类型,长度为6,主码,店名:统一字符编码可变长类型,长度为30,非空,电话:普通编码定长字符类型,12 位长,取值形式:010-8 位数字地址:普通编码可变长字符类型,40 位长。前两个字符必须是:北京。实验结果: ( 3 )图书销售表,结构如下: 书号:统一字符编码定长类型,长度为6,非空, 书店编号:统一字符编码定长类型,长度为6,非空,销售日 期:小日期时间型,非空,默认值为系统当前日期, 销售数量:微整型,取值大于0,主码(书号,书店编号,销售日期);书号为引用“图书表”的外码;书店编号为引用“书店表”的外码。 实验结果:

oracle外部表

外部表介绍 ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件。因此,建立外部表时不会产生段、区、数据块等存储结构,只有与表相关的定义放在数据字典中。外部表,顾名思义,存储在数据库外面的表。当存取时才能从ORACLE专属格式文件中取得数据,外部表仅供查询,不能对外部表的内容进行修改(INSERT、UPDATE、DELETE操作)。不能对外部表建立索引。因为创建索引就意味着要存在对应的索引记录。而外部表其实在没有存储在数据库中。故在外部是无法建立索引的。如果硬要建立的话,则系统会提示“操作在外部组织表上不受支持”的错误提示。 Notice: 外部表是ORACLE 9i后引入的。 外部表特征 (1)位于文件系统之中(一定要在数据库服务器中,而不是其它网络路径),按一定格式分割, 例如@#$等,文本文件或者其他类型的文件可以作为外部表。 (2)对外部表的访问可以通过SQL语句来完成,而不需要先将外部表中的数据装载进数据库中。 (3)外部数据表都是只读的,因此在外部表不能够执行DML操作,也不能创建索引。 (4) ANALYZE语句不支持采集外部表的统计数据,应该使用DMBS_STATS包来采集外部表的统计数据。 (5)可以查询操作和连接。也可以并行操作。 (6)数据在数据库的外部组织,是操作系统文件。 (7)操作系统文件在数据库中的标志是通过一个逻辑目录来映射的。 外部表范例: 1:创建目录对象并授权

从9i开始,ORACLE数据库若需要存取文件系统,就必须使用目录对象,以相对路径方式存取文件,强化数据库的安全性。建立目录对象、授予权限。 SQL>CREATE OR REPLACE DIRECTORY DUMP_DIR AS '/oradata/exterltab'; 给用户授予指定目录的操作权限 SQL>GRANT READ,WRITE ON DIRECTORY DUMP_DIR TO ETL; 2:创建外部表 我创建了一个平面文件作为测试用例,如下所示,总共5条记录,其中一条错误记录[oracle@DB-Server exterltab]$ more student.data 10001@#$kerry@#$male@#$28@#$1 10002@#$jimmy@#$male@#$22@#$1 10003@#$ken@#$male@#$21@#$1 10004@#$merry@#$femal@#$20@#$1 this is a bad file CREATE TABLE EXTER_TEST ( ID NUMBER(5) , NAME VARCHAR(12) , SEX VARCHAR(8) , AGE NUMBER(3) , GRADE NUMBER(1) ) ORGANIZATION EXTERNAL ( type oracle_loader default directory dump_dir access parameters ( records delimited by newline fields terminated by'@#$' ) location ('student.data') );

实验一创建数据库及关系表数据完整性约束

实验一创建数据库及关系表、数据完整性约束 一、实验目的 1.???掌握SQL Server数据库管理系统的使用,能够在该环境中进行日常数据库操作; 2.???掌握在SQL Server中使用图形化工具创建数据库的方法; 3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句; 4.掌握修改表结构的语句。 5.掌握数据完整性约束的功能。 二、实验内容和步骤 1.创建符合如下条件的数据库: 数据库的名字为:Students 数据文件的逻辑文件名为:Students_dat,存放在用户盘某目录下; 文件的初始大小为:5MB;增长方式为自动增长,每次增加1MB。 实验结果: 2.在已建立的Students数据库中,确定出各表中的数据类型,写出创建满足下述条件的四张表的SQL 语句,并查看执行结果。 实验结果: 3.写出实现如下操作的SQL语句,并查看执行结果: (1)在选课表中添加一个新的修课类别列:列名为:选课类别,类型为char(4)。 (2)将课程表中的学分列的类型改为:tinyint(微整型,取值范围在0~255)。 (3)删除学生表的专业列。 (4)为教师表添加主码约束,其主码列为:教师号。 实验结果: 4.在Students数据库中,编写建立满足完整性要求的定义表的SQL语句,执行并观察执行结果。(1)图书表,结构如下: 书号:统一字符编码定长类型,长度为6,主码, 书名:统一字符编码可变长类型,长度为30,非空, 第一作者:普通编码定长字符类型,长度为10,非空, 出版日期:小日期时间型,小于等于当前系统日期,(用getdate()实现) 印刷数量:小整型,取值范围:1000~5000,默认为4000, 价格:定点小数,小数部分一位,整数部分3位。 实验结果: (2)书店表,结构如下: 书店编号:统一字符编码定长类型,长度为6,主码, 店名:统一字符编码可变长类型,长度为30,非空, 电话:普通编码定长字符类型,12位长,取值形式:010-8位数字 地址:普通编码可变长字符类型,40位长。前两个字符必须是:北京。 实验结果: (3)图书销售表,结构如下: 书号:统一字符编码定长类型,长度为6,非空, 书店编号:统一字符编码定长类型,长度为6,非空,

java工程师课程

课程内容: 一、WEB网页开发 1、HTML语言介绍和标记 2、HTML标记和CSS样式 3、CSS样式属性介绍 4、JAVA Script基础 5、JAVA Script对象 二、Java面向对象编程 1、Java工作原理 2、Java开发环境的搭建 3、标识符、关键字和数据类型 4、运算符号与表示式 5、流程控制 6、数组 7、面对对象的概念 8、类和对象 9、封装和访问控制 10、继承 11、多态 12、抽象类 13、接口 14、嵌套类 15、匿名内部类 16、面向对象与例子 17、异常处理 18、文件系统 19、字节流字符流的转换 20、字节流 21、字符集编码 22、对象流、压缩流、和随机访问流 23、枚举类型 24、集合类 25、多线程 26、AWT和SWING 27、鼠标事件和键盘事件 28、高级组件 29、Eclipse使用 30、Applet 31、网络编程 32、Java安全与反射 33、Java工具类增补 34、MYSQL的应用 35、SQL语句 36、PD数据库设计工具 37、JDBC 三、Java Web开发技术 1、WTP的安装与使用 2、Servlet与Servlet容器 3、Tomcat的安装与使用 4、Servlet容器Servlet API 5、HTTP通信协议 6、web浏览器与HIIP方法 7、Httpservlet与请求处理 8、Http请求分析与响应分析 9、Servlet生命周期 10、ServletConfig分析 11、ServletContext分析 12、请求传送(ServletRequest) 13、web应用与部署 14、监听器 15、过滤器基础 16、过滤器配置 17、过滤器应用与实例 18、使用URL重写管理会话 19、WEB应用安全 20、BASIC验证机制 21、DIGEST验证机制 22、FORM验证机制 23、SERVLETCONTEXT分析 24、SERVLET异常处理机制 25、SERVLET综合应用实例 26、JSP初探 27、JSP标准指令 28、JSP程序代码元素 29、JSP标准动作元素 30、JSP隐含变量 31、JSP与JAVABEAN 32、JSP异常处理机制 33、JSP静态、动态复用 34、自定义标签及其生命周期 35、标签库综合应用实例 36、JSP+SERVLET+JSTL+EL综合应用实例 37、设计模式初探 38、SCWCD涉及的设计模式 四、SSH集成开发技术 1、Oracle的基础 2、PLSQL 3、多表级联 4、JDBC高级数据库编程 5、XML基础 6、XML校验 7、XML解析 8、Struts入门介绍 9、Struts配置 10、Struts国际化 11、Struts验证框架 12、Struts异常处理 13、Struts标签库 14、Struts Tiles框架 15、综合应用实例 16、Web Work介绍 17、Struts2.0介绍 18、Hibernate入门介绍 19、Hibernate配置 20、Hibernate关联关系映射 21、Hibernate事务 22、Hibernate缓存 23、Hibernate高级配置 24、Spring入门介绍 25、Spring Bean和Beanfactory 26、Spring IOC 27、Spring AOP 28、Spring整合Struts 29、Spring+Struts应用实例 30、Spring整合Hibernate 31、声明式事务处理 32、Spring+Hibernate应用实例 33、Spring+Hibernate+Hibernate集成配 置 五、Oracle数据库管理技术 1、Oracle Database 10g:SQL 1)SQL语句的方式 2)基本SQL Select语句 3)过滤和排序 4)单行函数 5)多表查询 6)组函数 7)子查询 8)利用变量交互查询 9)创建和管理表 10)约束介绍 11)创建和管理视图 12)创建和管理序列 13)创建和管理索引 14)创建和管理同义词 15)控制用户访问 16)SET操作符 17)GROUP BY子句的增强 18)高级子查询 19)层次查询 20)Oracle外部表 2、Oracle Database 10g:PL/SQL 1)PL/SQL介绍 2)PL/SQL语句块结构 3)开发和运行环境 4)PL/SQL变量类型 5)变量声明 6)SQL控制结构 7)PL/SQL中的SQL 8)游标 9)错误处理 10)集合 11)创建过程、函数和包 12)创建和管理触发器 3、Oracle Database 10g Administration Workshop I 1)安装Oracle Database 10G软件 2)创建Oracle数据库 3)数据库接口 4)控制数据库 5)存储结构 6)管理用户 7)管理模式对象 8)管理数据 9)PL/SQL 10)Oracle 数据库安全性 11)Oracle Net Services 12)Oracle 共享服务器 13)性能监控 14)积极维护:目标 15)监控和管理撤消 16)监控和解决锁冲突 17)备份和恢复的概念 18)数据库备份 19)数据库恢复 4、Oracle Database 10g Administration Workshop II 1)使用全球化支持 2)确保Oracle 监听程序的安全性 3)启用分布式事务处理 4)配置Recovery Manager 5)使用Recovery Manager 6)诊断来源 7)从非关键性数据丢失中恢复 8)不完全恢复 9)闪回数据库 10)从用户错误中恢复 11)处理数据库损坏 12)优化Oracle 数据库 13)实施物化图 14)管理资源 15)使用计划程序自动执行任务 16)高级工具和技术 5、Oracle Database 10g 数据库Java开发 1)利用JDeveloper 10g进行工程开发 2)JDeveloper 10g中利用JDBC访问数据 库实例 3)利用JDeveloper 10g开发SQL、PL/SQL 和SQLJ 4)利用Java开发存储过程 5)基于JDeveloper 10g的Web应用开发 六、J2EE高级开发技术 1、UML 2、Webservice 3、J2EE设计模式 4、Weblogic开发 5、Jboss开发 6、会话Bean 7、实体Bean 8、消息Bean 9、J2EE服务 10、AJAX

Oracle 处理外部表错误

Oracle 处理外部表错误 在将数据文件中的数据转换为表中列数据时,不可避免会现一些错误。当出现错误时,用户就需要收集错误信息,从中找到导致出现错误的原因并加以纠正。在创建外部表时,关于错误处理的子句包括:REJECT LIMIT、BADFILE和LOGFILE子句。 1.REJECT LIMIT子句 如果在创建外部表时,使用了REJECT LIMIT子句,则在将数据文件中的数据转换为表定义的列数据期间,数据库将允许出现特定数量的错误。如果用户在执行一个查询,而Oracle遇到了超过这个转换数量的错误,那么查询将会失败。 在默认情况下,REJECT LIMIT子句指定的数值为0。可以使用REJECT LIMIT子句设置允许出现的错误数为UNLIMITED,这样查询就不会失败。如果外部数据文件中的所有记录都由于转换错误而失败,那么查询这个外部表时将返回0行。 例如,在下面的示例中将重新创建的外部表EMPLOYEES_EXTERNAL,并在指定字段分隔符时使用分号“;”,很显然这在转换数据时将发生错误。但是,由于在其中使用了REJECT LIMIT子句指定错误数为无限UNLIMITED,所以要成功创建外部表: SQL> create table ext_emp 2 ( … ) 10 organization external 11 (type oracle_loader 12 default directory exterior_data 13 access parameters( 14 records delimited by newline 15 fields terminated by ',') 16 location('employees.csv')); 17 reject limit unlimited; 表已创建。 虽然忽略了在创建外部表时发生的错误,但是,这意味着Oracle可能无法读取数据文件中的数据。如果这时用户使用SELECT语句查询该外部表,则无法返回正常的数据。 2.BADFILE和NOBADFILE子句 当读取外部表的数据文件时,数据库可能会遇到数据类型转换错误,不能够将源文件转换成数据库中为外部表定义的列。这时可以在创建外部表时使用了BADFILE子句,将所有不能转换的数值都会被写入BADFILE指定的文件中。 SQL> create table ext_emp 2 (empno number(4), … 9 deptno number(3)) 10 organization external 11 (type oracle_loader 12 default directory exterior_data

oracle常用命令大全和环境变量路径

Oracle 命令大全 底部为环境变量配置路径。 1 运行SQLPLUS工具 sqlplus 2 以OS的默认身份连接 / as sysdba 3 显示当前用户名 show user 4 直接进入SQLPLUS命令提示符 sqlplus /nolog 5 在命令提示符以OS身份连接 connect / as sysdba 6 以SYSTEM的身份连接 connect system/xxxxxxx@服务名 7 显示当然用户有哪些表 select * from tab; 8 显示有用户名和帐户的状态 select username,account_status from dba_users; 9 将SCOTT帐号解锁(加锁) alter user scott account unlock(lock); 10 以SCOTT的身份连接并且查看所属表 connect scott/tiger select * from tab; 11 查看EMP的表结构及记录内容 desc emp select empno,ename from emp; 12 以OS的身份登看SGA,共享池,CACHE的信息 connect / as sysdba show sga select name,value/1024/1024 from v$sga; show parameter shared_pool_size select value/1024/1024 from v$parameter where name ='shared_pool_size';

show parameter db_cache_size select value/1024/1024 from v$parameter where name ='db_cache_size'; 13 查看所有含有SIZE的信息 show parameter size bitmap_merge_area_size integer 1048576 create_bitmap_area_size integer 8388608 db_16k_cache_size big integer 0 db_2k_cache_size big integer 0 db_32k_cache_size big integer 0 db_4k_cache_size big integer 0 db_8k_cache_size big integer 0 db_block_size integer 4096 db_cache_size big integer 33554432 db_keep_cache_size big integer 0 db_recycle_cache_size big integer 0 NAME TYPE V ALUE ------------------------------------ ----------- ------------- global_context_pool_size string hash_area_size integer 1048576 java_max_sessionspace_size integer 0 java_pool_size big integer 33554432 large_pool_size big integer 8388608 max_dump_file_size string UNLIMITED object_cache_max_size_percent integer 10 object_cache_optimal_size integer 102400 olap_page_pool_size integer 33554432 oracle_trace_collection_size integer 5242880 parallel_execution_message_size integer 2148 NAME TYPE V ALUE ------------------------------------ ----------- ------------- sga_max_size big integer 143727516 shared_pool_reserved_size big integer 2516582 shared_pool_size big integer 50331648 sort_area_retained_size integer 0 sort_area_size integer 524288 workarea_size_policy string AUTO 14 显示SGA的信息 select * from v$sgastat; POOL NAME BYTES

实验七完整性约束的创建

实验七完整性约束的创建 一、实验目的 理解数据库完整性约束的概念,掌握SQL Server 2008的完整性约束的类型及相应的创建技术。 二、实验内容 1、定义和管理主键约束。 2、定义和管理唯一性约束。 3、定义和管理检查约束。 4、定义和管理外键约束。 5、定义和管理默认值约束。 三、实验指导 在关系数据库中,实体完整性约束、参照完整性约束和域完整性约束是必须满足的完整性约束条件。在SQL Server中,通过建立“约束”等措施来实现数据完整性约束,约束包括:主键(PRIMARY KEY)约束、唯一性(UNIQUE)约束、检查(CHECK)约束、默认值(DEFAULT)约束和外键(FOREIGN KEY)约束。约束的建立可以通过对象资源管理器进行操作,也可以利用T-SQL语句进行设置。 (一)主键(PRIMARY KEY)约束 主键约束指在表中定义一个主键来唯一标识表中每一行数据。 1、在SQL Server Management Studio中设置和修改主键 在表设计器中,单击要定义为主键的列的行选择器(如果要选择多列,在单击其他列的行选择器时按住Ctrl键)。然后右键单击该列的行选择器,选择“设置主键”命令,自动创建名为“PK_”(后跟表名)的主键索引。如图7.1所示。 2、利用T-SQL语句定义和修改主键 实验7.1 在教学管理数据库JXGL中创建学生表S的同时定义主键。 在数据库引擎查询文档中输入以下语句: USE JXGL GO CREATE TABLE S (

Sno char(8) PRIMARY KEY, Sname char(8), Sex char(2), Sage smallint, Sdept varchar(50) ) GO 注意:如果要设置多列的组合为主键,需要把主键定义为表级完整性约束。 图7.1 利用表设计器管理主键 实验7.2 在定义数据表S时没有定义主键,则需要添加主键。 在数据库引擎查询文档中输入以下语句: USE JXGL GO ALTER TABLE S ADD CONSTRAINT PK_Sno PRIMARY KEY clustered(Sno) GO 单击“执行”按钮则执行该程序段,这样就创建了名字为PK_Sno的主键。(二)唯一性(UNIQUE)约束

Oracle查询语句基本命令一

oracle查询语句大全--基本命令大全一 1.create user username identified by password;//建用户名和密码oracle ,oracle 2.grant connect,resource,dba to username;//授权grant connect,resource,dba,sysdba to username; 3.connect username/password//进入。 4.select table_name,column_name from user_tab_columns where table_name='mview_log';//查询表中的表名,字段名等等。 5. 如何执行脚本SQL文件? SQL>@PATH/filename.sql; 6.Oracle oledb 提供者在command中执行多条SQL语句与SQL SERVER有少许差别,SQL Server只需使用";"分割多条SQL语句,而Oracle需要遵守ORACLE调用规范,即除分号分割外,还需以begin /end;包围语句体. 使用C#描述应如下所示: https://www.doczj.com/doc/6515306393.html,mandText = "begin INSERT INTO GROUP_INFO (GROUP_ID, GROUP_NAME) V ALUES (1, \'2\'); INSERT INTO GROUP_INFO(GROUP_ID, GROUP_NAME) V ALUES (2, \'2\'); end;"; 7.查询用户下的表的信息select distinct table_name from user_tab_columns; 8.如何搜索出前N条记录?Select a.*,rownum from (select * from cardkind order by cardkind ) a where rownum show user 3、查看系统拥有哪些用户SQL> select * from all_users; 4、新建用户并授权 SQL> create user a identified by a;(默认建在SYSTEM表空间下) SQL> grant connect,resource to a; 5、连接到新用户SQL> conn a/a

相关主题
文本预览
相关文档 最新文档