Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [PL/SQL] funzione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    211

    [PL/SQL] funzione

    ciao a tutti, devo creare la seguente funzione in PL/SQL:

    creazione di una funzione che restituisca la spesa riportata in una "nota spese" di un parlamentare passato in input raggruppata per legislatura.

    in pratica io ho il databse "parlamentoDB" con le seguenti tabelle utili per la funzione:

    PARLAMENTARI
    (NOME, COGNOME, DATA_NASCITA, TIPO, INIZIO CARICA, FINE CARICA, LEGISLATURA, E ALTRI ATTRIBUTI)

    SPESE
    (NOME_PARL, COGN_PARL, NASCITA_PARL, LEGISLATURA, TRASPORTO, TELEFONO, SANITARIE, SICUREZZA, ALTRO, TOT).

    QUELLO CHE MI CHIEDO IO COME DEVE ESSERE QUESTA NOTA SPESE? STO USANDO SQL DEVELOPER MA LE FUNZIONI RESISTUISCONO SOLO I TIPO PREDEFINITI OLTRE A CLOB E BLOB;
    HO PROVATO A FAR RESTITUIRE UN CLOB MA MI Dà UN'UNICA STRINGA SENZA LA POSSIBILITà DI POTER ANDARE A CAPO IN MODO FAR FAR VISUALIZZARE UNA NOTA SPESE PIù SCHEMATICA.

    LA FUNZIONE CHE HO FATTO è LA SEGUENTE:

    codice:
    create or replace FUNCTION repositoryadm.NOTA_SPESE 
    (
      NOMEP IN VARCHAR2, 
      COGNOMEP IN VARCHAR2, 
      NASCITAP IN DATE  
    ) RETURN CLOB AS 
    
    CURSOR c1 IS
        SELECT * FROM REPOSITORYADM.SPESE
        WHERE((PARL_NOME = NOMEP) and (parl_cognome = COGNOMEP) and (parl_nascita = NASCITAP))
        ORDER BY (SPESE.legislatura);
        
    spesa c1%rowtype;
    nota CLOB := '';
    
    BEGIN
      OPEN c1;
      nota := ' trasporto  telefono  sanitarie  sicurezza  altro  tot' || CHR(13) || CHR(10);
      LOOP
        FETCH c1 into spesa;
        EXIT WHEN c1%notfound;
        nota := nota || '  ' || spesa.trasporto || '  ' || spesa.telefono || '  ' ||spesa.sanitarie || '  ' || spesa.sicurezza || '  ' || spesa.altro || '  ' || spesa.tot || chr(13) || chr(10);
      END LOOP;
      CLOSE c1;
      
      dbms_output.put_line('la percentuale di spesa per il trasporto è ' || ((spesa.trasporto * 100) / spesa.tot) || '%');
      dbms_output.put_line('la percentuale di spesa telefonica è ' || ((spesa.telefono * 100) / spesa.tot) || '%');
      dbms_output.put_line('la percentuale di spesa sanitaria è ' || ((spesa.sanitarie * 100) / spesa.tot) || '%');
      dbms_output.put_line('la percentuale di spesa per la sicurezza è ' || ((spesa.sicurezza * 100) / spesa.tot) || '%');
      dbms_output.put_line('la percentuale di spesa per le altre spese è ' || ((spesa.altro * 100) / spesa.tot) || '%');
        
      RETURN nota;
    END NOTA_SPESE;
    IN PIù LA FUNZIONE NON VISUALIZZA A VIDEO I MESSAGGI.

    COME POSSO FARE??? VI PREGO AIUTATEMI.

  2. #2
    Ciao,
    QUELLO CHE MI CHIEDO IO COME DEVE ESSERE QUESTA NOTA SPESE?
    Dovresti chiederlo a chi ti ha chiesto di creare questa funzione oppure se chiediti in che formato vuoi visualizzare i dati richiesti (csv, richiesta dal web, richiesta da gestionale)

    Facci sapere

    ciao
    Mik

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.