Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SQLPLUS saving to file

I have to use SQLPLUS for my database class, and our first assignment is simple saving.

I followed the instructions.. (I'm using PuTTY to access sqlplus)

"Use the following SQL commands in this exercise and try the SAVE and SPOOL commands to save your SQL commands and output to external files.

select table_name from all_tables where owner='UNIVERSITY';
select * from university.faculty;
select * from university.clubs;

For this lab, do the following:

  • At the SQL> prompt, type Save test.sql (or save test.sql replace if the file already exists) then hit enter; then type any SQL commands, the commands will be saved to the test.sql file. Later you can use the START command to run the saved SQL commands. E.g.: SQL> start test.sql

  • At the SQL> prompt, type spool output.txt then enter; then type any SQL commands; when finished type 'spool off'; the commands and results will be saved to file output.txt. The file will be overwritten if used in the spool command again. Turn in file test.sql and output.txt in the dropbox on D2L by Monday before class."

(Obviously asking for help isn't against the rules, since the instructions are right there already.. i simply don't understand them or they're wrong)

When I type SAVE test.sql i yield => "Nothing to save"

When I type SAVE test.sql after a query, it saves only the last typed query.

How do I have it save ALL my queries instead of just the last one typed?

like image 774
Sterling Archer Avatar asked Jan 23 '12 02:01

Sterling Archer


People also ask

How do I save a file in Oracle?

If you want to save the script with the name file, because it is a command keyword, you need to put the name file in single quotes. Specifies the script in which you wish to save the buffer's contents. Creates a new file with the name specified. This is the default behavior.


1 Answers

How do I have it save ALL my queries instead of just the last one typed?

SAVE saves the content of the SQL*Plus buffer into the file. The buffer gets replaced with every SQL statement that you write, hence you get only the last command. Save has an append command that will append to the file.

So, first create your file.

save test.sql create

and append the file after every SQL script.

select * from employees
/
save test.sql append;
select * from departments
/
save test.sql append;

and so on

like image 109
Sathyajith Bhat Avatar answered Oct 22 '22 15:10

Sathyajith Bhat