问题标签 [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.
sql - Importing Data from txt file to Oracle database
Senario -There are 2000 records in a .txt file and 3 columns (Name, Phone Num, City). I need to import them into Oracle database vai SQL Loader. Questions - From .txt file, I do not want to import records from 50 to 100, into Oracle database. How can I achive this? And I want to keep Phone number colume null.
sql - sql loader 将可变数量的物理记录与单个物理记录相关联
我有以下数据:
现在我希望每条以“A”开头的记录都与以“B”开头的记录相关联,直到遇到另一个“A”记录或非“B”记录。例如从上面的数据中,我想检索以下数据(2条记录),
A 记录后面的 B 记录数量是可变的,即(A 记录后面可能有任意数量的 B 记录(以下数据中为 3 条)。
所以结果输出将是
是否可以使用 sql loader 执行上述操作?任何帮助/指针都将受到欢迎。
编辑:我在考虑使用CONTINUEIF
子句,但似乎没有办法消除之前检索到的记录。例如,如果我使用,
我会一口气得到“芒果茶印迹 asdf”,而不是
oracle - sqlldr LRM-00112:参数“控制”不允许有多个值
我有一个带有这段代码的 shell 脚本:
变量 $ws_usr_eva、$ws_pass_eva 和 $ws_esq_eva 在我执行 sqlldr 之前被填充。我已经检查了内容并且没问题。
因此,当我运行脚本时,它会显示:LRM-00112: multiple values not allowed for parameter 'control'
我试图在没有变量的情况下运行脚本,它工作正常:
我必须在 sqlldr 中使用变量,因为它从配置文件中读取它们。
我也尝试使用 sqlldr userid=$ws_usr_eva/$ws_pass_eva@$ws_esq_eva ...但它没有用。
你能帮助我吗?
提前致谢。
java - PHP同步
我不确定最好的解决方案,但这就是我所做的。
我正在使用 PHP 查看包含 zip 文件的目录。
这些 zip 文件包含要通过 SqlLoader (sqlldr) 加载到 oracle 数据库中的文本文件。
我希望能够通过命令行启动多个 PHP 进程,以将这些 zip 文件加载到数据库中。
如果其他 'php loader' 进程正在运行,它们不应重叠并尝试加载相同的 zip 文件。我知道我可以启动一个进程并让它处理每个 zip 文件,但我宁愿为传入的 zip 文件启动一个新进程,以便我可以同时加载。
现在,我创建了一个类,该类将通过创建一个名为“filename.ext.lock”的文件来“锁定”一个 zip 文件、一个目录或一个通用文本文件。启动的其他进程将检查文件是否已以这种方式“锁定”,如果有,它将跳过该文件并移至另一个文件进行处理。
我创建了一个使用目录并创建“进程 ID”文件的类,以便每个 PHP 进程都有一个 ID,可用于记录目的和识别哪个 PHP 进程已锁定文件。
我在一台 Windows 机器上,对于那些可能建议使用 pcntl 的人来说,它不在计划中让它成为一台 ubuntu 机器。
您还看到了哪些其他解决方案?我知道这并不是真正同步的,因为可能即将创建一个锁定文件,然后发生上下文切换,然后另一个 PHP 进程在第一个 PHP 进程可以创建锁定文件之前“锁定”该文件。
您能否提供一些有关如何使此解决方案更好的想法?一个java实现?二郎?
还忘了提到,PHP 进程连接到数据库以获取有关它将通过 SqlLoader 加载的文件的元数据。我认为这并不重要,但以防万一。
快速说明:我知道 sqlldr 会锁定它正在加载的表,如果多个进程尝试加载到同一个表,它将成为瓶颈。为了缓解这个问题,我计划在当前加载的表之后创建一个包含文件名的目录。表加载完成后,相应的文件将被删除,其他进程将检查加载该表是否安全。
额外信息:我使用 7zip 解压缩文件和 php 的 exec 来执行这些命令。
我也在使用 exec 来调用 sqlldr 。
zip 文件可能很大 (1gb),加载一个表可能需要 1 小时。
oracle - Oracle sqlldr 是否可以接受 TNS 条目作为 Oracle 10 和 11 中的实例限定符?
是否可以使用与 Oracle 10/11 捆绑在一起的 sqlldr 使用完全限定的 TNS 条目?
例如,在 SQLPlus 中:
但是使用 sqlldr (SQL Loader) 直接使用 TNS 条目似乎存在问题。具体来说:
这是产生的错误消息:
尝试将 TNS 条目封装在引号中会产生相同的错误。
查看了 sqlldr 文档,并尝试使用 'userid' 命令行参数无济于事。具体来说:
Oracle 希望强制用户访问本地实例以减轻将数据推送到远程主机时的 I/O 是有道理的。但是支持的语法的偏差并不是那么直观。还有其他人遇到类似的问题吗?
oracle - oracle中使用sqlldr导入数据
我有一个txt文件如下。1st machine_no,2nd emp_no, 3rd shift_type(1代表进入,3代表退出,也可以是4代表进入(多次进入),5代表退出(多次退出),第5个工作日期,第6个是时间。
我想将txt文件中的数据加载到oracle表中,如下所示:
请告知使用代码最简单和最快的方法是什么。感谢你的帮助。
oracle - 如何在 oracle 中使用 sqlldr 有条件地加载数据
我有一个txt文件如下。1st machine_no
,2nd emp_no
, 3rd shift_type
(1 进入,3 退出), 4 work_date
, 4 是时间。
我想在表中加载数据。time1
如果有时间的字段是 1,如果有时间
的time_type
字段time2
是time_type
3。请告诉我如何在控制文件中有这个。
提前感谢您的帮助..麦基。
下面是oracle中的txt文件和表格。
表格如下:
python - 如何将python的subprocess.Call方法输出重定向到文件而不是控制台?
我在 subprocess 模块中使用 python 的 Call 方法来执行 sqlldr 命令
当我运行上面的脚本时,sqlldr 命令的输出被打印到我想重定向到文件或忽略它的控制台。因为 sqlldr 也会写入指定的日志。
我尝试了类似的方法,将输出重定向到文件,但在这一行抛出错误
如何做到这一点?
mysql - Equivalent of SQL loader in MySQL
I have found SQL loader in Oracle is very helpful, fast and efficient. What is the MySQL equivalent of SQL loader?
python - Oracle SQL 加载器在加载非常大的日志文件时出错
我有一个 python 脚本,它遍历目录中的日志文件,并使用 oracle sqlloader 将日志文件加载到 oracle 数据库。该脚本工作正常,甚至 sqlloader ..
但是在加载大约 200k 条记录后,加载失败并出现此异常..
我不确定为什么会这样。我检查了与表的表空间相对应的数据文件,并且它已将自动扩展设置为 true。还有什么可能的原因?
在“ sqlldr ”命令中,我有 rows=1000 和 Direct=True,所以它为每加载 1000 条记录提交,我已经通过改变这个数字进行了测试,仍然得到相同的错误。