Stiv Bobrovski
SQL dinamic în PL / SQL-programe.
Folosind pachetul DBMS_SQL.
(Dynamic SQL vine la PL / SQL. Folosind pachetul DBMS_SQL, de Steve Bobrowski. ORACLE REVISTA, vol.IX / num.2)
Aș dori să dedic acest articol în memoria lui Robert Kui (Robert Kooi), prietenul meu și un dezvoltator genial care a adus o contribuție semnificativă la dezvoltarea serverului Oracle7, mai ales în PL / SQL.
Administratorii și dezvoltatorii ignora adesea beneficiile care pot fi obținute din utilizarea unor restante, dar oportunitățile bijuterie ascunse, care au serverul Oracle7. Am pachete in primul rand medii Baze de date utilități care permit dezvoltatorilor de aplicații să folosească instrumente avansate ale serverului de baze de date, cum ar fi semnalele (alerte), canale de comunicare (conducte de comunicare) și serverul de blocare a resurselor gestionate (de blocare a resurselor gestionate de server). În Oracle7 versiunea 7.1 este un supliment cu adevărat fantastic pentru familia de pachete SGBD: pachet nou DBMS_SQL ofera dezvoltatorilor cu instrumente pentru a crea declarații SQL generate în mod dinamic în PL / SQL-programe.
instrucțiunile SQL statice și dinamice
Multe dintre cererile de astăzi Oracle pe calculatoarele client conțin numai statice, propoziția SQL. În acest scenariu, dezvoltatorul proiectează o aplicație personalizată prin planificarea posibilelor tranzacții și includerea ulterioară în cererea SQL propuneri (*) corespunzătoare. În consecință, cererea este limitată de un număr de apeluri de baze de date bine definite, care sunt de fapt compilate ca parte a cererii.
Această metodă de utilizare statice SQL propuneri pot fi bune sau rele, în funcție de ceea ce doriți din aplicație. De exemplu, mecanismul static SQL propuneri este perfectă atunci când doriți să proiectați o aplicație care controlează bine ceea ce utilizatorii pot și nu pot face. Pe măsură ce încorpora toate posibilele SQL propuneri în această aplicație, utilizatorii nu se pot abate de la calea marcată pentru ei. Dar atunci când doriți să dezvolte o aplicație, care ar avea flexibilitatea de a asigura un control al tranzacțiilor neintenționate, SQL propoziție sau chiar un set de SQL propuneri (referindu-se la statice SQL propuneri și trăsături de caracter), nu te pot ajuta. Astfel, există o nevoie pentru o generate dinamic SQL propuneri.
Utilizând metoda de SQL propuneri generate în mod dinamic, aplicațiile le construiesc în timpul rulării (runtine), și, în acest sens, puteți crea aplicații care se schimba prin alegere, determinate de către utilizator. Ca o interfață publică pentru a format dinamic SQL propuneri pot fi imaginate, de exemplu, SQL * Plus instrument de tip cu care utilizatorii pot lucra cu SQL propuneri de orice fel.
Introducere în SQL propunerile generate în mod dinamic
Dispoziția principală în înțelegerea utilizării dinamice SQL propuneri este că, dacă un SQL-propoziție este formată în mod dinamic, atunci programul este de a construi corect SQL-teză prin efectuarea unei secvențe de etape specifice, care formează propunerea; executa-l, și dacă este SQL propunere este o solicitare către baza de date [Cererea și nezaprosnye oferă - a se vedea tabelul 1. Notă .. Traducător] și determină o coloană și selecție rând setul său rezultat. tipul probei și numărul de etape necesare pentru a executa dinamice SQL-propuneri variază în funcție de tipul de SQL-propuneri, care determină aplicarea unui anumit mod de a identifica și de a pune în aplicare aceste propuneri. Diferite posibilități au identificat patru metode formale de formare a dinamice SQL propuneri. Tabelul 1 rezumă câteva din caracteristicile fiecărei metode. Ultima coloană din Tabelul 1 listează secvența de apeluri date pachet DBMS_SQL de subrutine care în PL programul / SQL trebuie să le efectueze pentru a implementa un generate dinamic SQL propuneri pentru fiecare tip.
Necesar de pachete de apeluri DBMS_SQL