私は試した
select * from users
save D:\test.sql create;
しかし、SQL plusは「適切に終了していません」と表示しますWindowsのOracle SQLでパスを指定するにはどうすればよいですか?
スプールを使用します。
spool myoutputfile.txt
select * from users;
spool off;
これにより、SQL * Plusを実行したディレクトリにmyoutputfile.txtが作成されることに注意してください。
SQLPlusが起動し、「output.txt」という名前のファイルに出力するときに、これをSQLファイル(「tmp.sql」など)から実行する必要がある場合:
tmp.sql:
select * from users;
コマンド:
sqlplus -s username/password@sid @tmp.sql > output.txt
気を付けてください、今は目の前にOracleインスタンスがありません。そのため、メモリから記述した内容をデバッグするには、独自の作業を行う必要があります。
Marcと非常によく似ていますが、私が作るのは、次のようなパラメータにスプールすることだけです。
WHENEVER SQLERROR EXIT 1
SET LINES 32000
SET TERMOUT OFF ECHO OFF NEWP 0 SPA 0 PAGES 0 FEED OFF HEAD OFF TRIMS ON TAB OFF
SET SERVEROUTPUT ON
spool &1
-- Code
spool off
exit
そして、SQLPLUSを次のように呼び出します。
sqlplus -s username/password@sid @tmp.sql /tmp/output.txt
spool "D:\test\test.txt"
select
a.ename
from
employee a
inner join department b
on
(
a.dept_id = b.dept_id
)
;
spool off
このクエリは、SQLの結果をD:\ test\test.txtにスプールします
answer 2をもっと簡単にするために、保存したファイルを置くことができるフォルダーを定義することもできます
spool /home/admin/myoutputfile.txt
select * from table_name;
spool off;
その後、nanoまたはvi myoutputfile.txtのみを使用すると、すべてのSQLトラックが表示されます。
希望はその助けです:)