1--PL/SQL-Main Features of PL/SQL

Main Features of PL/SQL

  • Error Handling
    PL/SQL makes it easy to detect and handle errors.

When an error occurs, PL/SQL raises an exception. Normal execution stops and control transfers to the exception-handling part of the PL/SQL block. You do not have to check every operation to ensure that it succeeded, as in a C program.

  • Blocks

The basic unit of a PL/SQL source program is the block, which groups related declarations and statements.

A PL/SQL block is defined by the keywords DECLARE, BEGIN, EXCEPTION, and END. These keywords divide the block into a declarative part, an executable part, and an exception-handling part. Only the executable part is required. A block can have a label.

Declarations are local to the block and cease to exist when the block completes execution, helping to avoid cluttered namespaces for variables and subprograms.

Blocks can be nested: Because a block is an executable statement, it can appear in another block wherever an executable statement is allowed.

You can submit a block to an interactive tool (such as SQL*Plus or Enterprise Manager) or embed it in an Oracle Precompiler or OCI program. The interactive tool or program runs the block one time. The block is not stored in the database, and for that reason, it is called an anonymous block (even if it has a label).

An anonymous block is compiled each time it is loaded into memory, and its compilation has three stages:

Syntax checking: PL/SQL syntax is checked, and a parse tree is generated.

Semantic checking: Type checking and further processing on the parse tree.

Code generation

Note:An anonymous block is a SQL statement.

This example shows the basic structure of a PL/SQL block.

Copy

sql 复制代码
<< label >> (optional)
DECLARE    -- Declarative part (optional)
  -- Declarations of local types, variables, & subprograms

BEGIN      -- Executable part (required)
  -- Statements (which can use items declared in declarative part)

[EXCEPTION -- Exception-handling part (optional)
  -- Exception handlers for exceptions (errors) raised in executable part]
END;
  • Variables and Constants

L/SQL lets you declare variables and constants, and then use them wherever you can use an expression.

As the program runs, the values of variables can change, but the values of constants cannot.

  • Subprograms
    A PL/SQL subprogram is a named PL/SQL block that can be invoked repeatedly.
  • Packages
    A package is a schema object that groups logically related PL/SQL types, variables, constants, subprograms, cursors, and exceptions.

A package is compiled and stored in the database, where many applications can share its contents. You can think of a package as an application.

  • Triggers

    A trigger is a named PL/SQL unit that is stored in the database and run in response to an event that occurs in the database.

  • Input and Output

    Most PL/SQL input and output (I/O) is done with SQL statements that store data in database tables or query those tables. All other PL/SQL I/O is done with PL/SQL packages that Oracle Database supplies.

  • Data Abstraction

    Data abstraction lets you work with the essential properties of data without being too involved with details.

You can design a data structure first, and then design algorithms that manipulate it.

复制代码
- Cursors
- Composite Variables
- Using the %ROWTYPE Attribute
- Using the %TYPE Attribute
- Abstract Data Types
  • Control Statements

Control statements are the most important PL/SQL extension to SQL.

PL/SQL has three categories of control statements:

--Conditional selection statements, which let you run different statements for different data values.

--Loop statements, which let you repeat the same statements with a series of different data values.

--Sequential control statements, which allow you to go to a specified, labeled statement, or to do nothing.

  • Conditional Compilation
    Conditional compilation lets you customize the functionality in a PL/SQL application without removing source text.
  • Processing a Query Result Set One Row at a Time
    PL/SQL lets you issue a SQL query and process the rows of the result set one at a time.

You can use a basic loop, or you can control the process precisely by using individual statements to run the query, retrieve the results, and finish processing.

This example uses a basic loop.

sql 复制代码
BEGIN
  FOR someone IN (
    SELECT * FROM "RESOURCES"."EMPLOYEE"
    WHERE employeeID < 120
    ORDER BY employeeID
  )
  LOOP
    DBMS_OUTPUT.PUT_LINE('TITLE = ' || someone.TITLE ||
                         ', DATE = ' || someone.HAIRDATE);
  END LOOP;
END;
/

Result:

相关推荐
李兆龙的博客30 分钟前
问津集 #26:Lakebase——Postgres 的版本化页面存储、数据库分支与计算弹性
数据库
倔强的石头_3 小时前
聊聊金仓KFS:一款把数据同步软件做扎实的产品
数据库
闲云野鹤在人间3 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
禾小西3 小时前
Redis:从两大维度和三大主线建立知识体系
数据库·redis·缓存
禾小西4 小时前
Redis 数据结构:快速的 Redis 有哪些慢操作?
数据结构·数据库·redis
数据库小学妹4 小时前
数据共享交换平台选型:交换方式对比与避坑指南
数据库·信创·数据同步·数据交换平台·政务数据共享·数据共享交换平台·数据库底座
要开心吖ZSH4 小时前
MySQL 慢 SQL 排查操作手册-个人笔记版
java·笔记·sql·mysql·慢查询
loong_XL6 小时前
决策模型做内容安全检测:从踩坑到上线
数据库·安全·jev·决策模型
这个DBA有点耶6 小时前
数据库双轨并行实战:全量并行策略、增量延迟控制、双向回切与一致性校验
数据库·架构·dba
adinnet20266 小时前
保单、赔付与渠道问数:保险经营数据如何实现按需查询
大数据·数据库·人工智能