oracle sqlldr 回车,oracle sqlldr控制文件模板

47418366_1.gif1

47418366_2.gifSqlldr userid=lgone/tiger control=a.ctl 

2

47418366_2.gifLOAD DATA 

3

47418366_2.gifINFILE 't.dat' //要导入的文件447418366_2.gif//INFILE 'tt.date'//导入多个文件547418366_2.gif//INFILE *//要导入的内容就在control文件里 下面的BEGINDATA后面就是导入的内容, *和't.dat'不能同时存在647418366_2.gif

7

47418366_2.gifINTO TABLE table_name //指定装入的表847418366_2.gifBADFILE 'c:bad.txt' //指定坏文件地址947418366_2.gif

10

47418366_2.gif************* 以下是4种装入表的方式 

11

47418366_2.gifAPPEND //原先的表有数据 就加在后面1247418366_2.gif//INSERT//装载空表 如果原先的表有数据 sqlloader会停止 默认值1347418366_2.gif//REPLACE//原先的表有数据 原先的数据会全部删除1447418366_2.gif//TRUNCATE//指定的内容和replace的相同 会用truncate语句删除现存数据1547418366_2.gif

16

47418366_2.gif************* 指定的TERMINATED可以在表的开头 也可在表的内部字段部分 

17

47418366_2.gifFIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 

18

47418366_2.gif//装载这种数据: 10,lg,"""lg""","lg,lg"1947418366_2.gif//在表中结果: 10 lg "lg" lg,lg2047418366_2.gif//TERMINATED BY X '09'//以十六进制格式 '09' 表示的2147418366_2.gif//TERMINATED BY WRITESPACE//装载这种数据: 10 lg lg2247418366_2.gif

23

47418366_2.gifTRAILING NULLCOLS ************* 表的字段没有对应的值时允许为空 

24

47418366_2.gif

25

47418366_2.gif************* 下面是表的字段 

26

47418366_2.gif

27

47418366_2.gifcol_1 , col_2 ,col_filler FILLER //FILLER 关键字 此列的数值不会被装载2847418366_2.gif//如: lg,lg,not 结果 lg lg2947418366_2.gif

30

47418366_2.gif//当没声明FIELDS TERMINATED BY ',' 时3147418366_2.gif//(3247418366_2.gif//col_1 [interger external] TERMINATED BY ',' ,3347418366_2.gif//col_2 [date "dd-mon-yyy"] TERMINATED BY ',' ,3447418366_2.gif//col_3 [char] TERMINATED BY ',' OPTIONALLY ENCLOSED BY 'lg'3547418366_2.gif//)3647418366_2.gif//当没声明FIELDS TERMINATED BY ','用位置告诉字段装载数据3747418366_2.gif//(3847418366_2.gif//col_1 position(1:2),3947418366_2.gif//col_2 position(3:10),4047418366_2.gif//col_3 position(*:16),//这个字段的开始位置在前一字段的结束位置4147418366_2.gif//col_4 position(1:16),4247418366_2.gif//col_5 position(3:10) char(8)//指定字段的类型4347418366_2.gif//)4447418366_2.gif

45

47418366_2.gifBEGINDATA //对应开始的 INFILE * 要导入的内容就在control文件里4647418366_2.gif10,Sql,what 

47

47418366_2.gif20,lg,show 

48

47418366_2.gif

49

47418366_2.gif===================================================================================== 

50

47418366_3.gif注意begindata后的数值前面不能有空格

51

47418366_2.gif

52

47418366_2.gif1 ***** 普通装载 

53

47418366_2.gifLOAD DATA 

54

47418366_2.gifINFILE * 

55

47418366_2.gifINTO TABLE DEPT 

56

47418366_2.gifREPLACE 

57

47418366_2.gifFIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 

58

47418366_2.gif(DEPTNO, 

59

47418366_2.gifDNAME, 

60

47418366_2.gifLOC 

61

47418366_2.gif

62

47418366_2.gifBEGINDATA 

63

47418366_2.gif10,Sales,"""USA""" 

64

47418366_2.gif20,Accounting,"Virginia,USA" 

65

47418366_2.gif30,Consulting,Virginia 

66

47418366_2.gif40,Finance,Virginia 

67

47418366_2.gif50,"Finance","",Virginia //loc 列将为空6847418366_2.gif60,"Finance",,Virginia //loc 列将为空6947418366_2.gif

70

47418366_2.gif2 ***** FIELDS TERMINATED BY WHITESPACE 和 FIELDS TERMINATED BY x'09' 的情况 

71

47418366_2.gifLOAD DATA 

72

47418366_2.gifINFILE * 

73

47418366_2.gifINTO TABLE DEPT 

74

47418366_2.gifREPLACE 

75

47418366_2.gifFIELDS TERMINATED BY WHITESPACE 

76

47418366_2.gif-- FIELDS TERMINATED BY x'09' 

77

47418366_2.gif(DEPTNO, 

78

47418366_2.gifDNAME, 

79

47418366_2.gifLOC 

80

47418366_2.gif

81

47418366_2.gifBEGINDATA 

82

47418366_2.gif10 Sales Virginia 

83

47418366_2.gif

84

47418366_2.gif3 ***** 指定不装载那一列 

85

47418366_2.gifLOAD DATA 

86

47418366_2.gifINFILE * 

87

47418366_2.gifINTO TABLE DEPT 

88

47418366_2.gifREPLACE 

89

47418366_2.gifFIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 

90

47418366_2.gif( DEPTNO, 

91

47418366_2.gifFILLER_1 FILLER, //下面的 "Something Not To Be Loaded" 将不会被装载9247418366_2.gifDNAME, 

93

47418366_2.gifLOC 

94

47418366_2.gif

95

47418366_2.gifBEGINDATA 

96

47418366_2.gif20,Something Not To Be Loaded,Accounting,"Virginia,USA" 

97

47418366_2.gif

98

47418366_2.gif4 ***** position的列子 

99

47418366_2.gifLOAD DATA 

100

47418366_2.gifINFILE * 

101

47418366_2.gifINTO TABLE DEPT 

102

47418366_2.gifREPLACE 

103

47418366_2.gif( DEPTNO position(1:2), 

104

47418366_2.gifDNAME position(*:16), //这个字段的开始位置在前一字段的结束位置10547418366_2.gifLOC position(*:29), 

106

47418366_2.gifENTIRE_LINE position(1:29) 

107

47418366_2.gif

108

47418366_2.gifBEGINDATA 

109

47418366_2.gif10Accounting Virginia,USA 

110

47418366_2.gif

111

47418366_2.gif5 ***** 使用函数 日期的一种表达 TRAILING NULLCOLS的使用 

112

47418366_2.gifLOAD DATA 

113

47418366_2.gifINFILE * 

114

47418366_2.gifINTO TABLE DEPT 

115

47418366_2.gifREPLACE 

116

47418366_2.gifFIELDS TERMINATED BY ',' 

117

47418366_2.gifTRAILING NULLCOLS //其实下面的ENTIRE_LINE在BEGINDATA后面的数据中是没有直接对应11847418366_2.gif//的列的值的 如果第一行改为 10,Sales,Virginia,1/5/2000,, 就不用TRAILING NULLCOLS了11947418366_2.gif(DEPTNO, 

120

47418366_2.gifDNAME "upper(:dname)", //使用函数12147418366_2.gifLOC "upper(:loc)", 

122

47418366_2.gifLAST_UPDATED date 'dd/mm/yyyy', //日期的一种表达方式 还有'dd-mon-yyyy' 等12347418366_2.gifENTIRE_LINE ":deptno||:dname||:loc||:last_updated" 

124

47418366_2.gif

125

47418366_2.gifBEGINDATA 

126

47418366_2.gif10,Sales,Virginia,1/5/2000 

127

47418366_2.gif20,Accounting,Virginia,21/6/1999 

128

47418366_2.gif30,Consulting,Virginia,5/1/2000 

129

47418366_2.gif40,Finance,Virginia,15/3/2001 

130

47418366_2.gif

131

47418366_2.gif6 ***** 使用自定义的函数 //解决的时间问题13247418366_2.gifcreate or replace 

133

47418366_2.gifmy_to_date( p_string in varchar2 ) return date 

134

47418366_2.gifas 

135

47418366_2.giftype fmtArray is table of varchar2(25); 

136

47418366_2.gif

137

47418366_2.gifl_fmts fmtArray := fmtArray( 'dd-mon-yyyy', 'dd-month-yyyy', 

138

47418366_2.gif'dd/mm/yyyy', 

139

47418366_2.gif'dd/mm/yyyy hh24:mi:ss' ); 

140

47418366_2.gifl_return date; 

141

47418366_2.gifbegin 

142

47418366_2.giffor i in 1 .. l_fmts.count 

143

47418366_2.gifloop 

144

47418366_2.gifbegin 

145

47418366_2.gifl_return := to_date( p_string, l_fmts(i) ); 

146

47418366_2.gifexception 

147

47418366_2.gifwhen others then null; 

148

47418366_2.gifend; 

149

47418366_2.gifEXIT when l_return is not null; 

150

47418366_2.gifend loop; 

151

47418366_2.gif

152

47418366_2.gifif ( l_return is null ) 

153

47418366_2.gifthen 

154

47418366_2.gifl_return := 

155

47418366_2.gifnew_time( to_date('01011970','ddmmyyyy') + 1/24/60/60 * 

156

47418366_2.gifp_string, 'GMT', 'EST' ); 

157

47418366_2.gifend if; 

158

47418366_2.gif

159

47418366_2.gifreturn l_return; 

160

47418366_2.gifend; 

161

47418366_2.gif

162

47418366_2.gif

163

47418366_2.gifLOAD DATA 

164

47418366_2.gifINFILE * 

165

47418366_2.gifINTO TABLE DEPT 

166

47418366_2.gifREPLACE 

167

47418366_2.gifFIELDS TERMINATED BY ',' 

168

47418366_2.gifTRAILING NULLCOLS 

169

47418366_2.gif(DEPTNO, 

170

47418366_2.gifDNAME "upper(:dname)", 

171

47418366_2.gifLOC "upper(:loc)", 

172

47418366_2.gifLAST_UPDATED "my_to_date( :last_updated )" //使用自定义的函数17347418366_2.gif

174

47418366_2.gifBEGINDATA 

175

47418366_2.gif10,Sales,Virginia,01-april-2001 

176

47418366_2.gif20,Accounting,Virginia,13/04/2001 

177

47418366_2.gif30,Consulting,Virginia,14/04/2001 12:02:02 

178

47418366_2.gif40,Finance,Virginia,987268297 

179

47418366_2.gif50,Finance,Virginia,02-apr-2001 

180

47418366_2.gif60,Finance,Virginia,Not a date 

181

47418366_2.gif

182

47418366_2.gif7 ***** 合并多行记录为一行记录 

183

47418366_2.gifLOAD DATA 

184

47418366_2.gifINFILE * 

185

47418366_2.gifconcatenate 3 //通过关键字concatenate 把几行的记录看成一行记录18647418366_2.gifINTO TABLE DEPT 

187

47418366_2.gifreplace 

188

47418366_2.gifFIELDS TERMINATED BY ',' 

189

47418366_2.gif(DEPTNO, 

190

47418366_2.gifDNAME "upper(:dname)", 

191

47418366_2.gifLOC "upper(:loc)", 

192

47418366_2.gifLAST_UPDATED date 'dd/mm/yyyy' 

193

47418366_2.gif

194

47418366_2.gifBEGINDATA 

195

47418366_2.gif10,Sales, //其实这3行看成一行 10,Sales,Virginia,1/5/200019647418366_2.gifVirginia, 

197

47418366_2.gif1/5/2000 

198

47418366_2.gif//这列子用 continueif list="," 也可以19947418366_2.gif告诉sqlldr在每行的末尾找逗号 找到逗号就把下一行附加到上一行 

200

47418366_2.gif

201

47418366_2.gifLOAD DATA 

202

47418366_2.gifINFILE * 

203

47418366_2.gifcontinueif this(1:1) = '-' //找每行的开始是否有连接字符 - 有就把下一行连接为一行20447418366_2.gif//如 -10,Sales,Virginia,20547418366_2.gif//1/5/2000 就是一行 10,Sales,Virginia,1/5/200020647418366_2.gif//其中1:1 表示从第一行开始 并在第一行结束 还有continueif next 但continueif list最理想20747418366_2.gifINTO TABLE DEPT 

208

47418366_2.gifreplace 

209

47418366_2.gifFIELDS TERMINATED BY ',' 

210

47418366_2.gif(DEPTNO, 

211

47418366_2.gifDNAME "upper(:dname)", 

212

47418366_2.gifLOC "upper(:loc)", 

213

47418366_2.gifLAST_UPDATED date 'dd/mm/yyyy' 

214

47418366_2.gif

215

47418366_2.gifBEGINDATA //但是好象不能象右面的那样使用21647418366_2.gif-10,Sales,Virginia, -10,Sales,Virginia, 

217

47418366_2.gif1/5/2000 1/5/2000 

218

47418366_2.gif-40, 40,Finance,Virginia,13/04/2001 

219

47418366_2.gifFinance,Virginia,13/04/2001 

220

47418366_2.gif

221

47418366_2.gif8 ***** 载入每行的行号 

222

47418366_2.gif

223

47418366_2.gifload data 

224

47418366_2.gifinfile * 

225

47418366_2.gifinto table t 

226

47418366_2.gifreplace 

227

47418366_2.gif( seqno RECNUM //载入每行的行号22847418366_2.giftext Position(1:1024)) 

229

47418366_2.gifBEGINDATA 

230

47418366_2.giffsdfasj //自动分配一行号给载入 表t 的seqno字段 此行为 123147418366_2.giffasdjfasdfl //此行为 2 

47418366_4.gif23247418366_2.gif

233

47418366_2.gif9 ***** 载入有换行符的数据 

234

47418366_2.gif注意: unix 和 windows 不同 & /n 

235

47418366_2.gif 使用一个非换行符的字符 

236

47418366_2.gifLOAD DATA 

237

47418366_2.gifINFILE * 

238

47418366_2.gifINTO TABLE DEPT 

239

47418366_2.gifREPLACE 

240

47418366_2.gifFIELDS TERMINATED BY ',' 

241

47418366_2.gifTRAILING NULLCOLS 

242

47418366_2.gif(DEPTNO, 

243

47418366_2.gifDNAME "upper(:dname)", 

244

47418366_2.gifLOC "upper(:loc)", 

245

47418366_2.gifLAST_UPDATED "my_to_date( :last_updated )", 

246

47418366_2.gifCOMMENTS "replace(:comments,'n',chr(10))" //replace 的使用帮助转换换行符24747418366_2.gif

248

47418366_2.gifBEGINDATA 

249

47418366_2.gif10,Sales,Virginia,01-april-2001,This is the SalesnOffice in Virginia 

250

47418366_2.gif20,Accounting,Virginia,13/04/2001,This is the AccountingnOffice in Virginia 

251

47418366_2.gif30,Consulting,Virginia,14/04/2001 12:02:02,This is the ConsultingnOffice in Virginia 

252

47418366_2.gif40,Finance,Virginia,987268297,This is the FinancenOffice in Virginia 

253

47418366_2.gif

254

47418366_2.gif 使用fix属性 

255

47418366_2.gifLOAD DATA 

256

47418366_2.gifINFILE demo17.dat "fix 101" 

257

47418366_2.gifINTO TABLE DEPT 

258

47418366_2.gifREPLACE 

259

47418366_2.gifFIELDS TERMINATED BY ',' 

260

47418366_2.gifTRAILING NULLCOLS 

261

47418366_2.gif(DEPTNO, 

262

47418366_2.gifDNAME "upper(:dname)", 

263

47418366_2.gifLOC "upper(:loc)", 

264

47418366_2.gifLAST_UPDATED "my_to_date( :last_updated )", 

265

47418366_2.gifCOMMENTS 

266

47418366_2.gif

267

47418366_2.gifdemo17.dat 

268

47418366_2.gif10,Sales,Virginia,01-april-2001,This is the Sales 

269

47418366_2.gifOffice in Virginia 

270

47418366_2.gif20,Accounting,Virginia,13/04/2001,This is the Accounting 

271

47418366_2.gifOffice in Virginia 

272

47418366_2.gif30,Consulting,Virginia,14/04/2001 12:02:02,This is the Consulting 

273

47418366_2.gifOffice in Virginia 

274

47418366_2.gif40,Finance,Virginia,987268297,This is the Finance 

275

47418366_2.gifOffice in Virginia 

276

47418366_2.gif

277

47418366_2.gif//这样装载会把换行符装入数据库 下面的方法就不会 但要求数据的格式不同27847418366_2.gif

279

47418366_2.gifLOAD DATA 

280

47418366_2.gifINFILE demo18.dat "fix 101" 

281

47418366_2.gifINTO TABLE DEPT 

282

47418366_2.gifREPLACE 

283

47418366_2.gifFIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 

284

47418366_2.gifTRAILING NULLCOLS 

285

47418366_2.gif(DEPTNO, 

286

47418366_2.gifDNAME "upper(:dname)", 

287

47418366_2.gifLOC "upper(:loc)", 

288

47418366_2.gifLAST_UPDATED "my_to_date( :last_updated )", 

289

47418366_2.gifCOMMENTS 

290

47418366_2.gif

291

47418366_2.gifdemo18.dat 

292

47418366_2.gif10,Sales,Virginia,01-april-2001,"This is the Sales29347418366_2.gifOffice in Virginia"29447418366_2.gif20,Accounting,Virginia,13/04/2001,"This is the Accounting29547418366_2.gifOffice in Virginia"29647418366_2.gif30,Consulting,Virginia,14/04/2001 12:02:02,"This is the Consulting29747418366_2.gifOffice in Virginia"29847418366_2.gif40,Finance,Virginia,987268297,"This is the Finance29947418366_2.gifOffice in Virginia"30047418366_2.gif

301

47418366_2.gif 使用var属性 

302

47418366_2.gifLOAD DATA 

303

47418366_2.gifINFILE demo19.dat "var 3" 

304

47418366_2.gif//3 告诉每个记录的前3个字节表示记录的长度 如第一个记录的 071 表示此记录有 71 个字节30547418366_2.gifINTO TABLE DEPT 

306

47418366_2.gifREPLACE 

307

47418366_2.gifFIELDS TERMINATED BY ',' 

308

47418366_2.gifTRAILING NULLCOLS 

309

47418366_2.gif(DEPTNO, 

310

47418366_2.gifDNAME "upper(:dname)", 

311

47418366_2.gifLOC "upper(:loc)", 

312

47418366_2.gifLAST_UPDATED "my_to_date( :last_updated )", 

313

47418366_2.gifCOMMENTS 

314

47418366_2.gif

315

47418366_2.gifdemo19.dat 

316

47418366_2.gif07110,Sales,Virginia,01-april-2001,This is the Sales 

317

47418366_2.gifOffice in Virginia 

318

47418366_2.gif07820,Accounting,Virginia,13/04/2001,This is the Accounting 

319

47418366_2.gifOffice in Virginia 

320

47418366_2.gif08730,Consulting,Virginia,14/04/2001 12:02:02,This is the Consulting 

321

47418366_2.gifOffice in Virginia 

322

47418366_2.gif07140,Finance,Virginia,987268297,This is the Finance 

323

47418366_2.gifOffice in Virginia 

324

47418366_2.gif

325

47418366_2.gif 使用str属性 

326

47418366_2.gif//最灵活的一中 可定义一个新的行结尾符 win 回车换行 : chr(13)||chr(10)32747418366_2.gif

328

47418366_2.gif此列中记录是以 a|rn 结束的 

329

47418366_2.gifselect utl_raw.cast_to_raw('|'||chr(13)||chr(10)) from dual; 

330

47418366_2.gif结果 7C0D0A 

331

47418366_2.gif

332

47418366_2.gifLOAD DATA 

333

47418366_2.gifINFILE demo20.dat "str X'7C0D0A'" 

334

47418366_2.gifINTO TABLE DEPT 

335

47418366_2.gifREPLACE 

336

47418366_2.gifFIELDS TERMINATED BY ',' 

337

47418366_2.gifTRAILING NULLCOLS 

338

47418366_2.gif(DEPTNO, 

339

47418366_2.gifDNAME "upper(:dname)", 

340

47418366_2.gifLOC "upper(:loc)", 

341

47418366_2.gifLAST_UPDATED "my_to_date( :last_updated )", 

342

47418366_2.gifCOMMENTS 

343

47418366_2.gif

344

47418366_2.gifdemo20.dat 

345

47418366_2.gif10,Sales,Virginia,01-april-2001,This is the Sales 

346

47418366_2.gifOffice in Virginia| 

347

47418366_2.gif20,Accounting,Virginia,13/04/2001,This is the Accounting 

348

47418366_2.gifOffice in Virginia| 

349

47418366_2.gif30,Consulting,Virginia,14/04/2001 12:02:02,This is the Consulting 

350

47418366_2.gifOffice in Virginia| 

351

47418366_2.gif40,Finance,Virginia,987268297,This is the Finance 

352

47418366_2.gifOffice in Virginia| 

353

47418366_2.gif

354

47418366_2.gif============================================================================== 

355

47418366_2.gif象这样的数据 用 nullif 子句 

356

47418366_2.gif

357

47418366_2.gif10-jan-200002350Flipper seemed unusually hungry today. 

358

47418366_2.gif10510-jan-200009945Spread over three meals. 

359

47418366_2.gif

360

47418366_2.gifid position(1:3) nullif id=blanks //这里可以是blanks 或者别的表达式36147418366_2.gif//下面是另一个列子 第一行的 1 在数据库中将成为 null36247418366_2.gifLOAD DATA 

363

47418366_2.gifINFILE * 

364

47418366_2.gifINTO TABLE T 

365

47418366_2.gifREPLACE 

366

47418366_2.gif(n position(1:2) integer external nullif n='1', 

367

47418366_2.gifv position(3:8) 

368

47418366_2.gif

369

47418366_2.gifBEGINDATA 

370

47418366_2.gif1 10 

371

47418366_2.gif20lg 

372

47418366_2.gif------------------------------------------------------------ 

373

47418366_2.gif

47418366_1.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值