使用十进制分隔符从Oracle导出tsv中的数字(逗号)

时间:2019-08-15 19:06:16

标签: python oracle csv export-to-csv separator

我正在使用python模块将数据加载到tsv:

cursor = con.cursor()
tsv_file = open(f"{name}.tsv", "w",encoding='UTF-8')
csv.writer(tsv_file, delimiter='\t',quotechar="", lineterminator="\n", quoting=csv.QUOTE_NONE)
r = cursor.execute(f"""select column1, column2, or_num
 from tablename s
""")
writer.writerow([ i[0] for i in cursor.description ]) # heading row
for row in cursor:
    writer.writerow(row)

Oracle中有一列:Data in column
但是在下载的文件中,数字包含一个点 number from file

我尝试过: 1)to_char(round(or_num),'9999D999')or_num
结果常规数,其开头为空格,分隔符后为零:16,000
2)to_char(or_num,'9990D99', 'NLS_NUMERIC_CHARACTERS = '',.''')
结果-如第一个示例
3)replace(or_num,'.',',')
结果:,8需要0,8

我想得到这个结果(将点更改为逗号)result

1 个答案:

答案 0 :(得分:0)

要将小数字符设置为逗号,将分组分隔符设置为句点, 在会话级别指定NLS_NUMERIC_CHARACTERS参数,如下所示:

ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ",."

现在在同一会话中,执行查询以在下载的csv文件中查看结果。

干杯!

相关问题