-1

Is there anyway we can write/capture the dbms outputs in a log file? I have a procedure run from the program and it has dbms in it.. Where the output will be saved when executed? Please guide

GKN
  • 107
  • 1
  • 2
  • 8
  • You need to put an example of your code. Your question , without it, is too vague. – Andy K Dec 28 '14 at 08:16
  • 1
    Put `SET SERVEROUTPUT ON;`before the `declare` statement – Andy K Dec 28 '14 at 08:17
  • 1
    http://stackoverflow.com/questions/1453538/how-to-redirect-the-output-of-dbms-output-put-line-to-a-file – simplify_life Dec 28 '14 at 11:00
  • What kind of program are you calling the procedure from? If it isn't something that supports this natively. e.g. via `set serveroutput on`, you'd need to extract the buffered output - it's stored in a buffer as the docs say, not saved in a table. ([This is one way](http://stackoverflow.com/a/19143017/266304), but it really depends on your client and what you want to do next). – Alex Poole Dec 28 '14 at 18:11
  • Worse stuff man is that you could have easily find the answer, just by typing your question on the internet. – Andy K Dec 29 '14 at 08:14

3 Answers3

2

Put SET SERVEROUTPUT ON;before the declare statement

Andy K
  • 4,944
  • 10
  • 53
  • 82
2

You need use SET SERVEROUTPUT ON

set serveroutput on
begin
dbms_output.put_line('something to write')
end;
starko
  • 1,150
  • 11
  • 26
1

As already said you'll have to include a SET SERVEROUTPUT ON; statement before your DECLARE but you'll also need to handle the output on the OS level:
sqlplus -s user/pword@db '@script.sql;' > log.txt
Hint: the -s flag will hide the sqlplus version info from your log file.

mmmmmpie
  • 2,908
  • 1
  • 18
  • 26