PL/SQL表示SQL的过程式语言扩展(Procedural Language Extension to SQL)。通过添加任何高级语言所拥有的编程结构和子程序,PL/SQL实现对SQL的扩展。
认识到PL/SQL不是独立的编程语言是非常重要的。PL/SQL是Oracle RDBMS的一部分,可以驻留在两个环境中-客户端和服务器端。
在两种环境下,任何PL/SQL块或者子程序都由PL/SQL引擎处理,它是很多Oracle产品中的一个特殊组件。PL/SQL引擎负责处理和执行任意的PL/SQL语句,并把语句发送到SQL语句处理器。SQL语句处理器通常位于Oracle服务器。下图演示了驻留在Oracle服务器的PL/SQL引擎:
当PL/SQL引擎位于客户端时,就像Oracle Developer Tools一样,在客户端处理PL/SQL。嵌套在PL/SQL语句块中的所有SQL语句都会被发送到Oracle服务器,以进一步处理。当PL/SQL语句块不包括任何SQL语句时,整个语句块会在客户端执行。