Oracle面试题库1 下载本文

资料来源:中国教育在线 http://www.eol.cn/ C Oracle中的过程和函数随时随地都可以被重载 D 函数可以重载,过程不能被重载 20 Oracle中程序包的特点是 A 可以写函数和过程

B 任何能够定义在声明部分的内容,都可以出现在包中,包就是用来对代码进行封装的 C 包是一个可选结构,其中只能定义函数和过程 D 定义在包中的过程和函数不能被外部代码所访问 21 下面关于保的说法错误的是 A 有包头,就必须有包体

B 包可分为包头和包体两部分,但包体不是必须的 C 如果只用函数和过程,则可以只有包体,没有包头 D 包可以继承

22 阅读代码,函数被正确重载是

A CREATE OR REPLACE PACKAGE TESTPACKAGE AS

FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT VARCHAR2) RETURN BOOLEAN;

FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 IN OUT VARCHAR2) RETURN BOOLEAN; END TESTPACKAGE;

B CREATE OR REPLACE PACKAGE TESTPACKAGE AS

FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT VARCHAR2); RETURN BOOLEAN;

FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM3 OUT VARCHAR2); RETURN VARCHAR2; END TESTPACKAGE;

C CREATE OR REPLACE PACKAGE TESTPACKAGE AS

FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT VARCHAR2); RETURN BOOLEAN

FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT NUMBER); RETURN OBJECT END TESTPACKAGE;

D CREATE OR REPLACE PACKAGE TESTPACKAGE AS

FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT VARCHAR2); RETURN BOOLEAN

FUNCTION PROCEDURE_NAME(PARAM1 IN NUMBER,PARAM2 OUT CHAR); RETURN OBJECT END TESTPACKAGE; 23 触发器有哪些级别 A 行级触发器和字段级触发器 B 行级触发器 C 语句及触发器

D行级触发器和语句及触发器

资料来源:中国教育在线 http://www.eol.cn/

资料来源:中国教育在线 http://www.eol.cn/ 26 触发器有哪些种类 A BEFORE和AFTER B BEFORE 和BEFORE ROW C AFTER 和AFTER STATEMENT

D FOR EACH ROW和FOR EACH STATEMENT 27 触发器的执行过程是

A 行前(多次)、语句前(多次)、行后(多次)、语句后(一次)

B 语句前(一次)、行前(多次)、字段有效验证、行后(多次)、语句后(一次) C语句前(一次)、语句后(一次)、行前(多次)、行后(多次) D行前(多次)、行后(多次)、语句前(一次)、语句后(一次) 28 触发器的动作有哪几个 A INSERT、UPDATE、DELETE B INSERT、ALTER、DROP C UPDATE、CREATE

D REMOVE、INSERT、DELETE 29 看代码

CREATE OR REPLACE TRIGGER STUDENTUPDATEINFO AFTER INSERT OR UPDATE OR DELETE ON STUDENT FOR EACH ROW

WHEN (NEW.STUID IS NOT NULL OR OLD.STUID IS NOT NULL) BEGIN CASE

WHEN INSERTING THEN

DBMS_OUTPUT.PUT_LINE(:NEW.STUNAME); DBMS_OUTPUT.PUT_LINE(:OLD.STUNAME); DBMS_OUTPUT.NEW_LINE();

DBMS_OUTPUT.PUT_LINE(‘STUDENT表增加一条信息!!!’); WHEN UPDATING THEN

DBMS_OUTPUT.PUT_LINE(:NEW.STUNAME); DBMS_OUTPUT.PUT_LINE(:OLD.STUNAME); DBMS_OUTPUT.NEW_LINE();

DBMS_OUTPUT.PUT_LINE(‘STUDENT表更新一条信息!!!’); ELSE

DBMS_OUTPUT.PUT_LINE(:NEW.STUNAME); DBMS_OUTPUT.PUT_LINE(:OLD.STUNAME); DBMS_OUTPUT.NEW_LINE();

DBMS_OUTPUT.PUT_LINE(‘STUDENT表删除一条信息!!!’); END CASE; END;

当执行了以下命令后

INSERT INTO STUDENT VALUES(‘STU0010′,’TOM’,'TB007′,’JAVA’); UPDATE SET CALSSNAME=’ORACLE’ WHERE STUID=’STU0010′; DELETE STUDENT WHERE STUID=’STU0010′

资料来源:中国教育在线 http://www.eol.cn/

资料来源:中国教育在线 http://www.eol.cn/ 输出结果为:

A INSERT后输出: TOM TOM STUDENT表增加一条信息!!! UPDATE后输出: TOM TOM STUDENT表更新一条信息!! DELETE后输出: TOM TOM STUDENT表删除一条信息!!! B INSERT后输出: TOM STUDENT表增加一条信息!!! UPDATE后输出: TOM TOM STUDENT表更新一条信息!! DELETE后输出: TOM STUDENT表删除一条信息!!! C INSERT后输出: TOM TOM STUDENT表增加一条信息!!! UPDATE后输出: TOM STUDENT表更新一条信息!!! DELETE后输出: TOM STUDENT表删除一条信息!!! D INSERT后输出: TOM STUDENT表增加一条信息!!! UPDATE后输出: TOM TOM STUDENT表更新一条信息!! DELETE后输出: STUDENT表删除一条信息!!!

资料来源:中国教育在线 http://www.eol.cn/