sql - sql查询将数据从不同的表导出到文件
问题描述
目前,我正在尝试使用 sql 语句将数据从不同的数据库(oracle、sqlserver、MySQL...等)导出到文件。有人可以帮我这样做吗,如下所示:
SELECT order_id,product_name FROM orders INTO OUTFILE 'orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
但我的查询不起作用,出现以下错误
ORA-00933: SQL command not properly ended
解决方案
对于 Oracle,一个简单的选择是将查询结果假脱机到文件中(这是您在示例中尝试做的事情)。它是通过命令行工具 SQL*Plus 完成的。您应该了解SET
可以让您做出漂亮输出的命令。
以下是此类命令的示例:
SQL> set termout off
SQL> set trimspool on
SQL> set echo off
SQL> set verify off
SQL> set autoprint off
SQL> set serveroutput off
SQL> set arraysize 1000
SQL> set pagesize 0
SQL> set linesize 100
SQL> set long 10000
SQL> set numwidth 10
SQL> set feedback off
SQL> set colsep ';'
SQL> col empno format 99999
SQL> col ename format a10
SQL> col sal format 999G990
SQL> spool emps.txt
SQL> select empno, ename, sal from emp;
7369;SMITH ; 800
7499;ALLEN ; 1.600
7521;WARD ; 1.250
7566;JONES ; 2.975
7654;MARTIN ; 1.250
7698;BLAKE ; 2.850
7782;CLARK ; 2.450
7839;KING ; 5.000
7844;TURNER ; 1.500
7900;JAMES ; 950
7902;FORD ; 3.000
7934;MILLER ; 1.300
7788;SCOTT ; 3.000
7876;ADAMS ; 1.100
SQL> spool off
SQL>
顺便说一句,您编写的第 2-4 行看起来像 SQL*Loader 的控制文件,用于加载数据(而不是卸载数据)。
推荐阅读
- sql-server - 在 SQL Server 中使用触发器在具有复杂条件的表上创建唯一筛选索引
- java - Java(SE8)中不允许的通用类型数组如何工作?
- python - TypeError:无法解压不可迭代的 NoneType 对象
- java - SCP内存位置中的对象
- c - 将文本文件中的十进制数字存储到C中的数组中
- c# - 无法将对象传递给 Dapper.SimpleCrud 插入
- google-cloud-platform - Is it not possible to create a postgres cloudsql via deployment manager?
- php - 如何从codeigniter中的多行获取相同的foreign_key记录
- java - 如何移动添加到矩阵图块的对象?
- ruby - 从 ruby 中的哈希数组中获取数据