0

我在 Oracle 11g 中有一个名为 Name: Customer 的表

ID|Name |Country
1 |Mark |USA
2 |Allan|UK
3 |James|USA
4 |Todd |UK
5 |Mike |UK

我有一个文本文件 list.txt

ID
1
3
5

我需要在文本文件中导出结果

结果.txt

1 |Mark |USA
3 |James|USA
5 |Mike |UK

基本上我需要在客户表中提取记录 ID 1、3、5 并将其保存到文本文件(result.txt)中,这可以在存储过程或脚本中完成。

4

2 回答 2

0
  1. 创建一个表list(ID NUMBER)来存储list.txt的内容
  2. 使用命令 sqlldr 将 list.txt 导入表列表

    sqlldr db_user/db_password@DB_SERVICE control=D:\list.ctl

    list.ctl 内容:

    load

    infile 'D://list.txt'

    truncate into table test

    fields terminated by '|'

    (id)

3.从oracle表中导出查询结果: sqlplus -S db_user/db_password@DB_SERVICE @D:\run.sql

run.sql 内容:

`SET echo OFF`

`SET feedback OFF`

`SET pagesize 0`

`SET term OFF`

`SET trims ON`

`SET timing OFF`

`SET verify OFF`

`SPOOL D:\result.txt`

`select a.id || '|' || a.name || '|' || a.Country From Customer a, list b`

`where a.id = b.id;`

`SPOOL OFF`

`quit`
于 2013-09-11T14:22:16.783 回答
0

可以通过使用外部表从文件中获取数据并将其与您的表连接并在存储过程中使用 utl_file 导出数据。

但是,如果您使用的是 shell 或任何其他脚本语言,则直接从脚本调用查询并将数据推送到文件中。这就是简单的方法。

于 2013-09-11T07:03:44.480 回答