- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
/* Formatted on 2011/05/11 16:11 (Formatter Plus v4.8.7) */
CREATE SEQUENCE tmpseq
/
CREATE TABLE tmpt(a NUMBER, b NUMBER)
/
CREATE OR REPLACE TRIGGER tmpt_bi
BEFORE INSERT
ON tmpt
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
IF :NEW.a IS NULL
THEN
SELECT tmpseq.NEXTVAL
INTO :NEW.a
FROM DUAL;
END IF;
END;
/
DECLARE
l_a tmpt.a%TYPE;
n NUMBER;
BEGIN
FOR n IN 5 .. 8
LOOP
INSERT INTO tmpt
(b
)
VALUES (n
)
RETURNING a
INTO l_a;
DBMS_OUTPUT.put_line (l_a);
END LOOP;
END;
/
select * from tmpt
/
DROP TRIGGER tmpt_bi
/
DROP TABLE tmpt
/
DROP SEQUENCE tmpseq
/
COMMIT
иногда я не верю мануалам и проверяю себя небольшими кусочками кода. на этот раз я проверил конструкцию returning
guest8 08.04.2019 20:45 # −999
guest8 08.04.2019 22:05 # −999
guest8 08.04.2019 22:11 # −999