|
2011-12-01答案AC.
DBMS_ASSERT.SIMPLE_SQL_NAME检查一个名字是否为SQL中可用的简单名字:
名字必须以字母开头,随后可跟随数字、字母或_, $, # 字符;
允许带双引号,双引号之间可以是任意字符;
假如双引号之内的名字本身就带有双引号,那么必须重复双引号两次来表示;
输入参数如果前后带有空格被忽略。
名字的长度没有被检测。
DBMS_ASSERT.qualified_sql_name则更宽松一些,允许带.(小数点,比如用在记录成员、PACKAGE里面的函数、SCHEMA OWNER等)和@ (用在DBLINK)
答案B: simple_sql_name是函数不是存储过程,必须将返回值赋给变量。
答案D: 表名不可以用绑定变量。
========================================
2011-12-02 带约束的SUBTYPE
哪些块在执行之后会抛出VALUE_ERROR异常?
(A)
DECLARE
l_string10 VARCHAR2 (10);
SUBTYPE string10_subtype IS l_string10%TYPE;
l_string20 string10_subtype (20);
BEGIN
l_string20 := RPAD ('abc', 15, 'def');
END;
(B)
DECLARE
l_string10 VARCHAR2 (10);
l_string20 l_string10%TYPE;
BEGIN
l_string20 := RPAD ('abc', 15, 'def');
END;
(C)
DECLARE
l_string10 VARCHAR2 (10);
SUBTYPE string10_subtype IS l_string10%TYPE;
l_string20 string10_subtype;
BEGIN
l_string20 := RPAD ('abc', 15, 'def');
END;
(D)
DECLARE
l_string10 VARCHAR2 (10);
SUBTYPE string20_subtype IS l_string10%TYPE (20);
l_string20 string20_subtype;
BEGIN
l_string20 := RPAD ('abc', 15, 'def');
END;
(E)
DECLARE
l_string10 VARCHAR2 (10);
l_string20 l_string10%TYPE (20);
BEGIN
l_string20 := RPAD ('abc', 15, 'def');
END;
|
|