Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Problema Function SQL

  1. #1

    Problema Function SQL

    Ciao a tutti...ho un problema con questa function. Eseguendola con il comando "SELECT DATA_REAZIONE(...) FROM DUAL" mi mostra il seguente errore : ORA-14551: impossibile eseguire un'operazione DML all'interno di una query.

    create or replace function "DATA_REAZIONE" (codreattore in NUMBER, duratareaz in NUMBER, data in DATE) return DATE

    AS
    val1 NUMBER;
    val2 DATE;

    BEGIN
    select rp.cod_rp, rp.data_reazione into val1, val2
    from reazione_prog rp, reazione r
    where rp.cod_reazione = r.codice and r.durata >= duratareaz and rp.data_reazione > data and rp.stato = 'ANNULLATA';

    UPDATE REAZIONE_PROG SET STATO = 'ANNULLATA' WHERE COD_RP = val1;
    ...
    return val2;
    END;


    Anche se utilizzo un cursore mi da sempre lo stesso errore. Qualcuno mi sa dire cosa c'è di sbagliato? Grazie...

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Credo che sia perché la funzione non restituisce soltanto un valore ma esegue anche un'operazione di UPDATE (che è un'operazione di DML) e questo ti causa problemi all'interno di una query.

    Prova a commentare quell'UPDATE e vedi se va, o almeno se ti da un altro errore... so che poi la funzione non farebbe quello che vuoi, ma è giusto per individuare il bug.
    every day above ground is a good one

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 © 2024 vBulletin Solutions, Inc. All rights reserved.