oracle中kill掉锁定对象Word文件下载.docx
- 文档编号:6795328
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:40
- 大小:30.77KB
oracle中kill掉锁定对象Word文件下载.docx
《oracle中kill掉锁定对象Word文件下载.docx》由会员分享,可在线阅读,更多相关《oracle中kill掉锁定对象Word文件下载.docx(40页珍藏版)》请在冰点文库上搜索。
0005,uvwx,
当数据是可变格式(长度不一样)时且是在文件中得到时,要用INFILE"
varn"
。
如:
var3"
009hello,cd,010world,im,
012my,nameis,
1.4坏文件
坏文件包含那些被SQL*Loader拒绝的记录。
被拒绝的记录可能是不符合要求的记录。
坏文件的名字由SQL*Loader命令的BADFILE参数来给定。
1.5日志文件及日志信息
当SQL*Loader开始执行后,它就自动建立日志文件。
日志文件包含有加载的总结,加载中的错误信息等。
控制文件语法
控制文件的格式如下:
OPTIONS({[SKIP=integer][LOAD=integer]
[ERRORS=integer][ROWS=integer]
[BINDSIZE=integer][SILENT=(ALL|FEEDBACK|ERROR|DISCARD)])
LOAD[DATA]
[{INFILE|INDDN}{file|*}
[STREAM|RECORD|FIXEDlength[BLOCKSIZEsize]|
VARIABLE[length]]
[{BADFILE|BADDN}file]
{DISCARDS|DISCARDMAX}integr]
[{INDDN|INFILE}...]
[APPEND|REPLACE|INSERT]
[RECLENTinteger]
[{CONCATENATEinteger|
CONTINUEIF{[THIS|NEXT](start[:
end])LAST}
Operator{'
string'
|X'
hex'
}}]
INTOTABLE[user.]table
[APPEND|REPLACE|INSERT]
[WHENcondition[ANDcondition]...]
[FIELDS[delimiter]]
(
column{
RECNUM|CONSTANTvalue|
SEQUENCE({integer|MAX|COUNT}[,increment])|
[POSITION({start[end]|*[+integer]}
)]
datatype
[TERMINATED[BY]{WHITESPACE|[X]'
character'
}]
[[OPTIONALLY]ENCLOSE[BY][X]'
charcter'
]
[NULLIFcondition]
[DEFAULTIFcondotion]
}
[,...]
)
[INTOTABLE...]
[BEGINDATA]
1)要加载的数据文件:
1.INFILE和INDDN是同义词,它们后面都是要加载的数据文件。
如果用*则表示数据就在控制文件内。
在INFILE后可以跟几个文件。
2.STRAM表示一次读一个字节的数据。
新行代表新物理记录(逻辑记录可由几个物理记录组成)。
3.RECORD使用宿主操作系统文件及记录管理系统。
如果数据在控制文件中则使用这种方法。
3.FIXEDlength要读的记录长度为length字节,
4.VARIABLE被读的记录中前两个字节包含的长度,length记录可能的长度。
缺省为8k字节。
5.BADFILE和BADDN同义。
Oracle不能加载数据到数据库的那些记录。
6.DISCARDFILE和DISCARDDN是同义词。
记录没有通过的数据。
7.DISCARDS和DISCARDMAX是同义词。
Integer为最大放弃的文件个数。
2)加载的方法:
1.APPEND给表添加行。
2.INSERT给空表增加行(如果表中有记录则退出)。
3.REPLACE先清空表在加载数据。
4.RECLEN用于两种情况,1)SQLLDR不能自动计算记录长度,2)或用户想看坏文件的完整记录时。
对于后一种,Oracle只能按常规把坏记录部分写到错误的地方。
如果看整条记录,则可以将整条记录写到坏文件中。
3)指定最大的记录长度:
1.CONCATENATE允许用户设定一个整数,表示要组合逻辑记录的数目。
4)建立逻辑记录:
1.THIS检查当前记录条件,如果为真则连接下一个记录。
2.NEXT检查下一个记录条件。
如果为真,则连接下一个记录到当前记录来。
2.Start:
end表示要检查在THIS或NEXT字串是否存在继续串的列,以确定是否进行连接。
continueifnext(1-3)='
WAG'
或continueifnext(1-3)=X'
0d03if'
5)指定要加载的表:
1.INTOTABLE要加的表名。
2.WHEN和selectWHERE类似。
用来检查记录的情况,如:
when(3-5)='
SSM'
and(22)='
*"
6)介绍并括起记录中的字段:
1.FIELDS给出记录中字段的分隔符,FIELDS格式为:
FIELDS[TERMIALED[BY]{WHITESPACE|[X]'
}]
[[OPTIONALLY]ENCLOSE[BY][X]'
]
TERMINATED读完前一个字段即开始读下一个字段直到介绍。
WHITESPACE是指结束符是空格的意思。
包括空格、Tab、换行符、换页符及回车符。
如果是要判断但字符,可以用单引号括起,如X'
1B'
等。
OPTIONALLYENCLOSED表示数据应由特殊字符括起来。
也可以括在TERMINATED字符内。
使用OPTIONALLY要同时用TERMINLATED。
ENCLOSED指两个分界符内的数据。
如果同时用ENCLOSED和TERMINAED,则它们的顺序决定计算的顺序。
7)定义列:
column是表列名。
列的取值可以是:
BECHUM表示逻辑记录数。
第一个记录为1,第2个记录为2。
CONSTANT表示赋予常数。
SEQUENCE表示序列可以从任意序号开始,格式为:
SEQUENCE({integer|MAX|COUNT}[,increment]
POSITION给出列在逻辑记录中的位置。
可以是绝对的,或相对前一列的值。
格式为:
POSITION({start[end]|*[+integer]})
Start开始位置
*表示前字段之后立刻开始。
+从前列开始向后条的位置数。
8)定义数据类型:
可以定义14种数据类型:
CHAR
DATE
DECIMALEXTERNAL
DECIMAL
DOUBLE
FLOAT
FLOATEXTERNAL
GRAPHICEXTERNAL
INTEGER
INTEGEREXTERNAL
SMALLINT
VARCHAR
VARGRAPHIC
1.字符类型数据
CHAR[(length)][delimiter]
length缺省为1.
2.日期类型数据
DATE[(length)]['
date_format'
[delimiter]
使用to_date函数来限制。
3.字符格式中的十进制
DECIMALEXTERNAL[(length)][delimiter]
用于常规格式的十进制数(不是二进制=>
一个位等于一个bit)。
4.压缩十进制格式数据
DECIMAL(digtial[,divcision])
5.双精度符点二进制
6.普通符点二进制
7.字符格式符点数
FLOATEXTERNAL[(length)][delimiter]
8.双字节字符串数据
GRAPHIC[(legth)]
9.双字节字符串数据
GRAPHICEXTERNAL[(legth)]
10.常规全字二进制整数
11.字符格式整数
12.常规全字二进制数据
13.可变长度字符串
14.可变双字节字符串数据
2.2写控制文件CTL
1.各数据文件的文件名;
2.各数据文件格式;
3.各数据文件里各数据记录字段的属性;
4.接受数据的ORACLE表列的属性;
5.数据定义;
6.其它
数据文件的要求:
数据类型的指定
CHAR字符型
INTEGEREXTERNAL整型
DECIMALEXTERNAL浮点型
3.1数据文件的内容
可以在OS下的一个文件;
或跟在控制文件下的具体数据。
数据文件可以是:
1、二进制与字符格式:
LOADER可以把二进制文件读(当成字符读)列表中
2、固定格式:
记录中的数据、数据类型、数据长度固定。
3、可变格式:
每个记录至少有一个可变长数据字段,一个记录可以是一个连续的字符串。
数据段的分界(如姓名、年龄)如用“,”作字段的分;
用,"
’作数据
括号等
4、LOADER可以使用多个连续字段的物理记录组成一个逻辑记录,记录文件运行情况文件:
包括以下内容:
1、运行日期:
软件版本号
2、全部输入,输出文件名;
对命令行的展示信息,补充信息,
3、对每个装入信息报告:
如表名,装入情况;
对初始装入,加截入或更新装
入的选择情况,栏信息
4、数据错误报告:
错误码;
放弃记录报告
5、每个装X报告:
装入行;
装入行数,可能跳过行数;
可能拒绝行数;
可能放
弃行数等
6、统计概要:
使用空间(包大小,长度);
读入记录数,装入记录数,跳过记
录数;
拒绝记录数,放弃记录数;
运行时间等。
==========================================================================================================
sqlload的一点小总结
sqlldruserid=lgone/tigercontrol=a.ctl
LOADDATA
INFILE'
t.dat'
//要导入的文件
//INFILE'
tt.date'
//导入多个文件
//INFILE*//要导入的内容就在control文件里下面的BEGINDATA后面就是导入的内容
INTOTABLEtable_name//指定装入的表
BADFILE'
c:
\bad.txt'
//指定坏文件地址
*************以下是4种装入表的方式
APPEND//原先的表有数据就加在后面
//INSERT//装载空表如果原先的表有数据sqlloader会停止默认值
//REPLACE//原先的表有数据原先的数据会全部删除
//TRUNCATE//指定的内容和replace的相同会用truncate语句删除现存数据
*************指定的TERMINATED可以在表的开头也可在表的内部字段部分
FIELDSTERMINATEDBY'
OPTIONALLYENCLOSEDBY'
//装载这种数据:
10,lg,"
lg"
"
lg,lg"
//在表中结果:
10lg"
lg,lg
//TERMINATEDBYX'
09'
//以十六进制格式'
表示的
//TERMINATEDBYWRITESPACE//装载这种数据:
10lglg
TRAILINGNULLCOLS*************表的字段没有对应的值时允许为空
*************下面是表的字段
(
col_1,col_2,col_fillerFILLER//FILLER关键字此列的数值不会被装载
//如:
lg,lg,not结果lglg
)
//当没声明FIELDSTERMINATEDBY'
时
//(
//col_1[intergerexternal]TERMINATEDBY'
//col_2[date"
dd-mon-yyy"
]TERMINATEDBY'
//col_3[char]TERMINATEDBY'
lg'
//)
用位置告诉字段装载数据
//col_1position(1:
2),
//col_2position(3:
10),
//col_3position(*:
16),//这个字段的开始位置在前一字段的结束位置
//col_4position(1:
16),
//col_5position(3:
10)char(8)//指定字段的类型
BEGINDATA//对应开始的INFILE*要导入的内容就在control文件里
10,Sql,what
20,lg,show
=====================================================================================
////////////注意begindata后的数值前面不能有空格
1*****普通装载
INFILE*
INTOTABLEDEPT
REPLACE
(DEPTNO,
DNAME,
LOC
BEGINDATA
10,Sales,"
USA"
20,Accounting,"
Virginia,USA"
30,Consulting,Virginia
40,Finance,Virginia
50,"
Finance"
Virginia//loc列将为空
60,"
,Virginia//loc列将为空
2*****FIELDSTERMINATEDBYWHITESPACE和FIELDSTERMINATEDBYx'
的情况
FIELDSTERMINATEDBYWHITESPACE
--FIELDSTERMINATEDBYx'
10SalesVirginia
3*****指定不装载那一列
(DEPTNO,
FILLER_1FILLER,//下面的"
SomethingNotToBeLoaded"
将不会被装载
20,SomethingNotToBeLoaded,Accounting,"
4*****position的列子
(DEPTNOposition(1:
DNAMEposition(*:
LOCposition(*:
29),
ENTIRE_LINEposition(1:
29)
10AccountingVirginia,USA
5*****使用函数日期的一种表达TRAILINGNULLCOLS的使用
TRAILINGNULLCOLS//其实下面的ENTIRE_LINE在BEGINDATA后面的数据中是没有直接对应
//的列的值的如果第一行改为10,Sales,Virginia,1/5/2000,,就不用TRAILINGNULLCOLS了
DNAME"
upper(:
dname)"
//使用函数
LOC"
loc)"
LAST_UPDATEDdate'
dd/mm/yyyy'
//日期的一种表达方式还有'
dd-mon-yyyy'
等
ENTIRE_LINE"
:
deptno||:
dname||:
loc||:
last_updated"
10,Sales,Virginia,1/5/2000
20,Accounting,Virginia,21/6/1999
30,Consulting,Virginia,5/1/2000
40,Finance,Virginia,15/3/2001
6*****使用自定义的函数//解决的时间问题
createorreplace
functionmy_to_date(p_stringinvarchar2)returndate
as
typefmtArrayistableofvarchar2(25);
l_fmtsfmtArray:
=fmtArray('
'
dd-month-yyyy'
dd/mm/yyyyhh24:
mi:
ss'
);
l_returndate;
begin
foriin1..l_fmts.count
loop
l_return:
=to_date(p_string,l_fmts(i));
exception
whenothersthennull;
end;
EXITwhenl_returnisnotnull;
endloop;
if(l_returnisnull)
then
=
new_time(to_date('
01011970'
ddmmyyyy'
)+1/24/60/60*
p_string,'
GMT'
EST'
endif;
returnl_return;
/
TRAILINGNULLCOLS
LAST_UPDATED"
my_to_date(:
last_updated)"
//使用自定义的函数
10,Sales,Virginia,01-april-2001
20,Accounting,Virginia,13/04/2001
30,Consulting,Virginia,14/04/200112:
02:
02
40,Finance,Virginia,987268297
50,Finance,Virginia,02-apr-2001
60,Finance,Virginia,Notadate
7*****合并多行记录为一行记录
concatenate3//通过关键字concatenate把几行的记录看成一行记录
replace
10,Sales,//其实这3行看成一行10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle kill 锁定 对象