Czy PL/SQL jest językiem interpretowanym? Czy jest raczej kompilowany do jakiegoś bytecode'u? Czy jest on wykonywany na DBMS Oracla ?
cyt.:
"At compile time, PL/SQL source code is translated into machine-readable m-code. Both the DIANA and m-code for a procedure or package are stored in the database. At run time, they are loaded into the shared memory pool. The DIANA is used to compile dependent procedures; the m-code is simply executed."
-
At compile time, PL/SQL source code is translated into system code and generates corresponding DIANA.
-
Both the DIANA and system code for a subprogram or package are stored in the database.
-
At run time, they are loaded into the shared memory pool.
-
The DIANA is used to compile dependent subprograms; more specifically to check/validate that the sub program is still valid. this is required because as we know that a sub-program can use database objects such as Tables,Views,Synonyms or other stored procs. it could be possible that the the objects may have changed/removed/droped when next time you run the program. For ex : some one might have droped the table, the stored proc or function singnature may have changed.
-
Once the validation is done using DIANA, the system code simply runs.
Poczytaj sobie to:
http://oracle.readthedocs.org/en/latest/plsql/basics/
Po polsku jest też opis:
http://andrzejklusiewicz.blogspot.com/2012/09/kompilacja-kodu-do-postaci-natywnej-i.html
- kod PL/SQL,
- analiza(front end) kodu PL/SQL,
- DIANA - kod pośredni ADY,
- BACK END kompilatora,
- M-KOD maszyny Virtualnej(PVM)
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.