Risposte:
SQLite ha dovuto sacrificare altre caratteristiche che alcune persone trovano utili, come elevata concorrenza, controllo degli accessi a grana fine, un ricco set di funzioni integrate, procedure memorizzate , funzionalità del linguaggio SQL esoterico, estensioni XML e / o Java, tera- o scalabilità peta-byte e così via
Fonte: usi appropriati per SQLite
Risposta : NO
Ecco perché ... Penso che un motivo chiave per aver memorizzato i proc in un database sia che stai eseguendo il codice SP nello stesso processo del motore SQL. Questo ha senso per i motori di database progettati per funzionare come un servizio connesso in rete ma l'imperativo per SQLite è molto meno dato che viene eseguito come una DLL nel processo dell'applicazione anziché in un processo del motore SQL separato. Quindi ha più senso implementare tutta la tua logica aziendale, incluso quello che sarebbe stato il codice SP nella lingua host.
Puoi comunque estendere SQLite con le tue funzioni definite dall'utente nella lingua host (PHP, Python, Perl, C #, Javascript , Ruby ecc.). È quindi possibile utilizzare queste funzioni personalizzate come parte di qualsiasi selezione / aggiornamento / inserimento / eliminazione di SQLite. L'ho fatto in C # usando DevArt's SQLite per implementare l'hash delle password.
Se sei ancora interessato, Chris Wolf ha realizzato un prototipo di implementazione di SQLite con Stored Procedures. Puoi trovare i dettagli nel suo post sul blog: Aggiunta di stored procedure a SQLite
Tuttavia, è possibile simularlo usando una tabella dedicata, chiamata per il tuo fake-sp, con un trigger AFTER INSERT. Le righe della tabella dedicate contengono i parametri per il tuo falso sp, e se ha bisogno di restituire risultati puoi avere una seconda tabella (poss. Temp) (con il nome relativo al falso-sp) per contenere quei risultati. Richiederebbe due query: la prima per INSERIRE i dati nella tabella fake-sp-trigger e la seconda per SELEZIONARE dalla tabella fake-sp-results, che potrebbe essere vuota o avere un campo di messaggio se qualcosa andasse storto .