问题标签 [sql-loader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - SQL 加载程序给出错误
我执行命令并在控制台收到以下消息:
我从我的 EXCEL 表中创建了 STAGE.CSV 文件。
当我检查我的 STAGE.BAD 文件时,它说
sql - 使用 SQLLDR 进行 Oracle 日期减法
我正在尝试将 NetBackup 统计信息导入 Oracle。我真正想要的一个字段是 ACTIVE START,但它在 bpdbjobs -report 中不可用。可用的是 ACTIVEELAPSED,所以我想从导入时的 END TIME 中减去它,如下所示:
结束时间格式:26/09/2009 10:46:20 PM
ELAPSED TIME 格式:028:32:35(即小时、分钟、秒)
SQL*Loader 控制文件(相关行):
我的谷歌搜索告诉我间隔没有格式掩码,所以我目前很难过(Oracle SQL 不是我的正常工作!)
乔纳森
oracle - 使用 SQL Loader 将 LOB 导入 Oracle 失败
我正在尝试将一个表从 SQL Server 导出到 Oracle,该表由一个 ID 和一个存储为 nvarchar(max) 的非常长的 XML 字符串组成。
SQL Table -- CREATE TABLE MyStuff (MyID int, MyText nvarchar(max))
Oracle Table -- CREATE TABLE MyStuffImported (MyID int, MyText NCLOB)
我正在使用 SQL Server bcp 实用程序导出到文本文件 (MyStuff.bcp),然后通过 SQL Loader 将其导入 Oracle。但是 SQL 加载程序失败并显示以下消息:“数据文件 (MyStuff.bcp) 中的物理记录比最大值长 (1048576)”并且导入了 0 条记录。
我不确定确切的问题是什么。最明显的可能性是 MyText 比最大值 1048576 长,确实有些记录是,但不是全部,那么为什么至少没有导入一些记录呢?有没有办法绕过这个限制?
另一种可能性是我在一些讨论板上读到的,即 MyText 中有 Oracle 无法处理的换行符。我希望我已经通过以下方式解决了这个问题:(1)在从 SQL 导出时删除 \r 和 \n,以及(2)在 SQL Loader 控制文件的记录分隔符中使用 \n(完整文件见下文) . 我是在做不正确的事情,还是没有处理所有情况?
这是我的 SQL Loader 控制文件的文本。请注意,我使用 \ 作为分隔符,这看起来很奇怪,但它是 MyText 字段中唯一未使用的字符。因此,您会看到\\
我的意思是 \ 因为我正在逃避它。
有什么建议么?也许有更好的方法通过 SQL Loader 导入 NCLOB?
sql - SQL*Loader 问题
我收到一个错误SQL*Loader -606,这意味着:
SQL*Loader 控制文件的 INTO TABLE 子句中指定的同义词通过数据库链接指定远程对象。在 INTO TABLE 子句中只能指定现有本地表的同义词。
有什么方法可以使用 SQL*Loader 插入远程表?
python - 有没有办法在 Python 中对 1900 年之前的日期使用类似 strftime 的函数?
我没有意识到这一点,但显然 Python 的strftime
函数不支持 1900 年之前的日期:
我确信我可以自己拼凑一些东西来做到这一点,但我认为该strftime
功能的存在是有原因的(而且它不能支持 1900 年之前的日期也是有原因的)。我需要能够支持 1900 年之前的日期。我只会使用str
,但变化太多。换句话说,它可能有也可能没有微秒,或者它可能有也可能没有时区。有什么解决办法吗?
如果有影响,我这样做是为了将数据写入文本文件并使用 Oracle SQL*Loader 将其加载到数据库中。
我基本上最终做了亚历克斯马泰利的回答。这是一个更完整的实现:
唯一的区别是str(d)
等价于d.isoformat(' ')
。
sql - 从 SQL*Loader 控制文件中访问数据文件名
如何从 SQL*Loader 控制文件中访问输入数据文件名,以便可以将其与输入文件中的数据一起插入到表中?
例如,假设我有以下控制文件:
我想做类似的事情:
假设我没有访问权限,也没有权限编辑将使用此控制文件调用 SQL*Loader 的 shell 脚本。
oracle - External Tables vs SQLLoader
So, I often have to load data into holding tables to run some data validation checks and then return the results. Normally, I create the holding table, then a sqlldr control file and load the data into the table, then I run my queries. Is there any reason I should be using external tables for thing instead? In what way will they make my life easier?
oracle - SQLLDR 和 skip_unusable_indexes
我有一个带有唯一索引的表,我需要将 800,000 行加载到其中。
我更改了索引并使其无法使用。我在我的控制文件中添加了 'options( rows=4000, bindsize=512000, skip_unusable_indexes=TRUE )'。
我仍然收到以下形式的错误:
欢迎提出建议
oracle - sqlldr 使用 NULLIF 转义保留名称
我有一个表,其中有一个名为 [SEQUENCE] 的字段和另一个名为 [REFERENCE]
我可以将 SQLLDR 中的字段定义为
它抱怨 SEQUENCE 是一个 SQLLDR 保留字。
我努力了
似乎没有一个工作
宁愿不调用 SQL,因为这会排除直接路径加载。
oracle - Oracle sqlldr timestamp format headache
I'm struggling to get sqlldr
to import a csv data file into my table, specifically with the field that is a timestamp.
The data in my csv file is in this format:
#xA;I've tried all manner of combinations in my control file and am going around in circles. I can't find anything online - not even the Oracle reference page that details what all the date/timestamp format strings are.
Does anyone know where this reference page is, or what format string I should be using in my control file for this timestamp format.
For reference, this is what I've most recently tried:
#xA;