Excel 可以插入列值
我知道我可以在insert语句的Excel 可以插入列值,excel,Excel,我知道我可以在insert语句的VALUES部分中使用CASE语句,但我有点困惑 我有一个类似于这样的语句,您不能在insert语句中自引用列-这将导致“ORA-00984:此处不允许列”错误 但是,您可以在插入前使用触发器来实现相同的功能: CREATE OR REPLACE TRIGGER table_xyz_tr BEFORE INSERT ON table_xyz FOR EACH ROW NEW.ed_duration = CASE NEW.ed_other_party
VALUES
部分中使用CASE
语句,但我有点困惑
我有一个类似于这样的语句,您不能在
insert
语句中自引用列-这将导致“ORA-00984:此处不允许列”错误
但是,您可以在插入前使用触发器来实现相同的功能:
CREATE OR REPLACE TRIGGER table_xyz_tr
BEFORE INSERT ON table_xyz
FOR EACH ROW
NEW.ed_duration = CASE NEW.ed_other_party
WHEN '6598898745' THEN '9999999'
ELSE '88888' END;
END;
这里是一个可以使用的查询结构(使用JohnnyBegody建议的使用SELECT语句来选择值)
您还可以尝试以下步骤:
create or replace procedure insert_XYZ (P_ED_MSISDN IN VARCHAR2,
P_ED_OTHER_PARTY IN VARCHAR2) is
begin
INSERT INTO TABLE_XYZ ( ED_MSISDN,
ED_OTHER_PARTY,
ED_DURATION)
VALUES (P_ED_MSISDN ,
P_ED_OTHER_PARTY ,
CASE
WHEN P_ED_OTHER_PARTY = '6598898745' THEN
'9999999'
ELSE
'88888'
END);
END;
你到底想完成什么。是的,您可以使用case
表达式作为insert
语句的values
子句的一部分,但不能引用要插入数据的表的列。在你的情况下,它将是另一方。
create or replace procedure insert_XYZ (P_ED_MSISDN IN VARCHAR2,
P_ED_OTHER_PARTY IN VARCHAR2) is
begin
INSERT INTO TABLE_XYZ ( ED_MSISDN,
ED_OTHER_PARTY,
ED_DURATION)
VALUES (P_ED_MSISDN ,
P_ED_OTHER_PARTY ,
CASE
WHEN P_ED_OTHER_PARTY = '6598898745' THEN
'9999999'
ELSE
'88888'
END);
END;