Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Problem with open cursors.
Hi all,I have translated this procedure from T-SQL to PL/SQL.As you see it is a mixed operation
procedure,I mean if some condition is true it does a DML and if other
condition is true it does a Query.
[code]
CREATE OR REPLACE PROCEDURE FaxSettings(
p_USERCODE number, p_HSENDER VARCHAR2, p_HTITLE VARCHAR2, p_DIALTONE number, p_PREFFIX VARCHAR2, p_WAIT number, p_DIALRETRY number, p_READWRITE number, p_MODEM VARCHAR2, p_FAXSERVER NUMBER, p_result_cur OUT sys_refcursor)
AS
v_counter NUMBER := 0;
BEGIN IF p_READWRITE = 1 then
SELECT COUNT(*) INTO v_counter FROM UserAProFaxSettings WHERE Code = p_USERCODE; IF v_counter = 0 then INSERT INTO UserAProFaxSettings (Code,Sender,Title,DialTone ,Preffix,DialWait,DialRetry,Modem, FaxServer) VALUES (p_USERCODE, p_HSENDER, p_HTITLE, p_DIALTONE, p_PREFFIX, p_WAIT, p_DIALRETRY, p_MODEM, p_FAXSERVER); ELSE UPDATE UserAProFaxSettings SET Sender = p_HSENDER, Title = p_HTITLE, DialTone = p_DIALTONE, Preffix = p_PREFFIX, DialWait = p_WAIT, DialRetry = p_DIALRETRY, Modem = p_MODEM, FaxServer = p_FAXSERVER WHERE Code = p_USERCODE; END IF;
END IF; IF p_READWRITE = 2 THEN
OPEN p_result_cur for
SELECT * FROM UserAProFaxSettings WHERE Code = p_USERCODE;
END IF;
END FaxSettings;
/
[/code]
[B]The problem is:[/B] I don't know it will be a DML without cursor or a
Query with a returned cursor to
application.So I do not know if I should close that cursor in application or
no?
Any help will be so appreciated.
-- Message posted via DBMonster.com http://www.dbmonster.com/Uwe/Forums.aspx/oracle/200507/1Received on Sun Jul 31 2005 - 06:00:45 CDT
![]() |
![]() |