产品营销型网站建设网站建设要准备什么软件
web/
2025/10/6 23:20:56/
文章来源:
产品营销型网站建设,网站建设要准备什么软件,wordpress视频下载,性咨询INFILE的用法
1#xff09;模糊导入多个数据的文件。 可以在文件名中使用通配符。 星号 #xff08;*#xff09; 表示复数字符#xff0c;问号 #xff08;#xff1f;#xff09; 表示单个字符。 INFILE emp*.dat INFILE m?emp.dat 2#xff09;如果不需要导入数据…
INFILE的用法
1模糊导入多个数据的文件。 可以在文件名中使用通配符。 星号 * 表示复数字符问号 表示单个字符。 INFILE emp*.dat INFILE m?emp.dat 2如果不需要导入数据文件控制文件中有数据可用INFILE *
INFILE * 表示控制文件导入的数据在控制文件中begindata以后。 eg LOAD DATA INFILE * INTO TABLE DEPT FIELDS TERMINATED BY ‘,’ (DEPTNO, DNAME, LOC) BEGINDATA 10,Sales,Yinginia 20,Acceounting,yirgina 3在完整路径 中指定的文件 datafile .dat INFILE c:/topdir/subdir/datafile.dat 4指定多个数据文件 INFILE mydat1.dat BADFILE ‘mydat1.bad’ DISCARDFILE ‘mydat1.dis’ INFILE mydat2.dat INFILE mydat3.dat BADFILE ‘mydat3.bad’ DISCARDFILE ‘mydat3.dis’ INFILE mydat4.dat DISCARDMAX 10 0 附加
INFILE e:\gnis\mi_deci.dat --Windows
INFILE /home/oracle/gnis/mi_deci.dat --Unix 2、insert、append、replace、truncate insert在空表中插入数据表中有数据会中止 append在表数据后面追加数据 replace:替代表中数据加载前会先删除原表中的数据 truncate 2-1 columns列语句 column_name POSITION (start:end) datatype 或者 column_name datatype TERMINATED BY ‘delim’ [OPTIONALLY ENCLOSED BY ‘delim’] column_name [POSITION({start|*[offset]}[{:|-}end])] [datatype] [PIECED] [NULLIF condition [AND condition...]] [DEFAULTIF condition [AND condition...]] [sql_expression] into table命令INTO TABLE table_name [{PARTITION | SUBPARTITION} (partition_name)] {INSERT | REPLACE | TRUNCATE | APPEND} [SORTED [INDEXES] (index_list)] [SINGLEROW] [{INSERT | REPLACE | TRUNCATE | APPEND}] [OPTIONS (FILEdatabase_filename)] [REENABLE [DISABLED_CONSTRAINTS][EXCEPTIONS exception_table_name]] [WHEN field_conditions] [{OID(fieldname)|SID(fieldname)}] [FIELDS [delimiter_description]] [TRAILING [NULLCOLS] [SKIP skip_count] (field_list) 3.加载多个表字段用逗号分隔开
LOAD DATA
INFILE ‘animal_feeding.csv’
APPEND
INTO TABLE animal_feeding
(
animal_id INTEGER EXTERNAL TERMINATED BY ‘,’,
feeding_date DATE “dd-mon-yyyy” TERMINATED BY ‘,’,
pounds_eaten DECIMAL EXTERNAL TERMINATED BY ‘,’
)
INTO TABLE animal_feeding_note
(
animal_id INTEGER EXTERNAL TERMINATED BY ‘,’,
feeding_date DATE “dd-mon-yyyy” TERMINATED BY ‘,’,
pounds_eaten FILLER DECIMAL EXTERNAL TERMINATED BY‘,’, 使用了FILLER关键字指定SQLLoader不加载此字段。
note CHAR TERMINATED BY ‘,’
OPTIONALLY ENCLOSED BY ‘“‘ 界定符为双引号也就是“a” a
)
3-1提供了多个数据文件要导入同一张表
LOAD DATA
INFILE ldr_case8_1.dat
INFILE ldr_case8_2.dat
INFILE ldr_case8_3.dat
TRUNCATE INTO TABLE MANAGER
FIELDS TERMINATED BY ,
(MGRNO,MNAME,JOB)
3-2同一个数据文件要导入不同表
待导入的数据文件如下
BON SMITH CLEAK 3904
BON ALLEN SALER,M 2891
MGR 10 SMITH SALES MANAGER
MGR 11 ALLEN.W TECH MANAGER
TMP SMITH 7369 CLERK 800 20
TMP ALLEN 7499 SALESMAN 1600 30
需求是将以 MGR 开头的记录导入 MANAGER 表以 BON 开头的记录导入 BONUS表其他记录存入废弃文件中
创建控制文件如下
LOAD DATA
INFILE ldr_case9.dat
DISCARDFILE ldr_case9.dsc
TRUNCATEINTO TABLE BONUSWHEN TAB BON(TAB FILLER POSITION(1:3),ENAME POSITION(5:9) ,JOB POSITION(*1:18),SAL POSITION(*1))INTO TABLE MANAGERWHEN TAB MGR(TAB FILLER POSITION(1:3),MGRNO POSITION(4:5) ,MNAME POSITION(7:13),JOB POSITION(*1))
附加
DATE的其他格式 4、描述定宽列POSITION (start:end) 记录的第一个字符总是位置1。 ( animal_id POSITION (1:3) INTEGER EXTERNAL, feeding_date POSITION (4:14) DATE “dd-mon-yyyy”, pounds_eaten POSITION (15:19) ZONED (5,2), note POSITION (20:99) CHAR ) 5、sqlloader文本的基本数据类型
CHAR 标识字符数据。 不要将其与数据库中使用的CHAR数据类型混淆。 两者之间不存在任何关系。 如果要将数据加载到任何类型的文本字段中如VARCHAR2、CHAR或CLOB请使用SQL*Loader CHAR数据类型。
DATE [“format”] 标识日期。 即使它是可选的也要指定一种格式。 这样如果数据库中的默认日期格式与您期望的不同就可以避免出现问题。
INTEGER EXTERNAL 标识以字符形式存储的整数值。 例如字符串“123”是一个合法的INTEGER EXTERNAL值。
DECIMAL EXTERNAL 标识以字符形式存储的数字值该值可能包含小数点。 字符串 - 123.45 是DECIMAL EXTERNAL值的一个很好的例子。 ZONED(精度比例) 6、NULLIF
如果您希望将空白字段视为null则可以使用NULLIF子句来判断SQL*Loader来做这个。 NULLIF子句出现在数据类型之后并接受下面的形式:
NULLIF field_nameBLANKS
要定义animal_id以便将空白值存储为null可以使用这个定义:
animal_id POSITION (1:3) INTEGER EXTERNAL NULLIF animal_idBLANKS, 7、trailing nullcols 如要导入源文件此列内容为空在导入到数据库表中此列内容就是null
...INTO TABLE animal_feeding
TRAILING NULLCOLS
(animal_id INTEGER EXTERNAL TERMINATED BY ‘,’,feeding_date DATE “dd-mon-yyyy” TERMINATED BY ‘,’,pounds_eaten DECIMAL EXTERNAL TERMINATED BY ‘,’,note CHAR TERMINATED BY ‘,’OPTIONALLY ENCLOSED BY ‘”’
) 8、数据类型 1字符类型数据CHAR[ (length)] [delimiter] length缺省为 1. 2.日期类型数据DATE [ ( length)][date_format [delimiter]使用to_date函数来限制。 3字符格式中的十进制DECIMAL EXTERNAL [(length)] [delimiter]用于常规格式的十进制数不是二进制 一个位等于一个bit。 4压缩十进制格式数据DECIMAL digtial [,divcision] 5双精度符点二进制DOUBLE 6普通符点二进制FLOAT 7字符格式符点数FLOAT EXTERNAL [ (length) ] [delimiter] 8双字节字符串数据GRAPHIC [ (legth)] 9双字节字符串数据GRAPHIC EXTERNAL[ (legth)] 10常规全字二进制整数INTEGER 11字符格式整数INTEGER EXTERNAL 12常规全字二进制数据SMALLINT 13可变长度字符串VARCHAR 14可变双字节字符串数据VARGRAPHIC 15.RAW 16.VARRAWC 9、错误数据
INFILE ‘animal_feeding.csv’
BADFILE ‘animal_feeding_bad.bad’ 10、CONCATENATE n 将n行数据合并看成一行数据
LOAD DATA
INFILE ‘animal_feeding_concat.csv’
BADFILE ‘animal_feeding_concat’
APPEND
CONCATENATE 2
.. . 11、continueif 的数据行合并常用语句
通过在指定的位置指定一个或多个字符允许组合物理记录到逻辑记录。
continueif next (1:2) --
a1,b1,c1,--a2,b2,c2,a3,b3,c3,--a4,b4,c4,a5,b5,c5,
》
a1,b1,c1, a2,b2,c2,
a3,b3,c3,a4,b4,c4,a5,b5,c5, continueif next preserve (1:2) --
a1,b1,c1,--a2,b2,c2,a3,b3,c3,--a4,b4,c4,a5,b5,c5,
》
a1,b1,c1, --a2,b2,c2,
a3,b3,c3,--a4,b4,c4,a5,b5,c5, continueif this preserve (1:2) --
a1,b1,c1,--a2,b2,c2,a3,b3,c3,--a4,b4,c4,a5,b5,c5,
》
a1,b1,c1,
--a2,b2,c2,a3,b3,c3,
--a4,b4,c4,a5,b5,c5, continueif last ( -)
a1,b1,c1,-a2,b2,c2,a3,b3,c3,-a4,b4,c4,a5,b5,c5,
》
a1,b1,c1, -a2,b2,c2,
a3,b3,c3,-a4,b4,c4,
a5,b5,c5, 12、sqlldr的命令语句
sqlldr [paramvalue[, paramvalue...]]
在系统提示符下启动 SQL*加载程序并运行示例。
例如要运行案例 1请输入以下命令
sqlldr USERIDscott CONTROLulcase1.ctl LOGulcase1.log
CONTROL 将参数和参数替换为相应的控件和 LOG 日志文件名然后按 Enter 键。 当系统提示输入密码时 tiger 键入并按 Enter 键。
〉 sqlldr CONTROLulcase1.ctl LOGulcase1.log
Username: scott
Password: password userid 传入您的用户名、密码和Net8服务名称。 使用的语法与任何其他命令行实用程序相同看起来像这样:useridusername[/password][service]
control 传入控制文件名。 下面是一个例子:: control[path]filename[.ext] 控制文件的默认扩展名是.ctl。
log 传入日志文件名。 例如: log[path]filename[.ext] 日志文件的默认扩展名为。log。 如果不提供文件名日志文件将被命名为与控制文件匹配
bad 传入错误的文件名。 例如: bad[path]filename[.ext]坏文件的默认扩展名是。bad。 如果您没有提供文件名那么坏文件将被命名为与控制文件匹配。 使用此参数将覆盖可能在控制文件中指定的任何文件名。
Data 传入数据文件名。 例如: data[path]filename[.ext]数据文件的默认扩展名是。dat。 在命令行上指定数据文件名将覆盖控制文件中指定的名称。 如果没有在任何地方指定数据文件名则默认使用与控制文件相同的名称但扩展名为.dat。
discard 传入丢弃的文件名。 例如: discard[path]filename[.ext] 用于丢弃文件的默认扩展名是。dis。 如果不提供文件名则丢弃文件将被命名为与控制文件匹配。 使用此参数将覆盖控制文件中可能指定的任何丢弃文件名。
discardmax 可选地对允许丢弃的记录数量进行限制。 语法是这样的:discardmaxnumber_of_records如果丢弃的记录数量超过这个限制加载将被中止。
Skip 允许您跳过指定数量的逻辑记录。 语法如下:skipnumber_of_records当您想要继续加载已经中止的文件并且知道在重新启动之前要进入文件的多少位置时可以使用skip参数。
load 可选地限制要加载到数据库中的逻辑记录的数量。 语法是这样的:loadnumber_of_records一旦达到指定的限制SQL*Loader将停止。
Errors 指定SQL*Loader终止加载之前允许的错误数量。 语法看起来是这样的:errorsnumber_of_records SQL*Loader将在收到超过指定数量的错误时停止加载。 默认限制为50。 没有办法允许无限数量。 最好是指定一个非常高的值比如999999999。
Rows 间接控制加载过程中提交的频率。rows参数以行为单位指定用于常规路径加载的绑定数组的大小。SQL*Loader会将该值舍入为I/O块大小的若干倍。rows参数的语法如下所示:rowsnumber_of_rows对于常规路径加载默认值是64。默认情况下只有在完成整个负载时才保存直接路径负载。但是当完成直接路径负载时可以使用此参数直接控制提交频率
……… USERID{username[/password][net_service_name]|/}
CONTROLcontrol_file_name
LOGpath_file_name
BADpath_file_name
DATApath_file_name
DISCARDpath_file_name
DISCARDMAXlogical_record_count
SKIPlogical_record_count
SKIP_INDEX_MAINTENANCE{TRUE | FALSE}
SKIP_UNUSABLE_INDEXES{TRUE | FALSE}
LOADlogical_record_count
ERRORSinsert_error_count
ROWSrows_in_bind_array
BINDSIZEbytes_in_bind_array
SILENT[(]keyword[,keyword...][)]
DIRECT{TRUE | FALSE}
PARFILEpath_file_name
PARALLEL{TRUE | FALSE}
READSIZEbytes_in_read_buffer
FILEdatabase_datafile_name 13、编写表达式来修改加载的数据
LOAD DATA
INFILE ‘animal_feeding_expr.csv’
BADFILE ‘animal_feeding_expr’
APPEND
INTO TABLE animal_feeding
TRAILING NULLCOLS
(
animal_id INTEGER EXTERNAL TERMINATED BY “,”,
feeding_date DATE “dd-mon-yyyy” TERMINATED BY “,”,
pounds_eaten DECIMAL EXTERNAL TERMINATED BY “,” “:pounds_eaten * 2.2”, 取到的值*2.2
note CHAR TERMINATED BY “,” OPTIONALLY ENCLOSED BY ‘“‘ “UPPER(:note)” 字符转成大写
)
截取
SAL position(17:20),
COMM substr(:SAL,1,1)
替换
REMARK replace(:remark, \\n,chr(10))
空白看成NULL
animal_id POSITION (1:3) INTEGER EXTERNAL NULLIF animal_idBLANKS,
自动生成字段值
column_name {
RECNUM 递增数值从1开始 |SYSDATE 系统时间 |CONSTANT {string | string} 常量值 |SEQUENCE [({COUNT | MAX|integer}[,increment])] 效果与RECNUM差不多可以设置开始值 }
eg:
REMARK CONSTANT United States Geological Survey,
TIMES SYSDATE
去掉空格
county POSITION(64) CHAR(5) RTRIM(:county)
NVL
elevation POSITION(49) INTEGER EXTERNAL(4)
NVL(:elevation,0),
转数字计算
price POSITION(37:40) TO_NUMBER(:bookPrice)/100 -- TO_NUMBER(NVL(:price,0))/100
取最大值
price POSITION(37) GREATEST(TO_NUMBER(:price)/100, TO_NUMBER(:pages*0.10)), 14、反斜杠转义字符
SQL*加载程序和外部表使用各种约定将单引号标识为封闭字符。
SQL*Loader 允许使用反斜杠 \ 转义字符以确保将单引号标识为括起来的字符。
例如
FIELDS TERMINATED BY , OPTIONALLY ENCLOSED BY \ FIELDS TERMINATED BY , OPTIONALLY ENCLOSED BY 在 DDL 语法中反斜杠转义字符 \。
so\far or so\far 〉 sofar
so\\far or \so\\far\ 〉 so\far
so\\\\far or so\\\\far 〉 so\\far 15 控制文件内容
1 -- This is an example control file
2 LOAD DATA
3 INFILE sample.dat
4 BADFILE sample.bad
5 DISCARDFILE sample.dsc
6 APPEND
7 INTO TABLE emp
8 WHEN (57) .
9 TRAILING NULLCOLS
10 (hiredate SYSDATE, deptno POSITION(1:2) INTEGER EXTERNAL(2) NULLIF deptnoBLANKS, job POSITION(7:14) CHAR TERMINATED BY WHITESPACE NULLIF jobBLANKS UPPER(:job), mgr POSITION(28:31) INTEGER EXTERNAL TERMINATED BY WHITESPACE, NULLIF mgrBLANKS, ename POSITION(34:41) CHAR TERMINATED BY WHITESPACE UPPER(:ename), empno POSITION(45) INTEGER EXTERNAL TERMINATED BY WHITESPACE, sal POSITION(51) CHAR TERMINATED BY WHITESPACE TO_NUMBER(:sal,$99,999.99), comm INTEGER EXTERNAL ENCLOSED BY ( AND % :comm * 100 )
此示例控制文件中左侧的数字未出现在实际控制文件中。 这些数字对应于以下说明中的数字
控制文件中条目之前的此注释是如何在控制文件中输入注释的示例。 “--”表注释LOAD DATA 该语句在 SQL*Loader 中启动新的数据加载。 有关语法详细信息请参阅 SQL*加载程序语法图。INFILE 该子句指定包含要加载的数据的数据文件的名称。 有关更多信息请参阅指定数据文件。BADFILE 该子句指定拒绝记录写入的文件的名称。 有关详细信息请参阅指定错误文件。DISCARDFILE 该子句指定逻辑删除记录写入的文件的名称。 有关详细信息请参阅指定放弃文件。APPEND 子句是可用于将数据加载到非空表中的选项之一。 有关更多信息请参见将数据加载到非空表中。
若要将数据加载到空表中请使用 INSERT 子句。 有关更多信息请参见将数据加载到空表中。
INTO TABLE 可以使用子句来标识表、字段和数据类型。 此子句定义数据文件中的记录与数据库中的表之间的关系。 有关更多信息请参见指定表名。WHEN 子句指定一个或多个字段条件。 SQL*加载器根据此条件确定是否加载数据。 有关详细信息请参阅有条件加载记录。TRAILING NULLCOLS 使用子句时如果记录中不存在由相对位置指定的列则该列的值将被视为 NULL。 有关详细信息请参阅处理缺少数据的短记录。控制文件的其余部分包含一个字段列表您可以在其中查看正在加载的表的列格式详细信息。 有关控制文件节的详细信息请参阅 SQL*加载程序字段列表参考。 16在控制文件中指定命令行参数
在 SQL*Loader 控制文件中可以使用子句指定 OPTIONS 命令行参数。
OPTIONS (parametervalue[,parametervalue...])
OPTIONS 从句放在LOAD DATA句子之前。 eg OPTIONS (SILENTALL, ERRORS999999) LOAD DATA INFILE mi_deci.dat TRUNCATE INTO TABLE GNIS(…)有关OPTIONS 这些参数的说明请参阅 SQL*加载程序命令行参考。BINDSIZE n
COLUMNARRAYROWS n
DATE_CACHE n
DEGREE_OF_PARALLELISM {degree-num|DEFAULT|AUTO|NONE}
DIRECT {TRUE | FALSE}
EMPTY_LOBS_ARE_NULL {TRUE | FALSE}
ERRORS n
EXTERNAL_TABLE {NOT_USED | GENERATE_ONLY | EXECUTE}
FILE tablespace file
LOAD n
MULTITHREADING {TRUE | FALSE}
PARALLEL {TRUE | FALSE}
READSIZE n
RESUMABLE {TRUE | FALSE}
RESUMABLE_NAME text string
RESUMABLE_TIMEOUT n
ROWS n
SDF_PREFIX string
SILENT {HEADER | FEEDBACK | ERRORS | DISCARDS | PARTITIONS | ALL}
SKIP n
SKIP_INDEX_MAINTENANCE {TRUE | FALSE}
SKIP_UNUSABLE_INDEXES {TRUE | FALSE}
STREAMSIZE n
TRIM {LRTRIM|NOTRIM|LTRIM|RTRIM|LDRTRIM}
17WHEN条件
LOAD DATAINFILE michigan_feature_names.datBADFILE michigan.badAPPEND INTO TABLE featuresWHEN (feature_typefalls) AND (countyAlger)(state CHAR TERMINATED BY , ENCLOSED BY ,feature_name CHAR TERMINATED BY , ENCLOSED BY ,feature_type CHAR TERMINATED BY , ENCLOSED BY ,county CHAR TERMINATED BY , ENCLOSED BY )
18自定义方法调用
CREATE OR REPLACE FUNCTION price_check(price_in NUMBER, pages_in NUMBER)
RETURN NUMBER ISmin_price NUMBER;
BEGINSELECT ppt_min_price INTO min_priceFROM price_page_thresholdWHERE pages_in ppt_pagesAND ppt_pages (SELECT MAX(ppt_pages)FROM price_page_thresholdWHERE pages_in ppt_pages);RETURN GREATEST(min_price,price_in);
END;LOAD DATAINFILE book_prices.datREPLACE INTO TABLE book(book_title POSITION(1) CHAR(35),book_price POSITION(37)price_check(:book_price,:book_pages),book_pages POSITION(42) INTEGER EXTERNAL(3),book_id book_seq.nextval)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88155.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!