|
本帖最后由 newkid 于 2011-11-23 00:01 编辑
2011-11-17答案C.
一个定义为调用者权限(AUTHID CURRENT_USER)的函数,如果它在一个VIEW或者触发器中被调用,这时是按照定义者的权限来运作的,所以你通过VIEW看到的将是OWNER的数据,而不是当前用户的数据。
=====================================
2011-11-18 触发器中的:NEW 和 :OLD
作者:Steven Feuerstein
难度:低
我创建了这两张表,并在plch_parts表中加了两行数据:
CREATE TABLE plch_parts
(
partnum NUMBER
, partname VARCHAR2 (50)
)
/
BEGIN
INSERT INTO plch_parts
VALUES (123, 'Steering Wheel');
INSERT INTO plch_parts
VALUES (456, 'Brake Pedal');
COMMIT;
END;
/
CREATE TABLE plch_log
(
partnum NUMBER
, partname VARCHAR2 (50)
, changed_on DATE
, changed_by VARCHAR2 (100)
)
/
然后我在 plch_parts 表上加了个触发器:
CREATE OR REPLACE TRIGGER plch_parts_trig
AFTER UPDATE
ON plch_parts
FOR EACH ROW
DECLARE
BEGIN
INSERT INTO plch_log
VALUES (:new.partnum
, :new.partname
, SYSDATE
, USER);
END plch_parts_trig;
/
然后我执行了这个块:
BEGIN
UPDATE plch_parts
SET partnum = -1 * partnum
WHERE partname = 'Brake Pedal';
UPDATE plch_parts
SET partname = UPPER (partname)
WHERE partnum = 123;
COMMIT;
END;
/
下列选项哪些显示了这个查询的结果:
SELECT partnum, partname
FROM plch_log
ORDER BY partnum
/
(A)
PARTNUM PARTNAME
---------- ------------------
-456 Brake Pedal
123 STEERING WHEEL
(B)
PARTNUM PARTNAME
---------- ------------------
123 Steering Wheel
456 Brake Pedal
(C)
PARTNUM PARTNAME
---------- ------------------
123 STEERING WHEEL
456 Brake Pedal
(D)
PARTNUM PARTNAME
---------- ------------------
123 STEERING WHEEL
-456 Brake Pedal
|
|