Excel 可以插入列值

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

我知道我可以在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 
                      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;