SQL*Loader问题
我收到错误 SQL*Loader-606,其中方法:
INTO 中指定的同义词 SQL*Loader 控件中的 TABLE 子句 file 通过 a 指定远程对象 数据库链接。只是一个同义词 可以指定现有的本地表 在 INTO TABLE 子句中。
有什么方法可以使用 SQL*Loader 插入远程表吗?
I am getting an error SQL*Loader-606, which means:
The synonym specified in the INTO
TABLE clause in the SQL*Loader control
file specifies a remote object via a
database link. Only a synonym for an
existing local table can be specified
in the INTO TABLE clause.
Is there any way we can insert into remote table using SQL*Loader?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
因为您使用的是 10g,所以您可以使用外部表而不是 SQL Loader。
设置外部表很容易。 了解更多信息。
要让外部表选取一个新文件(您可能需要这样做,因为您有一个重复的过程),请执行以下操作:
然后您可以执行以下操作:
这可以避免两次 DML。外部表不如经过精心调优的 SQL*Loader 进程那么快,但与网络流量税(这在您的场景中是不可避免的)相比,这将是微不足道的。
Because you are on 10g you can use External Tables instead of SQL Loader.
Setting up an External Table is easy. Find out more.
To get the External Table to pick up a new file (which you may need to do because you have a repeating process), do this:
Then you can do this:
This avoids two lots of DML. External tables are not as fast as a well-tuned SQL*Loader process, but that will be trivial compared to the network traffic tax (which is unavoidable in your scenario).
在有该表的服务器上运行 SQL Loader?
一定有一个原因,但这对我来说似乎是最简单的。
Run SQL Loader on the server that has the table?
Must be a reason why not, but this seems the simplest to me.
如果您无法使用外部表(例如,因为数据文件位于客户端计算机上而不是数据库服务器上),您可以插入到远程对象的视图中。
例如,
我的 XE 测试取得了成功。
对于视图,所有列大小、数据类型等都固定在本地模式上,因此 sqlldr 不会有问题。
If you couldn't use external tables (eg because the data file is on a client machine rather than on the database server), you can insert into a view on the remote object.
For example
succeeded on my XE test.
For a view all the column sizes,datatypes etc are fixed on the local schema so sqlldr doesn't have a problem.