📜  PL SQL-基本语法(1)

📅  最后修改于: 2023-12-03 15:03:47.108000             🧑  作者: Mango

PL/SQL-基本语法

PL/SQL是一个强大的程序设计语言,用于开发Oracle数据库中的存储过程,触发器,函数等。本文将介绍PL/SQL的基本语法。

变量

在PL/SQL中,我们可以定义变量来存储数据。变量可以是任何数据类型,包括数字,字符串和日期等。

定义变量
DECLARE
  variable_name variable_datatype;
BEGIN
  -- Code goes here
END;

其中variable_name是变量的名称,variable_datatype是变量的数据类型。

例如,定义一个整数变量:

DECLARE
  num INTEGER;
BEGIN
  num := 10;
END;
赋值语句

要给变量赋值,我们可以使用赋值语句(:=)。

DECLARE
  num INTEGER;
BEGIN
  num := 10;
END;
变量命名规则
  • 变量名必须以字母开头。
  • 变量名长度不能超过30个字符。
  • 变量名只能包含字母,数字和下划线。
控制流

控制流语句用于控制程序的执行流程。PL/SQL支持以下控制流语句。

IF语句

IF语句用于根据条件执行不同的代码块。

IF condition THEN
  -- Code to execute if condition is true
ELSE
  -- Code to execute if condition is false
END IF;

例如:

DECLARE
  num INTEGER := 10;
BEGIN
  IF num > 5 THEN
    DBMS_OUTPUT.PUT_LINE('num is greater than 5');
  ELSE
    DBMS_OUTPUT.PUT_LINE('num is less than or equal to 5');
  END IF;
END;
CASE语句

CASE语句用于根据不同的条件执行不同的代码块。

CASE expression
  WHEN condition1 THEN
    -- Code to execute if condition1 is true
  WHEN condition2 THEN
    -- Code to execute if condition2 is true
  ELSE
    -- Code to execute if no conditions are true
END CASE;

例如:

DECLARE
  name VARCHAR2(10) := 'John';
BEGIN
  CASE name
    WHEN 'John' THEN
      DBMS_OUTPUT.PUT_LINE('Name is John');
    WHEN 'Jane' THEN
      DBMS_OUTPUT.PUT_LINE('Name is Jane');
    ELSE
      DBMS_OUTPUT.PUT_LINE('Name is not John or Jane');
  END CASE;
END;
LOOP语句

LOOP语句用于重复执行代码块,直到满足一定条件。

LOOP
  -- Code to execute
  EXIT WHEN condition;
END LOOP;

例如:

DECLARE
  num INTEGER := 1;
BEGIN
  LOOP
    DBMS_OUTPUT.PUT_LINE(num);
    num := num + 1;
    EXIT WHEN num > 5;
  END LOOP;
END;
FOR LOOP

FOR LOOP语句用于重复执行代码块,对可迭代的元素进行迭代操作。

FOR variable_name IN range
LOOP
  -- Code to execute
END LOOP;

其中变量variable_name在每次循环中被赋值为range中的下一个值,直到range中的值被迭代完成。

例如:

DECLARE
  i INTEGER;
BEGIN
  FOR i IN 1..5 LOOP
    DBMS_OUTPUT.PUT_LINE(i);
  END LOOP;
END;
异常处理

异常是指程序执行过程中出现的错误。PL/SQL提供了处理异常的机制。

异常处理结构
BEGIN
  -- Code to execute
EXCEPTION
  WHEN exception_name1 THEN
    -- Code to handle exception_name1
  WHEN exception_name2 THEN
    -- Code to handle exception_name2
END;

例如:

DECLARE
  balance INTEGER := 100;
BEGIN
  balance := balance / 0;
EXCEPTION
  WHEN ZERO_DIVIDE THEN
    DBMS_OUTPUT.PUT_LINE('Cannot divide by zero');
END;
子程序

子程序(也称为函数或过程)是一组可重复使用的代码,可以在程序中多次调用。

函数

函数是一个返回值的子程序。

FUNCTION function_name (parameter_name parameter_datatype) RETURN return_datatype IS
  -- Code to execute
BEGIN
  RETURN return_value;
END;

其中function_name是函数的名称,parameter_name是函数的参数名称,parameter_datatype是参数的数据类型,return_datatype是函数的返回值类型,return_value是函数的返回值。

例如,编写一个计算两个数字之和的函数:

FUNCTION calculate_sum (num1 INTEGER, num2 INTEGER) RETURN INTEGER IS
  sum INTEGER;
BEGIN
  sum := num1 + num2;
  RETURN sum;
END;
过程

过程是不返回值的子程序。

PROCEDURE procedure_name (parameter_name parameter_datatype) IS
  -- Code to execute
BEGIN
  -- Code to execute
END;

其中procedure_name是过程的名称,parameter_name是参数的名称,parameter_datatype是参数的数据类型。

例如,编写一个输出输入参数的值的过程:

PROCEDURE print_value (value INTEGER) IS
BEGIN
  DBMS_OUTPUT.PUT_LINE('Value is ' || value);
END;
总结

本文介绍了PL/SQL的基本语法,包括变量,控制流,异常处理和子程序。希望这些知识可以帮助你更好地使用PL/SQL开发Oracle数据库应用程序。