Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> debugging an Oracle function??
I have a function that accepts a value and runs three cursors. I then
run an 'if statement' using the recordcount of the cursors and return
a string to the user.
All I wanna know is how do I debug/test this function in SQL PLus. I need to see the values that my cursors are returning, certain values of variables, etc
I was told to set 'set serveroutput on' and then I can use dbms_outout.put_line to write out any values as long as I run the function from a stored procedure.
Can anyone show my some sample code of how to run a function form a stored proc?
Here's the function I'm using
CREATE OR REPLACE FUNCTION QuestionTypeForQuestionId
(Survey_questions_id_in IN NUMBER)
RETURN varchar2 IS
CURSOR freeform_cur IS SELECT Survey_questions_freeform FROM Survey_Questions WHERE Survey_questions_id = Survey_questions_id_in; freeform_cur_rec freeform_cur%ROWTYPE; CURSOR allowed_cur IS SELECT Survey_questions_allowed FROM Survey_Questions WHERE Survey_questions_id = Survey_questions_id_in; allowed_cur_rec allowed_cur%ROWTYPE; CURSOR likert_count_cur IS SELECT COUNT(Survey_ques_options_id) as Survey_ques_options_id FROM Survey_Ques_Options WHERE Survey_questions_id = Survey_questions_id_in AND (Survey_ques_options_text = '1' OR Survey_ques_options_text = '2' OR Survey_ques_options_text = '3' OR Survey_ques_options_text = '4' OR Survey_ques_options_text = '5' ); likert_count_cur_rec likert_count_cur%ROWTYPE; BEGIN OPEN freeform_cur; FETCH freeform_cur INTO freeform_cur_rec; CLOSE freeform_cur; OPEN allowed_cur; FETCH allowed_cur INTO allowed_cur_rec; CLOSE allowed_cur; OPEN likert_count_cur; FETCH likert_count_cur INTO likert_count_cur_rec; CLOSE likert_count_cur; // I'd love to be able to output these values so I can see them dbms_output.put_line(freeform_cur_rec.Survey_questions_freeform); dbms_output.put_line(allowed_cur_rec.Survey_questions_allowed); dbms_output.put_line(likert_count_cur_rec.Survey_ques_options_id); IF freeform_cur_rec.Survey_questions_freeform = '1' then return 'Open Response'; ELSIF allowed_cur_rec.Survey_questions_allowed = '1' or allowed_cur_rec.Survey_questions_allowed = '-1' then IF likert_count_cur_rec.Survey_ques_options_id = '5' then return 'Likert Scale'; ELSE return 'Radio button'; END IF; ELSE return 'Checkbox'; END IF;
Thanks
rdalfonso_at_nyc.rr.com
Received on Wed Feb 12 2003 - 12:17:19 CST
![]() |
![]() |