PL/SQL
PL/SQLは基本的に、BEGIN ~ END、もしくは DECLARE ~ BEGIN ~ END による「ブロック」の中にコードを記述する。 PL/SQLブロック内で発生する例外・エラー(Exception)をキャッチする場合には、 BEGINとENDの間にさらにEXCEPTION句を差込み、そこからEND句 までの間に例外処理を記述する。このブロックは、入れ子記述をすることができるため、 Java言語の try ~ catch のように利用できる。(※これは、Java言語が元祖ではなく、Ada → C++言語 → Java言語のようにキャッチアップされていった結果である)
変数、定数、カーソルなどの定義は DECLARE ~ BEGINに記述する。
このブロックを直接記述したものを、「無名ブロック」と呼び、即時に実行される。一方、ストアドプロシージャ・ストアドファンクション・データベーストリガ・パッケージはすぐには実行されず、サーバ内に評価済みの形で登録される(動的SQLはのぞく)。
PSR(Patch Set Release:いわゆる集積パッチ)を適用した場合にもこのスクリプトの再実行をする必要がある。
ユーティリティパッケージはバッファ出力用のDBMS_OUTPUTパッケージやファイル出力用のUTL_FILEパッケージ、応用プログラム間の同期通信に利用できるDBMS_PIPE、DBMS_ALERTパッケージ、動的SQLを実現するためのDBMS_SQLパッケージなどがある。
ユーティリティパッケージの名前はDBMS_またはUTL_で始まるため、ユーザーが新たにパッケージを作成する場合はこれらの名前を避けて作成するべきである。