Elsif TRLTYPE= 'XR' THEN
-->物资入库时,向修旧利废库存表插入数据
--先查询repair_stock表中有没有字段信息数据
SELECT COUNT(*)
INTO ROWSCOUNT
FROM repair_stock
WHERE sto_part = :NEW.TRL_PART
AND sto_store = :NEW.TRL_STORE
IF ROWSCOUNT = 0 THEN INSERT INTO repair_stock(sto_part,sto_qty,sto_store,sto_upddate)
VALUES
(:NEW.TRL_TRANS, :NEW.TRL_QTY, :NEW.TRL_STORE,:NEW.TRL_DATE)
ELSIF THEN
UPDATE repair_stock
SET sto_qty = sto_qty + :NEW.TRL_QTY
WHERE sto_part = :NEW.TRL_PART
AND sto_store = :NEW.TRL_STORE
-- repair_binstock
SELECT COUNT(*)
INTO ROWSCOUNT
FROM repair_stock
WHERE sto_part = :NEW.TRL_PART
AND sto_store = :NEW.TRL_STORE
UPDATE repair_binstock SET bis_qty = bis_qty + :NEW.TRL_QTY WHERE bis_part
bis_bin bis_status
SELECT COUNT(*)
FROM STOPART
WHERE sto_Part = :NEW.TRL_PART, STO_STORE = :NEW.TRL_STORE, STO_BIN=:NEW.TRL_BIN
END IF;
END在上面已经申明 ROWSCOUNT NUMBER(24);--行数
报错:
Compilation errors for TRIGGER BCIS.B5TRANSLINES_INSERTError: PL/SQL: ORA-00933: SQL 命令未正确结束
Line: 83
Text: INSERT INTO repair_stock(sto_part,sto_qty,sto_store,sto_upddate)Error: PL/SQL: SQL Statement ignored
Line: 77
Text: INTO ROWSCOUNTError: PLS-00103: 出现符号 "end-of-file"在需要下列之一时:
if
Line: 115
-->物资入库时,向修旧利废库存表插入数据
--先查询repair_stock表中有没有字段信息数据
SELECT COUNT(*)
INTO ROWSCOUNT
FROM repair_stock
WHERE sto_part = :NEW.TRL_PART
AND sto_store = :NEW.TRL_STORE
IF ROWSCOUNT = 0 THEN INSERT INTO repair_stock(sto_part,sto_qty,sto_store,sto_upddate)
VALUES
(:NEW.TRL_TRANS, :NEW.TRL_QTY, :NEW.TRL_STORE,:NEW.TRL_DATE)
ELSIF THEN
UPDATE repair_stock
SET sto_qty = sto_qty + :NEW.TRL_QTY
WHERE sto_part = :NEW.TRL_PART
AND sto_store = :NEW.TRL_STORE
-- repair_binstock
SELECT COUNT(*)
INTO ROWSCOUNT
FROM repair_stock
WHERE sto_part = :NEW.TRL_PART
AND sto_store = :NEW.TRL_STORE
UPDATE repair_binstock SET bis_qty = bis_qty + :NEW.TRL_QTY WHERE bis_part
bis_bin bis_status
SELECT COUNT(*)
FROM STOPART
WHERE sto_Part = :NEW.TRL_PART, STO_STORE = :NEW.TRL_STORE, STO_BIN=:NEW.TRL_BIN
END IF;
END在上面已经申明 ROWSCOUNT NUMBER(24);--行数
报错:
Compilation errors for TRIGGER BCIS.B5TRANSLINES_INSERTError: PL/SQL: ORA-00933: SQL 命令未正确结束
Line: 83
Text: INSERT INTO repair_stock(sto_part,sto_qty,sto_store,sto_upddate)Error: PL/SQL: SQL Statement ignored
Line: 77
Text: INTO ROWSCOUNTError: PLS-00103: 出现符号 "end-of-file"在需要下列之一时:
if
Line: 115
IF ROWSCOUNT = 0 THEN INSERT INTO repair_stock(sto_part,sto_qty,sto_store,sto_upddate)
VALUES
(:NEW.TRL_TRANS, :NEW.TRL_QTY, :NEW.TRL_STORE,:NEW.TRL_DATE); --加个分号后再试一下。
ELSIF THEN
UPDATE repair_stock
......
INTO ROWSCOUNT
FROM repair_stock
WHERE sto_part = :NEW.TRL_PART
AND sto_store = :NEW.TRL_STORE;
IF ROWSCOUNT = 0 THEN
INSERT INTO repair_stock(sto_part,sto_qty,sto_store,sto_upddate)
VALUES
(:NEW.TRL_TRANS, :NEW.TRL_QTY, :NEW.TRL_STORE,:NEW.TRL_DATE);
ELSIF THEN UPDATE repair_stock
SET sto_qty = sto_qty + :NEW.TRL_QTY
WHERE sto_part = :NEW.TRL_PART
AND sto_store = :NEW.TRL_STORE;
-- repair_binstock
SELECT COUNT(*)
INTO ROWSCOUNT
FROM repair_stock
WHERE sto_part = :NEW.TRL_PART
AND sto_store = :NEW.TRL_STORE;
UPDATE repair_binstock SET bis_qty = bis_qty + :NEW.TRL_QTY WHERE bis_part=bis_part
and bis_bin=bis_bin and bis_status=bis_status;
END IF;
END
Compilation errors for TRIGGER BCIS.B5TRANSLINES_INSERTError: PLS-00103: 出现符号 "THEN"在需要下列之一时:
( - + case mod new not
null <an identifier> <a double-quoted delimited-identifier>
<a bind variable> avg count current exists max min prior sql
stddev sum variance execute forall merge time timestamp
interval date
<a string literal with character set specification>
<a number> <a single-quoted SQL string> pipe
符号 "null" 被替换为 "THEN" 后继续。
Line: 87
Text: ELSIF THENError: PLS-00103: 出现符号 "end-of-file"在需要下列之一时:
if
Line: 104
Text: END
只有这两处错了.
if
Line: 104
Text: END;这就是最后个错了.
UPDATE REPAIR_BINSTOCK
SET BIS_QTY = BIS_QTY + :NEW.TRL_QTY
WHERE BIS_PART = BIS_BIN-BIS_STATUS;
*/
ELSIF TRLTYPE= 'XR' THEN
-->物资入库时,向修旧利废库存表插入数据
--先查询REPAIR_STOCK表中有没有字段信息数据
SELECT COUNT(*)
INTO ROWSCOUNT
FROM REPAIR_STOCK
WHERE STO_PART = :NEW.TRL_PART
AND STO_STORE = :NEW.TRL_STORE;
IF ROWSCOUNT = 0 THEN
INSERT INTO REPAIR_STOCK(STO_PART,STO_QTY,STO_STORE,STO_UPDDATE)
VALUES (:NEW.TRL_TRANS, :NEW.TRL_QTY, :NEW.TRL_STORE,:NEW.TRL_DATE);
ELSIF THEN
UPDATE REPAIR_STOCK
SET STO_QTY = STO_QTY + :NEW.TRL_QTY
WHERE STO_PART = :NEW.TRL_PART
AND STO_STORE = :NEW.TRL_STORE;
-- REPAIR_BINSTOCK
SELECT COUNT(*)
INTO ROWSCOUNT
FROM REPAIR_STOCK
WHERE STO_PART = :NEW.TRL_PART
AND STO_STORE = :NEW.TRL_STORE;
UPDATE REPAIR_BINSTOCK
SET BIS_QTY = BIS_QTY + :NEW.TRL_QTY
WHERE BIS_PART = BIS_BIN-BIS_STATUS;
SELECT COUNT(*)
FROM STOPART
WHERE STO_PART = :NEW.TRL_PART
AND STO_STORE = :NEW.TRL_STORE
AND STO_BIN = :NEW.TRL_BIN;
END IF;
COMMIT;
END IF;
SELECT COUNT(*)
INTO ROWSCOUNT
FROM repair_stock
WHERE sto_part = :NEW.TRL_PART
AND sto_store = :NEW.TRL_STORE;
IF ROWSCOUNT = 0 THEN
INSERT INTO repair_stock(sto_part,sto_qty,sto_store,sto_upddate)
VALUES
(:NEW.TRL_TRANS, :NEW.TRL_QTY, :NEW.TRL_STORE,:NEW.TRL_DATE);
ELSIF TRLTYPE= '2' THEN
UPDATE repair_stock
SET sto_qty = sto_qty + :NEW.TRL_QTY
WHERE sto_part = :NEW.TRL_PART
AND sto_store = :NEW.TRL_STORE;
-- repair_binstock
SELECT COUNT(*)
INTO ROWSCOUNT
FROM repair_stock
WHERE sto_part = :NEW.TRL_PART
AND sto_store = :NEW.TRL_STORE;
UPDATE repair_binstock
SET bis_qty = bis_qty + :NEW.TRL_QTY
WHERE bis_part = :NEW.TRL_TRANS
and bis_bin =:NEW.TRL_bin;
END IF;
END IF;其实我完整的是这样的,开始贴出来没看....现在就一个错:
Compilation errors for TRIGGER BCIS.B5TRANSLINES_INSERTError: PLS-00103: 出现符号 "end-of-file"在需要下列之一时:
begin case declare
end exception exit for goto if loop mod null pragma raise
return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge
<a single-quoted SQL string> pipe
Line: 106
Text: END IF;