oracle在表中加入年龄,使用oracle plsql存储过程计算年龄并更新到表中
时间: 2023-12-20 22:07:27 浏览: 165
插入单个元组续-使用PLSQL语句对表中数据进行更新
可以使用Oracle PL/SQL存储过程计算年龄并更新到表中,具体步骤如下:
1. 创建一个存储过程,输入参数为表名和生日字段名,输出参数为年龄字段名。
```
CREATE OR REPLACE PROCEDURE update_age(
table_name IN VARCHAR2,
birthday_column IN VARCHAR2,
age_column OUT NUMBER
)
```
2. 在存储过程中使用UPDATE语句更新年龄字段的值。
```
UPDATE table_name SET age_column =
TRUNC(MONTHS_BETWEEN(SYSDATE, birthday_column)/12)
```
3. 在存储过程中使用SELECT INTO语句将计算得到的年龄值赋给输出参数。
```
SELECT age_column INTO age_column FROM table_name;
```
完整的存储过程:
```
CREATE OR REPLACE PROCEDURE update_age(
table_name IN VARCHAR2,
birthday_column IN VARCHAR2,
age_column OUT NUMBER
)
IS
BEGIN
UPDATE table_name SET age_column =
TRUNC(MONTHS_BETWEEN(SYSDATE, birthday_column)/12);
SELECT age_column INTO age_column FROM table_name;
END;
```
调用存储过程:
```
DECLARE
v_age NUMBER;
BEGIN
update_age('person_info', 'birthday', v_age);
DBMS_OUTPUT.PUT_LINE('Age: ' || v_age);
END;
```
其中,'person_info'为表名,'birthday'为生日字段名,'age'为年龄字段名。调用存储过程后,年龄字段的值将会被更新,并且年龄值也会被赋给输出参数v_age。
阅读全文