oracle - 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;
解决方案
假设,通过您的过程的参数,该列是您的表是 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>
推荐阅读
- php - Laravel 5.5 Composer 更新但弹出错误
- python - 关于Django教程官方part3 html代码的问题
- ios - IOS设备上的颤振数字键盘没有完成按钮
- javascript - 将碳日期舍入到最近的前 6 小时标记
- angular - 注销并重新登录后没有得到预期的页面。
- vb.net - 在 vb.net 中对 DataTable 中的重复行求和
- mysql - 在插入时在 mysql 中创建触发器,它比较添加行的字段
- mongodb - 通过 mongoose-double 插入数据后找不到文档
- pentaho - 基于某些条件加载水壶的 Pentaho 数据集成问题
- c++ - C++/G++ 包括来自另一个文件夹的标题