首页 > 解决方案 > PLSQL 过程语法

问题描述

这种语法有什么问题:我想用 3 个不同的参数调用 PROC_1:10,15,100

Create Procedure PROC_1
(
age1 IN int,
age2 IN int,
age3 IN int
)
AS
BEGIN
IF age1 =  '10' THEN insert into ages (age) values (age1 );  END IF;
IF  age2 = '20' THEN insert into ages (age) values (age2); END IF;
IF  age3 ='100' THEN UPDATE ages set age = age3; END IF;
END PROC_1;

标签: oracleplsqlprocedure

解决方案


假设,通过您的过程的参数,该列是您的表是 INT 类型,

SQL> create table ages(age int);

Table created.

过程语法是正确的:

SQL> CREATE PROCEDURE PROC_1(
  2                          age1    IN INT,
  3                          age2    IN INT,
  4                          age3    IN INT
  5                         ) AS
  6  BEGIN
  7      IF age1 = '10'
  8      THEN
  9          INSERT INTO ages(age)
 10               VALUES (age1);
 11      END IF;
 12
 13      IF age2 = '20'
 14      THEN
 15          INSERT INTO ages(age)
 16               VALUES (age2);
 17      END IF;
 18
 19      IF age3 = '100'
 20      THEN
 21          UPDATE ages
 22             SET age    = age3;
 23      END IF;
 24  END PROC_1;
 25  /

Procedure created.

这是一种称呼它的方式:

SQL> begin
  2      PROC_1(10,15,100);
  3  end;
  4  /

PL/SQL procedure successfully completed.

甚至

SQL> exec PROC_1(10,15,100);

PL/SQL procedure successfully completed.

SQL>

推荐阅读