Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [ORACLE] Stored Procedure con Cursor parametrico

    Ciao a tutti,

    ho iniziato da poco a studiare le stored procedure, e sto cercando di realizzarne una semplice per Oracle che mi consenta di fare quanto segue.
    La stored procedure prende in input una serie di parametri e in base ad essi esegue una select che differisce di caso in caso solo nella clausola WHERE.

    Quindi in altre parole, prendo l'input, se si verifica la condizione A, allora nella condizione WHERE ho id = 1; se si verifica la condizione B ho id = 2, ecc.

    Ho provato a buttare giù qualcosa da solo ma ci sono ancora dei dubbi che mi rimangono:

    codice:
    CREATE OR REPLACE PROCEDURE myProcedure(
        cursorParam OUT SYS_REFCURSOR, 
        a IN VARCHAR2,
        b IN VARCHAR2,
        flag IN VARCHAR2)
    
    IS
        CURSOR c1(id_p IN NUMBER)
        IS
          SELECT A, B, C, D
          FROM MY_TABLE
          WHERE ID = id_p;
    
    BEGIN
    
        IF a = 22 AND b != 'D' AND flag = 'P'
        THEN
              OPEN c1(2);
      END IF;
    
    END;
    /
    Vorrei ritornare un cursore al programma Java che chiamerà la Stored Procedure, con il record ricercato, ma se dichiaro il cursore così, non ci riesco.
    Riesco a ritornare il cursore con i dati solo se lo chiamo cursorParam, che però essendo già usato mi manda in errore la dichiarazione del cursor che ho dovuto chiamare c1.

    Il motivo per cui sono arrivato a dichiarare il cursor in questo modo è perché mi serve una select parametrica.

    Suggerimenti?

  2. #2
    Ciao a tutti,

    per il momento ho risolto creando una stored procedure che prende in input l'ID e fa la query in base a quell'ID e ritorna i valori richiesti in output invece del cursore.
    Dalla stored procedure iniziale, chiamo questa nuova in base a delle condizioni.

    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.