暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle sql-loader 在装载中生成数据

原创 不吃草的牛_Nick 2023-06-26
690

SQL*Loader实用程序允许生成装载列的数据。这表示甚至不需要数据文件就可以进行装载。不过,最常见的是,在从一个数据文件进行装载时,生成一个或多个列的数据。以下类型的数据可由SQL*Loader生成。
(1) 常量值:可使用常量说明将某个列设为常量值。例如,下面例子说明,所有运行中所填充的行的loaded_by列都将具有值sysadm:
loaded_by CONSTANT "sysadm"
(2) 表达式值:可将列设置为由SQL操作符或PL/SQL函数指定的值。使用EXPRESSION参数给出表达式的值,如下所示:
column_name EXPRESSION "SQL string"
(3) 数据文件记录号:可将列的值设置为使用RECNUM列说明装载的记录号:
record_num RECNUM
(4) 系统日期:可使用sysdate变量将列设置为装载数据的日期:
loaded_date sysdate
(5) 序列:可使用SEQUENCE函数生成一个唯一值来装载列。在下面的例子中,每插入一行,loadseq序列的当前最大值加1。
loadseq SEQUENCE(max.1)


与装载有关的子句

关键字LOAD DATA位于控制文件的开头。它表示使用SQL*Loader实用程序将数据从输入数据文件装入Oracle表。

INTO TABLE子句指出数据将装入哪个表。如果同时装入多个表,则每个表需要一条INTO TABLE语句。

关键字INSERT、REPLACE和APPEND指示如何装载数据库。如果为INSERT,则假定表是空的;否则,装载过程将产生错误并停止。
REPLACE子句删节表并开始装载新数据。经常会看到使用REPLACE选项的装载作业在开始时似乎一动不动,这是由于Oracle在开始装载过程前,正忙着删节表。
APPEND子句将把新行添加到己有表数据。


使用返回代码

日志文件提供了关于装载的许多信息,但Oracle还允许捕捉每个装载执行后的退岀代码。这使得能在利用定时作业(cronjob)或shell脚本执行装载时,检査装载的结果。对于Windows服务器,可使用at命令来调度装载作业。下面是UNIX/Linux操作系统的关键退出代码:
★ EX_SUCC 0指出所有行装载成功。
★ EX_FAIL 1指出存在命令行错误或语法错误。
★ EX_WARN 2指出有的行或所有行被拒绝。
★ EX_FTL 3指出操作系统错误。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论