oracle 将数据假脱机到CSV文件

hgncfbus  于 2023-11-17  发布在  Oracle
关注(0)|答案(1)|浏览(145)

我试图使用下面显示的SQL脚本来假脱机数据,创建一个没有数据的文件,当运行select语句时,它有3行数据。

SPOOL "C:\Users\nmirza\Desktop\\YourFile.csv" REP

  SELECT * FROM  SATURN.SPRIDEN A1
  WHERE
    A1.SPRIDEN_PIDM = 3075205;
  /
  SPOOL OFF;
  /

字符串
有人可以帮助我为什么我没有得到任何数据在CSV文件?

SPOOL "C:\Users\nmirza\Desktop\\YourFile.csv" REP

    SELECT * FROM  SATURN.SPRIDEN A1
    WHERE
   A1.SPRIDEN_PIDM = 3075205;
 /
 SPOOL OFF;


/

irlmq6kh

irlmq6kh1#

这段代码 * 应该 * 创建一个CSV文件。我没有你的表,但我在我的表上测试了它,或多或少地输入了你所做的:

SQL> spool "C:\temp\\yourfile.csv" REP
SQL> select * from dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

SQL> /

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

SQL> spool off;
SQL> /

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

字符串
type命令列出文件的内容:

SQL> $type "C:\temp\\yourfile.csv"


这就是结果-正如你所看到的,一切都在这里:

SQL> select * from dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

SQL> /

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

SQL> spool off;

SQL>


如果你想知道为什么SQLPlus中有三个数据(CSV文件中有重复数据),那是因为你误用了斜杠。在SQLPlus中,它的意思是“重新执行最后一条语句”,这适用于你的代码-这样做:

SELECT * FROM  SATURN.SPRIDEN A1
  WHERE
    A1.SPRIDEN_PIDM = 3075205;      --> semi-colon terminates statement and executes it
  /                                 --> this slash re-executes previous SELECT
  SPOOL OFF;
  /                                 --> this re-executes it again (but it


由于spool off的原因,CSV文件中不包含)
为什么你在CSV文件中看不到任何东西?我不知道。你用PLSQL标记了这个问题,但这几乎不是真的。spool在SQL*Plus中工作,与PL/SQL无关。我删除了那个标记,并添加了另一个似乎更合适的标记。
因此,你能解释一下你到底做了什么吗?你使用的是什么工具?如果你认为这可能有助于我们帮助你,请贴一张截图。

相关问题