ORACLE创建存储过程,C21是工资表,A01是人员信息表,A0190是人员信息表里的字段‘员工工号’,根据员工工号查询员工的工资并调用、删除存储
时间: 2024-02-11 09:09:13 浏览: 31
过程的代码如下:
```
CREATE OR REPLACE PROCEDURE get_salary (emp_no IN A01.A0190%TYPE) AS
salary C21.SALARY%TYPE;
BEGIN
SELECT SALARY INTO salary FROM C21 WHERE EMP_NO = emp_no;
DBMS_OUTPUT.PUT_LINE('Employee ' || emp_no || ' has a salary of ' || salary);
END;
/
-- 调用存储过程
EXECUTE get_salary('001');
-- 删除存储过程
DROP PROCEDURE get_salary;
```
这个存储过程接收一个员工工号作为输入参数,然后根据该工号在工资表中查询该员工的工资,并输出到控制台。调用存储过程时需要传入一个有效的员工工号作为参数。最后,如果需要删除存储过程,可以使用 DROP PROCEDURE 语句。
相关问题
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;
请注意,这只是一个示例,需要根据您的具体情况进行修改。同时,也需要您确保在将触发器应用到数据库之前备份您的数据。