3

使用 SQL Developer / Toad for Oracle 等 SQL 工具

是否可以编写一个 SQL 查询来执行以下操作

SELECT * FROM TABLE
WHERE COLUMN1 IN CSV_FILE

CSV 文件只是一列没有分隔符的数据。

我怎样才能做到这一点?

约束

我无法创建临时表来插入 CSV 文件(没有创建权限)

我正在使用该列的数据是该表中唯一的索引,因此我不能使用其他列进行查询,否则它会非常慢。

谢谢

4

3 回答 3

2

创建外部表是最好的方法。如果您没有权限,那么另一种方法是将文件移动到任何 oracle 目录的路径(Oracle 对象 - 目录)。并在 utl_file 的帮助下读取文件,遍历它并在一个 PL/SQL 块中进行操作,这太乏味了。

请参阅使用 utl_file 的示例 - http://psoug.org/reference/utl_file.html

但是,如果您尝试获得创建访问权限,那就更好了。

于 2013-09-17T11:06:02.930 回答
1
  1. Toad for Oracle 数据导入(内部使用 sqlldr)
    • 创建一个临时表并使用此实用程序加载数据并选择值
  2. 外部表
    • 创建外部表,通过该表加载数据并选择值。
于 2013-09-17T10:59:25.697 回答
0

使用SQL 开发人员,您可以在架构中创建一个表,并使用csv文件中的数据加载该表。

笔记:

  1. 您需要为每列创建一个空白列以从excel导入
  2. 带分隔符的Excel导出csv";"
  3. 如果SQL 开发人员 (4.1.5)没有预览分隔列中的字段,请尝试使用 Next/back 按钮向前/向后移动

以及以下页面中的图形指南: http ://www.thatjeffsmith.com/archive/2012/04/how-to-import-from-excel-to-oracle-with-sql-developer/

于 2017-05-02T15:17:29.280 回答