oracle 如何输出 table(number_array),如何将Oracle表导出为制表符分隔值?(How can I export an Oracle table to tab separat...

如何将Oracle表导出为制表符分隔值?(How can I export an Oracle table to tab separated values?)

我需要将数据库中的表导出到制表符分隔值文件。 我在Perl和SQL Plus上使用DBI 。 它是否支持(DBI或SQL Plus)导出和导入TSV文件?

我可以编写一个代码来满足我的需求,但我想使用现成的解决方案(如果有的话)。

I need to export a table in the database to a tab separated values file. I am using DBI on Perl and SQLPlus. Does it support (DBI or SQLPlus) exporting and importing to or from TSV files?

I can write a code to do my need, But I would like to use a ready made solution if it is available.

原文:https://stackoverflow.com/questions/2011871

更新时间:2020-02-28 21:55

最满意答案

将表转储到具有制表符分隔值的文件应该相对简单。

例如:

open(my $outputFile, '>', 'myTable.tsv');

my $sth = $dbh->prepare('SELECT * FROM myTable');

$sth->execute;

while (my $row = $sth->fetchrow_arrayref) {

print $outputFile join("\t", @$row) . "\n";

}

close $outputFile;

$sth->finish;

请注意,如果您的数据包含制表符或换行符,则无法正常工作。

It should be relatively simple to dump a table to a file with tab-separated values.

For example:

open(my $outputFile, '>', 'myTable.tsv');

my $sth = $dbh->prepare('SELECT * FROM myTable');

$sth->execute;

while (my $row = $sth->fetchrow_arrayref) {

print $outputFile join("\t", @$row) . "\n";

}

close $outputFile;

$sth->finish;

Note that this will not work well if your data contains either a tab or a newline.

2010-01-06

相关问答

这里有很多可能的因素; 首先请注意,协议缓冲区的连线格式对字符串使用直接的UTF-8编码; 如果你的数据是由字符串占主导地位,它最终将需要大约相同数量的空间,就像TSV。 协议缓冲区也被设计用来帮助存储结构化数据,即单一表格场景中更复杂的模型。 这对尺寸没有太大贡献,但是开始与xml / json等(它们在能力方面更相似)比较,差异更明显。 此外,由于协议缓冲区非常密集(尽管UTF-8),在某些情况下,压缩它实际上可能会使其变大 - 您可能需要检查这是否属于这种情况。 在您呈现的场景的快速示例中,

...

当正则表达式找不到任何匹配项时,line.split不返回null。 相反,它返回一个数组,整行作为第一个也是唯一的元素。 因此,第一个条件始终是真的。 line.split does not return null when the regular expression doesn't find any matches. Instead it returns an array with the whole line as the first and only element. Therefore

...

假设:文本文件是一个名为'values.txt'的文件; 它有一个不会被使用的标题行,Excel文件是一个名为'source.xlsx'的文件,其中数据位于名为'Sheet1'的工作表上。 要获取要选择的项目列表,请执行以下操作: import openpyxl, csv

wb = openpyxl.load_workbook(filename='source.xlsx')

ws = wb['Sheet1']

# this is a list generator which scans colu

...

不需要任何临时文件。 这可以使用awk的一次调用来完成: BEGIN {

FS = OFS = "\t"

}

{

n = split($3 "," $4, a, /,/) / 2

printf "%s%s", $0, OFS

for (i = 1; i <= n; ++i)

printf "%d%s", a[i+n]-a[i], (i

}

在逗号上拆分第三列和第四列。 打印该行,然后是制表符,然后是每个减法的结果。 假设第三

...

我不知道如何将数据从hdfs加载到Hive表中 您正在创建一个hdfs目录上的表模式。 我应该使用create手动定义表的结构还是在自动创建所有列时是否有自动方式? 除非您没有告诉sqoop创建表 ,否则必须手动执行。 将此表导出到单个制表符分隔文件中。 查询可能有效,或者除非sqoop将分隔符设置为\t ,否则您需要从第一个指定此类列分隔符创建另一个表。 然后,您甚至不需要查询表,只需在目录上运行hdfs dfs -getMerge I don't know how to load data f

...

问题出在这里: fscanf(STDIN, "%d\t%d\t%d\n", $space_sep_vals);

fscanf()的格式字符串包含3个转换说明符%d但您只提供了一个变量来存储读取值。 由于参数不足, fscanf()会触发一个警告(你可能看不到因为你的PHP被错误地配置为隐藏它们)并返回而没有读取$space_sep_vals任何$space_sep_vals 。 始终传递给fscanf() (以及printf() / scanf()系列中的任何其他函数,正确数量的参数与格式字符串

...

将表转储到具有制表符分隔值的文件应该相对简单。 例如: open(my $outputFile, '>', 'myTable.tsv');

my $sth = $dbh->prepare('SELECT * FROM myTable');

$sth->execute;

while (my $row = $sth->fetchrow_arrayref) {

print $outputFile join("\t", @$row) . "\n";

}

close $outputFile;

...

尝试, writedlm(STDOUT,mat)

writedlm也可以写入缓冲区和任何类型为IO的子类型。 Try, writedlm(STDOUT,mat)

writedlm can also write to buffers and anything which is a subtype of type IO.

您必须一次处理一行文件:读取,解析和写入。 import csv

# File names: to read in from and read out to

input_file = "tester_2014-10-30_til_2014-08-01.txt"

output_file = input_file + "-SA_input.txt"

## ==================== ##

## Using module 'csv' ##

## ==================

...

使用外部数据导入>导入和链接>文本文件保存该导入然后从此处使用保存的导入 。 根据您的数据,如果最好在进行验证检查之前导入到临时表中,请导入到真实表中。 另请参阅:以编程方式将CSV数据导入Access 如何修改已保存的Microsoft Access 2007或2010导入规范? It turns out all I needed to do was to add a Schema.ini file to the directory housing the text file. I did th

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值