ORACLE创建存储过程,C21是工资表,A01是人员信息表,A0190是人员信息表里的字段‘员工工号’,根据员工工号查询员工的工资并调用
时间: 2023-12-29 09:05:23 浏览: 25
好的,以下是创建存储过程的代码:
```sql
CREATE OR REPLACE PROCEDURE get_salary (p_employee_id IN A01.A0190%TYPE) AS
v_salary C21.SALARY%TYPE;
BEGIN
SELECT SALARY
INTO v_salary
FROM C21
WHERE EMPLOYEE_ID = p_employee_id;
-- 在这里可以根据需要进行进一步的处理
DBMS_OUTPUT.PUT_LINE('The salary of employee ' || p_employee_id || ' is ' || v_salary);
END;
/
```
在这个存储过程中,我们首先声明了一个输入参数 `p_employee_id`,它的数据类型与 A01 表中 A0190 字段的数据类型相同。然后,我们根据员工工号查询员工的工资,并将结果保存到变量 `v_salary` 中。最后,我们使用 `DBMS_OUTPUT.PUT_LINE` 函数将查询结果输出到控制台。
要调用这个存储过程,只需要执行以下代码:
```sql
BEGIN
get_salary('员工工号');
END;
```
其中的 `'员工工号'` 应该替换为实际的员工工号。这样,存储过程就会根据输入的员工工号查询员工的工资并输出到控制台。
相关问题
ORACLE创建存储过程,C21是工资表,A01是人员信息表,A0190是人员信息表里的字段‘员工工号’,根据员工工号查询员工的工资
好的,以下是创建一个存储过程的 ORACLE 代码,用于根据员工工号查询员工的工资:
```
CREATE OR REPLACE PROCEDURE get_salary
(
emp_id IN A01.A0190%TYPE,
salary OUT C21.SALARY%TYPE
)
IS
BEGIN
SELECT SALARY INTO salary
FROM C21
WHERE EMP_ID = emp_id;
END;
```
这个存储过程接受一个员工工号作为输入参数,然后使用该工号在 C21 工资表中查询员工的工资,并将结果作为输出参数返回。你可以在调用存储过程时传入员工工号,并获取对应员工的工资。
NZTXZI_YJ表加字段 生效日期SXRQ,生效日期后NZTXZI_YJ表里的XIZI数据自动替换C21表里的XZ数据
好的,您的问题是关于在NZTXZI_YJ表中添加一个名为“生效日期(SXRQ)”的字段,并且在生效日期后自动替换C21表中的XZ数据。这需要编写一个触发器来实现。下面是一个示例触发器的伪代码:
CREATE TRIGGER update_xz_data
AFTER UPDATE ON NZTXZI_YJ
FOR EACH ROW
BEGIN
IF NEW.SXRQ > NOW() THEN
UPDATE C21 SET XZ = NEW.XIZI WHERE <some condition>;
END IF;
END;
请注意,这只是一个示例,需要根据您的具体情况进行修改。同时,也需要您确保在将触发器应用到数据库之前备份您的数据。