我正在PLSQL中创建触发器:
public responseData:any;
public onSubmit() {
this._studentService.addData(this.addStudentForm.value).subscribe((response:any)=> {
console.log("success: ", JSON.stringify(response));
this.responseData = response;
}, (error:any){
console.log("error: ", JSON.stringify(error));
});
}
这应该是我的错误
错误(7,13):PLS-00405:在此情况下不允许子查询
在这种情况下如何使用子查询?
答案 0 :(得分:1)
您必须将查询结果存储到变量中。
您应该将v_wh
条件放入where-block
示例:
DECLARE
v_result NUMBER;
BEGIN
-- [...]
SELECT COUNT(*) INTO v_result FROM wh WHERE wh != physical_wh AND wh = v_wh;
IF v_result > 0
THEN
--[...]
答案 1 :(得分:0)
您需要使用一个临时变量:
npm install --global webpack
子查询只能在SQL语句中使用,而IF语句则不能。
答案 2 :(得分:0)
您可以使用单独的整数变量来检查wh.wh = :new.wh and wh != physical_wh
是否存在行。
CREATE OR REPLACE TRIGGER als_int_wh_cfa_ext_aiudr AFTER
DELETE OR INSERT OR UPDATE ON wh_cfa_ext
FOR EACH ROW
DECLARE
v_wh INT;
BEGIN
SELECT CASE WHEN EXISTS
( select 1 v_wh
FROM wh WHERE wh != physical_wh
AND wh = :new.vh ) THEN 1 ELSE 0 END INTO v_wh from dual;
IF v_wh = 1 THEN
INSERT INTO wh_mfqueue_test (
seq_no,wh,message_type,family,pub_status,transaction_number,
transaction_time_stamp
) VALUES (
wh_mfsequence.NEXTVAL,:new.wh,'whmod','WH','U',1,SYSDATE
);
END IF;
END;
/