Ⅰ sqlloader 的CTL 文件里 filter怎么写
sqlldr userid=lgone/tiger control=a.ctl 
LOAD DATA 
INFILE 't.dat' // 要导入的文件 
// INFILE 'tt.date' // 导入多个文件 
// INFILE * // 要导入的内容就在control文件里 下面的BEGINDATA后面就是导入的内容 
INTO TABLE table_name // 指定装入的表 
BADFILE 'c:\bad.txt' // 指定坏文件地址 
************* 以下是4种装入表的方式 
APPEND // 原先的表有数据 就加在后面 
// INSERT // 装载空表 如果原先的表有数据 sqlloader会停止 默认值 
// REPLACE // 原先的表有数据 原先的数据会全部删除 
// TRUNCATE // 指定的内容和replace的相同 会用truncate语句删除现存数据 
************* 指定的TERMINATED可以在表的开头 也可在表的内部字段部分 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
// 装载这种数据: 10,lg,"""lg""","lg,lg" 
// 在表中结果: 10 lg "lg" lg,lg 
// TERMINATED BY X '09' // 以十六进制格式 '09' 表示的 
// TERMINATED BY WRITESPACE // 装载这种数据: 10 lg lg 
TRAILING NULLCOLS ************* 表的字段没有对应的值时允许为空 
************* 下面是表的字段 
( 
col_1 , col_2 ,col_filler FILLER // FILLER 关键字 此列的数值不会被装载 
// 如: lg,lg,not 结果 lg lg 
) 
// 当没声明FIELDS TERMINATED BY ',' 时 
// ( 
// col_1 [interger external] TERMINATED BY ',' , 
// col_2 [date "dd-mon-yyy"] TERMINATED BY ',' , 
// col_3 [char] TERMINATED BY ',' OPTIONALLY ENCLOSED BY 'lg' 
// ) 
// 当没声明FIELDS TERMINATED BY ','用位置告诉字段装载数据 
// ( 
// col_1 position(1:2), 
// col_2 position(3:10), 
// col_3 position(*:16), // 这个字段的开始位置在前一字段的结束位置 
// col_4 position(1:16), 
// col_5 position(3:10) char(8) // 指定字段的类型 
// ) 
BEGINDATA // 对应开始的 INFILE * 要导入的内容就在control文件里 
10,Sql,what 
20,lg,show 
===================================================================================== 
//////////// 注意begindata后的数值前面不能有空格 
1 ***** 普通装载 
LOAD DATA 
INFILE * 
INTO TABLE DEPT 
REPLACE 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
(DEPTNO, 
DNAME, 
LOC 
) 
BEGINDATA 
10,Sales,"""USA""" 
20,Accounting,"Virginia,USA" 
30,Consulting,Virginia 
40,Finance,Virginia 
50,"Finance","",Virginia // loc 列将为空 
60,"Finance",,Virginia // loc 列将为空 
2 ***** FIELDS TERMINATED BY WHITESPACE 和 FIELDS TERMINATED BY x'09' 的情况 
LOAD DATA 
INFILE * 
INTO TABLE DEPT 
REPLACE 
FIELDS TERMINATED BY WHITESPACE 
-- FIELDS TERMINATED BY x'09' 
(DEPTNO, 
DNAME, 
LOC 
) 
BEGINDATA 
10 Sales Virginia 
3 ***** 指定不装载那一列 
LOAD DATA 
INFILE * 
INTO TABLE DEPT 
REPLACE 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
( DEPTNO, 
FILLER_1 FILLER, // 下面的 "Something Not To Be Loaded" 将不会被装载 
DNAME, 
LOC 
) 
BEGINDATA 
20,Something Not To Be Loaded,Accounting,"Virginia,USA" 
4 ***** position的列子 
LOAD DATA 
INFILE * 
INTO TABLE DEPT 
REPLACE 
( DEPTNO position(1:2), 
DNAME position(*:16), // 这个字段的开始位置在前一字段的结束位置 
LOC position(*:29), 
ENTIRE_LINE position(1:29) 
) 
BEGINDATA 
10Accounting Virginia,USA 
5 ***** 使用函数 日期的一种表达 TRAILING NULLCOLS的使用 
LOAD DATA 
INFILE * 
INTO TABLE DEPT 
REPLACE 
FIELDS TERMINATED BY ',' 
TRAILING NULLCOLS // 其实下面的ENTIRE_LINE在BEGINDATA后面的数据中是没有直接对应 
// 的列的值的 如果第一行改为 10,Sales,Virginia,1/5/2000,, 就不用TRAILING NULLCOLS了 
(DEPTNO, 
DNAME "upper(:dname)", // 使用函数 
LOC "upper(:loc)", 
LAST_UPDATED date 'dd/mm/yyyy', // 日期的一种表达方式 还有'dd-mon-yyyy' 等 
ENTIRE_LINE ":deptno:dname:loc:last_updated" 
) 
BEGINDATA 
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 ***** 使用自定义的函数 // 解决的时间问题 
create or replace 
function my_to_date( p_string in varchar2 ) return date 
as 
type fmtArray is table of varchar2(25);
看看参考下!
Ⅱ 求教oracle 导入excel里的数据方法
oracle导入excel数据方法:
1、将excel文件转成csv文件。一般点另存为,格式选择csv格式即可
loaddata
infile'result.csv'--这个是csv的文件名
intotableresultxt--这是在数据库中新建的表名
(resultidcharterminatedby',',--以下分别为字段名及数据类型,terminatedby',',则是以逗号分隔
websitecharterminatedby',',
ipportcharterminatedby',',
)--最后以空白结尾
4、通过命令提示符进行导入:
cmd进入命令提示符后,进入ctl文件路径,执行以下内容:
sqlldr userid=用户名/密码 control=load.ctl log=load.out
Ⅲ 怎样将Excel内准备的数据用PLSQL Developer导入到Oracle表
可以试试~
方法一:最省时的方法,需要借助plsql dev工具。
a.复制整个工作簿中的数据到某个表中。
点击excel工作区左上角,全部选中数据,ctrl+c 复制整个工作簿中的数据。在plsql dev中,编辑表格表的数据,点击数据展示区左上角,直接粘贴就可以了(注意excel的第一列应该保持为空,如果不为空可以增加一空列,不然你复制的数据就会少一列的)!如下图
所示:
容易出现:ora-01400:cannot insert null into
网络思路:解决思路是在导入之前先创建那张表,且将报错的字段去掉not null 约束,再导入,导入之后找到那个为null的数据,要么delete要么update,再把not null约束加上去,OK。 
实际解决方法:重启plsql,再操作一次-------------------------不一定成功!
b.复制某列的数据。
这个很容易,选中excel某一列的数据,复制,选中oracle某个表的某一列,直接粘贴就可以了。plsql dev和excel中的列可以相互复制。
方法二:最专业的方法,用sql loader。
原文地址:http://daniel-wuz.javaeye.com/blog/198112
1.录入excel 测试表格,test.xls。 
2.另存为.csv格式 
3.创建sql*loader控制文件test.ctl,内容如下: 
Load data 
Infile 'c:/test.csv' 
insert Into table test Fields terminated by','(column1,column2,column3,column4,column5) 
需要将数据文件拷贝到对应位置 
4.到数据库中建立对应的测试表test 
create table test ( 
column1 Varchar2(10), 
column2 Varchar2(10), 
column3 Varchar2(10), 
column4 Varchar2(10), 
column5 Varchar2(10) 
) 
5.执行导入命令 
Sqlldr userid = system/manager control='C:/test.ctl' 
导入成功! 
附: 
Sqlldr的函数关键字说明: 
Userid --oracle用户名 userid = username/password 
Control --控制文件名称 control =‘e:/insert.ctl’ 
Log –-日志文件名称 log = ‘e:/insert.log’ 
Bad --损坏文件名称 
Data --data file name 
Discard --discard file name 
Discardmax --number of discards to allow(默认全部) 
Skip --导入时跳过的记录行数(默认0) 
Load --导入时导入的记录行数(默认全部) 
Errors --允许错误的记录行数(默认50) 
ctl文件内容说明: 
Load data 
Infile ‘e:/test.csv’ --数据源文件名称 
Append|insert|replace --append在表后追加,insert插入空表,replace替代原有内容 
Into table test --要导入的数据库表名称 
[when id = id_memo] --过滤条件 
Fields terminated by X’09’ --字段分隔符 
(id,name,telphone) --字段名称列表
方法三:最悲剧的方法,创建oracle外部表,为了把excel中的数据导入到数据中而去建立外部表,大题小做了!
将excel文件另存为csv文件a.csv,然后创建一个外部表t,数据指向a.csv。然后根据外部表创建一个普通的表:
create table a asselect * from t ,这样就可以把最初的excel文件导入到oracle中的表了。
方法四:最古典的方法,拼接sql语句。如果你excel熟的话,这种方法也不错。
在excel中,把数据拼接成如下sql语句:
insert into empvalues('1','2','3');
insert into empvalues('4','5','6');
insert into empvalues('7','8','9');
Ⅳ UxCTL寄存器的各个位功能详解
寄存器的具体示例,如UxCTL寄存器,是一个8位控制单元,它在UASRT模块的运行中起关键作用,包括通信协议、模式选择和校验位等设置。图示显示了寄存器的8个有效控制位:
通用寄存器,如EAX、EBX、ECX和EDX,是计算机中可编程使用的,它们在运算和内存操作中扮演重要角色。EAX用于运算,保护模式下也可作为内存偏移指针;EBX和ECX分别用于内存偏移和计数;EDX在运算中作为EAX的溢出寄存器,且同样可用于内存偏移。
段寄存器,如ESI、EDI,以及堆栈操作相关的EBP、ESP,用于内存操作的地址指定,而CS、DS、ES、FS、GS和SS则作为选择器,用于指示数据段、附加段等的不同内存区域。理解这些寄存器的设置和功能对于控制数据流和通信模式至关重要。
寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。