11

我是 oracle 新手,我的一个 SQL 查询有问题。

有 2 个用户:User1User2

     选项卡 1 选项卡 2
    -------- --------
    
    EmpNo EmpNo
    企业名称 企业名称
    联系没有薪水
    地点    

User2拥有User1.Tab1中的所有权限,两个表之间没有外键关系。

问题:

我想在 tab2 " NameDesignation" 中添加一列,并且在检查以下条件后我想在此列中插入值:

WHEN User1.Tab1.EmpNo = User2.Tab2.EmpNo THEN
   INSERT INTO Tab2 VALUES (&designation)

我真的不知道该怎么做,希望能得到一点帮助。有什么想法吗?

4

2 回答 2

12

尝试这个:

update user2.tab2.empno t2
set NameDesignation= &designation
where exists (select ''
              from user1.tab1 t1
              where t1.empno=t2.empno)

(声明已更新以匹配已编辑的问题)

于 2009-02-25T08:23:06.187 回答
0

你需要一组触发器,

插入或更新后:

CREATE OR REPLACE TRIGGER tab1_after_changed
AFTER INSERT OR UPDATE
    ON tab1
    FOR EACH ROW

BEGIN
    DELETE FROM User2.Tab2 WHERE EmpNo=:NEW.EmpNo;
    INSERT INTO User2.Tab2(EmpNo,EmpName,NameDesignation) 
        VALUES (:NEW.EmpNo,:NEW.EmpName, (SELECT DesignationName FROM Designation where DesignationID=:NEW.DesignationID));
END;

我只是想象一个带有 Designation(DesignationID 编号,DesignationName varchar2(xx))的表,并且 Tab1 具有 DesignationID(编号)。

于 2009-04-22T13:45:17.893 回答