SQLDeveloper 假脱机到用户配置文件

SQLDeveloper Spool to user profile

我正在构建一个 powershell 脚本,它将执行 SQL 查询并将结果假脱机到 csv。之后会读取此文件并执行其他操作。 我想在运行脚本的用户的用户配置文件目录中假脱机。

现在我已经硬编码了我的目录并且工作正常。

spool C:\users\<username>\documents\cutoff.csv REP

但我不确定我是否有权将文件保存在 HD 上的任何其他目录中。

我以为会是这样的

spool %userprofiledirectory%\cutoff.csv

就像在 windows powershell 中一样,有命令

[Environment]::GetFolderPath('MyDocuments')

我刚刚发现 sqlplus 总是写入当前工作目录,除非你给它一个完全限定的文件名来写入。因此,如果您执行 CD Your_Directory,然后 运行 使用 SQLPLUS 编写脚本,它会在您之前移动的目录中假脱机!

如果您正在使用 SQLcl 或 SQL Developer,那么只需使用 CD 命令设置您当前的工作目录 - 这将用于查找 [=15] 的文件=] 以及写入新文件的位置。

您当然也可以在 SPOOL 命令中使用带目录路径的完全限定文件。

SQLcl: Release 19.2.1 Production on Thu Aug 15 09:07:50 2019

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Last Successful login time: Thu Aug 15 2019 09:07:55 -04:00

Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0


SQL> help cd
CD
---

 Changes path to look for script at after startup. 
(show SQLPATH shows the full search path currently: 
- CD current directory setting set by last cd command 
- baseURL (url for subscripts) 
- topURL (top most url when starting script) 
- Last Node opened (i.e. file in worksheet) 
- Where last script started 
- Last opened on sqlcl path related file chooser 
- SQLPATH setting 
- "." if in SQLDeveloper UI (included in SQLPATH in command line (sdsql))
). 
SQL>