|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2006
Città: Afragola(NA)
Messaggi: 3336
|
[PL/SQL]Procedure e Funzioni su un database
Ragazzi ho bisogno di una mano nella realizzazione di procedure e funzioni in PL/SQL ecco la base di dati e le relative chiavi
CLIENTI (Codice, Nome, Cognome, CF, e-Mail, Indirizzo, PIN, Località:LOCALITA') FILIALI (ID, Indirizzo, Località:LOCALITA') LOCALITA' (ID, CAP, Nazione, Nome, Provincia, Regione/Stato) INTESTATARI_CONTI Cliente:CLIENTI,Conto_corrente:CONTI_CORRENTI, Filiale:FILIALI) CONTI_CORRENTI ( IBAN, Residuo_mensile, Residuo_giornaliero, Limite_mensile, Limite_giornaliero, Saldo attuale) MOVIMENTI_BANCARI (ID, Data_valuta, Data_contabilità, Tipo, Importo_uscita, Importo_entrata, IBAN:CONTI_CORRENTI) BONIFICI( ID:MOVIMENTI_BANCARI, Beneficiario, Indirizzo, Codice IBAN, Località:LOCALITA') RICARICHE (ID:MOVIMENTI_BANCARI, Numero_cellulare, Operatore) H_MOVIMENTI_BANCARI (ID, Data_valuta, Data_contabilità, Tipo, Importo_uscita, Importo_entrata, IBAN:CONTI_CORRENTI) H_BONIFICI (ID:H_MOVIMENTI_BANCARI, Beneficiario, Indirizzo, Codice IBAN Località:LOCALITA') H_RICARICHE (ID:H_MOVIMENTI_BANCARI, Numero_cellulare, Operatore) • inserimento di un nuovo cliente che deve avvenire contestualmente all’apertura di un nuovo conto corrente; • aggiornamento delle proprietà del conto corrente di un cliente; • inserimento di un nuovo movimento bancario (generico, ricarica o bonifico); • aggiornamento degli intestatari dei conti; • inserimento di una nuova filiale; • aggiornamento delle informazioni legate ai clienti; • visualizzazione dei conti corrente con il saldo disponibile di un dato cliente; • visualizzazione degli ultimi movimenti bancari (quelli dell’ultimo mese) di un dato cliente; • visualizzazione delle informazioni con varie statistiche (numero di clienti, numero di conti corrente , etc...) di ogni filiale; • visualizzazione delle informazioni con varie statistiche (numero movimenti, numero di bonifici e ricariche , totale entrate/uscite, etc...) delle attività di ogni cliente; • spostamento delle informazioni “storiche” dei movimenti bancari su datawarehouse (circa 1 volta ogni 6 mesi); |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Qual'è il problema? Queste son tutte select, insert, update... di pl/sql c'è poco da fare...
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2006
Città: Afragola(NA)
Messaggi: 3336
|
non riesco a capire quali sono i parametri di IN e OUT considerando che non ho nessuna esperienza con questo linguaggio,inoltre in una funzione puo ritornare un Cursore(per esempio l'ottavo punto)poichè visto che devo visualizzare un record avevo pensato di utilizzare un cursore per ovviare alla cosa
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Quote:
Ti do un'imbeccata sull'ottavo punto, che forse è il più ostico per te... Per tornare un cursore, devi dichiararne il tipo nella spec, quindi farai qualcosa di simile: Codice:
create or replace package my_awesome_package as type t_generic_cursor is ref cursor; procedure get_lista_movimenti( p_refcur out t_generic_cursor, p_codice_cliente in clienti.codice%type); end my_awesome_package; / create or replace package body my_awesome_package as procedure get_lista_movimenti( p_refcur out t_generic_cursor, p_codice_cliente in clienti.codice%type) is begin open p_refcur for select ... from ... where .... ; -- sostituisci i punti con la query corretta exception when others then raise_application_error(-20000, 'Error ' || sql%sqlcode || ': ' || sql%sqlerrm); end get_lista_movimenti; end my_awesome_package; / Ma forse non capisco io cosa non capisci.... perchè sui parametri IN o OUT non c'è molto da inventarsi.
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jan 2006
Città: Afragola(NA)
Messaggi: 3336
|
grazie ho risolto...
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:24.