查看: 80132|回复: 334

[每日一题] PL/SQL CHALLENGE 每日一题

[复制链接]
论坛徽章:
519
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
跳转到指定楼层
1#
发表于 2011-10-11 05:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 newkid 于 2012-6-7 03:51 编辑

Steven Feuerstein 是PL/SQL一代宗师,他写的Oracle PL/SQL Programming已经出到第五版,是PL/SQL程序员的宝典。
现在我征得他的同意,把他主办的 www.plsqlchallenge.com 的题目翻译介绍到我们开发版。大家可以到这网站注册并参加比赛,这里是学习PL/SQL的好地方。
这些题目可以说都不难,不是需要费脑筋琢磨的题,而是考知识点的题。但是要全答对很不容易。我曾经以为自己很了解PLSQL,参加了这里的活动之后,才知道自己还存在这么多的知识盲点。

索引:
2012-6-5 TABLE()和集合类型定义
2012-6-4 CASE语句
2012-6-1 异常处理:WHEN子句
2012-5-31 集合元素的计数
2012-5-30 AUTHID 以及编译、执行权限
2012-5-29 MEMBER OF 操作
2012-5-28 含有NULL的IF 条件
2012-5-25 时间戳和INTERVAL运算
2012-5-24 SET TRANSACTION
2012-5-23 TRIM函数
2012-5-22 MULTISET INTERSECT 操作
2012-5-21 BOOLEAN变量的赋值
2012-5-18 隐式游标属性SQL%ROWCOUNT
2012-5-17 OPEN FOR 打开游标变量
2012-5-16 子程序的声明与调用:超前声明
2012-5-15 FOR LOOP循环
2012-5-14 FORALL与稀疏集合
2012-5-11 系统字典视图ALL_PROCEDURES
2012-5-10 出错信息的处理
2012-5-9 记录类型的比较与赋值
2012-5-8 条件编译选项:ERROR
2012-5-7 依赖关系的字典:ALL_DEPENDENCIES

2012-5-4 删除数组元素
2012-5-3 ASCII函数
2012-5-2 集合的遍历
2012-5-1 隐式游标属性
2012-4-30 对象的自定义构造函数
2012-4-27 显式游标的属性
2012-4-26 带RETURNING的DML

2012-4-25 11G新功能:RESULT CACHE 函数
2012-4-24 隐式游标的属性
2012-4-23 条件编译
2012-4-20 NVL 和 COALESCE 对实际参数的求值
2012-4-19 CAST函数在PLSQL和SQL中的不同表现

2012-4-18 PL/SQL分隔符
2012-4-17 MULTISET INTERSECT操作
2012-4-16 嵌套表非空判断

2012-4-13 语句级触发器
2012-4-12 引用包头定义类型是否触发包体初始化代码
2012-4-11 SQL中VARCHAR2的长度限制

2012-4-10 FOR LOOP循环变量
2012-4-9 从SQL中调用PLSQL函数的限制
2012-4-6 对程序单元的访问控制
2012-4-5: 函数未返回值
2012-4-4 动态SQL

2012-4-3 结果缓存函数不支持的数据类型

2012-4-2 自治事务

2012-3-30 求字符串逆序
2012-3-29 列宽度以及参数宽度的约束
2012-3-28 多层次的对象类型

2012-3-27 数组的遍历访问

2012-3-26 时间戳数据类型

2012-3-23数字表达式
2012-3-22 空串做数组下标

2012-3-21 删除数组元素

2012-3-20 SQL%BULK_EXCEPTIONS

2012-3-19 记录类型的插入
2012-3-16 NVL函数

2012-3-15 NOCOPY 参数

2012-3-14 引用未经初始化的集合
2012-3-13 NO_DATA_FOUND 异常

2012-3-12 TOO_MANY_ROWS 异常

2012-3-9 存储过程传参

2012-3-8 ROLLBACK TO SAVEPOINT及阻塞

2012-3-7 查询中不带别名的表达式的引用

2012-3-6 应用上下文(Application Context)的设置

2012-3-5 TIMESTAMP常量

2012-3-2 自治事务

2012-3-1 游标变量(REF CURSOR)的限制

2012-2-29 SAVEPOINT
2012-2-28 RESULT_CACHE和动态SQL

2012-2-27 SUBSTR参数为零的表现

2012-2-24 带参数的显式游标

2012-2-23 INSTR函数

342楼:2012-2-22 DBMS_UTILITY.FORMAT_CALL_STACK

340楼:2012-2-21 INDEX BY数组用空串做下标

339楼:2012-2-20 日期运算
338 楼:2012-2-17 DBMS_OUTPUT.PUT_LINE的数据类型

333楼:2012-2-16 FORALL中的VALUES OF子句

332楼:2012-2-15 删除数组元素

331楼:2012-2-14 打开游标后ROLLBACK的影响

330楼:2012-2-13 CONSTANT变量的声明

328楼:2012-2-10 SUBSTR函数

327楼:2012-2-9  NOCOPY Hint何时忽略

325楼:2012-2-8 显式游标/隐式游标

324楼:2012-2-7 布尔型变量的显示

318楼:SQL中调用PLSQL函数

316楼:2012-2-3 集合去重

314楼:2012-2-2 日期的四舍五入

312楼:2012-2-1 编译器优化

309楼:2012-1-31 11GR2下的RESULT_CACHE函数

308楼:2012-1-30 BULK COLLECT 获取多行数据

306楼:2012-1-27 带行数限制的BULK FETCH操作

304楼:2012-1-26: 触发器中的UPDATING函数和带引号列名

303楼:2012-1-25: 不完整的创建过程语句

302楼:2012-1-24 动态SQL中引用标识符

301楼:2012-1-23 重复异常定义

300楼:带标记的EXIT语句

299楼:2012-1-19 DBMS_SQL的出错处理

298楼:2012-1-18 FORMAT_CALL_STACK相关

297楼:2012-1-17 定制并行化操作:DBMS_PARALLEL_EXECUTE包的使用

294楼:2012-1-16 CASE表达式

293楼: 2012-1-13 COLLECTIONS

290楼:2012-1-12 不规则表名

288楼:2012-1-11 UTL_FILE读文件

285楼:2012-1-10 事务隔离级别:serializable

283楼:2012-1-9 数组的遍历

281楼:2012-1-6 乘方和开方函数

279楼:2012-1-5 触发器和变异表异常

274楼:2012-1-4 简单判断

272楼:2012-1-3 自治事务, 在声明部分调用子过程

270楼:2012-1-2 SUBSTR的负数参数

269楼:2011-12-30 锁表语句LOCK TABLE

265楼:2011-12-29 RAISE_APPLICATION_ERROR

263楼:2011-12-28 用记录类型修改整行数据(SET ROW)

261楼:2011-12-27 子程序重载
260楼:2011-12-26 在SQL中使用名字表示法(Named Notation)

257楼:2011-12-23 日期常量

252楼:2011-12-22 嵌套表的初始化

249楼:2011-12-21 LEAST函数的不同参数类型

248楼:2011-12-20 求月末日期

247楼:2011-12-19 变量、参数的声明及初始化

245楼:2011-12-16 MONTHS_BETWEEN函数在月末的表现

243楼:2011-12-15 11G新功能:RESULT_CACHE函数

239楼:2011-12-14 集合去重

236楼:2011-12-13 逻辑运算优先级

235楼:2011-12-12 11G新功能:CONTINUE语句

231楼:2011-12-09 Inner capture

229楼:2011-12-8 DBMS_SQL相关
227楼:2011-12-7 USER_ARGUMENTS相关

224楼:2011-12-6 非空约束和VALUE_ERROR异常
219楼:2011-12-05 动态SQL

216楼:2011-12-02 带约束的SUBTYPE

214楼:2011-12-01 SQL注入的防备

209楼:2011-11-30 一致读

204楼:2011-11-29 11G新功能:PL/SCOPE

201楼:2011-11-28 取单行数据

198楼:2011-11-25 包的初始化
191楼:2011-11-24 RESULT_CACHE函数

184楼:2011-11-23 DETERMINISTIC函数
178楼:2011-11-22 OUT 参数

173楼:2011-11-21 未捕获异常

164楼:2011-11-17 AUTHID(定义者权限与使用者权限)

156楼:2011-11-16 %ROWTYPE的声明与使用

147楼:2011-11-15 过程与函数

141楼:2011-11-14 PACKAGE相关

137楼:2011-11-11 集合元素的删除

131楼:2011-11-10 CLOB为空的判断

127楼:2011-11-9 11G新功能:PL/SCOPE

120楼:2011-11-8 包变量的初始化

117楼:2011-11-7 包和包体的删除语法

114楼:2011-11-4 LEAST函数

110楼:2011-11-3 触发器

106楼:2011-11-2 游标和管道函数

102楼:2011-11-1 求嵌套表平均值

99楼:2011-10-31 对集合的密集性判断

94楼:2011-10-28 LIKE条件中的通配符


90楼:2011-10-27 CONSTANT变量与INDEX BY数组

86楼:2011-10-26 自治事务

81 楼:2011-10-25 NULL与循环

77楼:2011-10-24 REF CURSOR作为过程参数的表现

71楼:2011-10-21 自定义异常的捕获

66楼:2011-10-20 %TYPE的使用

65楼:2011-10-19: 对REF CURSOR 的理解

62楼:2011-10-18 TO_CHAR格式转换

57楼:2011-10-17 记录类型判断非空的办法

47楼:2011-10-14 对变量的引用
41楼:2011-10-13 10G新特性DML ERROR LOG

33楼 2011-10-12 各种带锁游标加锁的时机
25楼 2011-10-11 字符串转换格式
16楼 2011-10-10 COLLECTION的EXISTS接受NULL参数的表现
15楼 2011-10-07 PLSQL的命名方法
14楼 2011-10-06 修改包头后对变量的引用


旧题目有很多,我将来会选一些介绍过来。先从2011-10-05的题目开始吧:

作者:Steven Feuerstein
哪一个PLSQL块执行之后会显示下面的三行数字?
0
1
2

(A)
DECLARE
   TYPE numbers_t IS TABLE OF NUMBER;

   l_numbers   numbers_t := numbers_t ();
BEGIN
   DBMS_OUTPUT.put_line (l_numbers.COUNT);
   l_numbers.EXTEND ();
   l_numbers (1) := 100;
   DBMS_OUTPUT.put_line (l_numbers.COUNT);
   l_numbers.EXTEND ();
   DBMS_OUTPUT.put_line (l_numbers.COUNT);
END;
/


(B)
DECLARE
   TYPE numbers_t IS TABLE OF NUMBER;

   l_numbers   numbers_t := numbers_t ();
BEGIN
   DBMS_OUTPUT.put_line (l_numbers.COUNT);
   l_numbers.EXTEND (2);
   l_numbers (1) := 100;
   DBMS_OUTPUT.put_line (l_numbers.COUNT);
   l_numbers (2) := 100;
   DBMS_OUTPUT.put_line (l_numbers.COUNT);
END;
/

(C)
DECLARE
   TYPE numbers_t IS TABLE OF NUMBER;

   l_numbers   numbers_t := numbers_t ();
BEGIN
   DBMS_OUTPUT.put_line (l_numbers.COUNT);
   l_numbers.EXTEND (2);
   l_numbers (1) := 100;
   l_numbers.DELETE (1);
   DBMS_OUTPUT.put_line (l_numbers.COUNT);
   l_numbers (2) := 100;
   DBMS_OUTPUT.put_line (l_numbers.COUNT);
END;
/


(D)
DECLARE
   TYPE numbers_t IS TABLE OF NUMBER;

   l_numbers   numbers_t := numbers_t ();
BEGIN
   DBMS_OUTPUT.put_line (l_numbers.COUNT);
   l_numbers.EXTEND (2);
   l_numbers (1) := 100;
   l_numbers.DELETE (1);
   DBMS_OUTPUT.put_line (l_numbers.COUNT);
   l_numbers (1) := 200;
   l_numbers (2) := 100;
   DBMS_OUTPUT.put_line (l_numbers.COUNT);
END;
/

这道题考察的是COLLECTION的知识,当你删除一个元素后,是否还能将其恢复,COUNT值又会如何变化?



论坛徽章:
27
ITPUB官方微博粉丝徽章
日期:2011-08-17 10:35:36托尼托尼·乔巴
日期:2017-10-25 16:45:57秀才
日期:2017-04-05 13:18:06秀才
日期:2017-03-02 10:35:322016猴年福章
日期:2016-02-23 09:58:342016猴年福章
日期:2016-02-18 09:31:302015年新春福章
日期:2015-03-06 11:57:312014年新春福章
日期:2014-02-18 16:42:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:07:31
2#
发表于 2011-10-11 08:27 | 只看该作者
太感谢了,上面的问题好多都看不懂。英文太差

选个D

使用道具 举报

回复
论坛徽章:
27
ITPUB官方微博粉丝徽章
日期:2011-08-17 10:35:36托尼托尼·乔巴
日期:2017-10-25 16:45:57秀才
日期:2017-04-05 13:18:06秀才
日期:2017-03-02 10:35:322016猴年福章
日期:2016-02-23 09:58:342016猴年福章
日期:2016-02-18 09:31:302015年新春福章
日期:2015-03-06 11:57:312014年新春福章
日期:2014-02-18 16:42:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:07:31
3#
发表于 2011-10-11 08:38 | 只看该作者
被最后一句话忽悠了“当你删除一个元素后” ,直接跑去研究C D两个答案了

使用道具 举报

回复
论坛徽章:
10000
绿钻
日期:2016-02-22 15:43:08绿钻
日期:2016-03-01 18:19:01绿钻
日期:2016-02-22 15:43:08绿钻
日期:2016-03-01 18:19:01绿钻
日期:2015-12-16 18:42:35绿钻
日期:2015-12-11 00:18:01绿钻
日期:2015-09-10 13:05:08绿钻
日期:2015-12-11 00:18:01绿钻
日期:2015-09-10 13:05:08绿钻
日期:2015-09-10 13:05:08
4#
发表于 2011-10-11 09:00 | 只看该作者
English没学好
看英文看得累死

这道题(A)应该是对的
(D)不确定

试了下,本以为(D)会报下标超出数量的错误。。。
真是基础不扎实啊

l_numbers.DELETE 和
l_numbers.DELETE (1);有那么大区别啊


使用道具 举报

回复
论坛徽章:
289
蛋疼蛋
日期:2013-03-29 13:46:58优秀写手
日期:2013-12-24 06:00:12福特
日期:2014-02-17 17:30:59生肖徽章:兔
日期:2012-05-24 19:03:36SQL极客
日期:2013-12-09 14:13:35ITPUB季度 技术新星
日期:2014-02-24 11:00:06IT宝贝
日期:2014-08-27 10:32:17马上加薪
日期:2014-08-05 09:18:33SQL数据库编程大师
日期:2016-01-13 10:30:43玉石琵琶
日期:2014-03-04 16:46:07
5#
发表于 2011-10-11 09:40 | 只看该作者
总结下,EXTEND会分配一个NULL,EXTEND(N) 会分配N个NULL,COUNT 会计算NULL,DELETE(N) 会删除第N行,用占位符代替,COUNT不会计算占位符,DELETE直接释放内存,这样的理解对么

使用道具 举报

回复
论坛徽章:
3
ITPUB十周年纪念徽章
日期:2011-11-01 16:24:512012新春纪念徽章
日期:2012-01-04 11:54:26蛋疼蛋
日期:2012-04-11 10:25:43
6#
发表于 2011-10-11 09:44 | 只看该作者
我选A,我觉得删除后应该还会保留,所以count时是不会发生变化的,我没有动手实验,只是凭感觉选的,不知道对不!

使用道具 举报

回复
论坛徽章:
27
ITPUB官方微博粉丝徽章
日期:2011-08-17 10:35:36托尼托尼·乔巴
日期:2017-10-25 16:45:57秀才
日期:2017-04-05 13:18:06秀才
日期:2017-03-02 10:35:322016猴年福章
日期:2016-02-23 09:58:342016猴年福章
日期:2016-02-18 09:31:302015年新春福章
日期:2015-03-06 11:57:312014年新春福章
日期:2014-02-18 16:42:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:07:31
7#
发表于 2011-10-11 09:51 | 只看该作者
本帖最后由 gyhgood 于 2011-10-11 09:51 编辑

我觉得这个DELETE(N)的时候有点像C里的memset

使用道具 举报

回复
论坛徽章:
1088
金色在线徽章
日期:2007-04-25 04:02:08金色在线徽章
日期:2007-06-29 04:02:43金色在线徽章
日期:2007-03-11 04:02:02在线时间
日期:2007-04-11 04:01:02在线时间
日期:2007-04-12 04:01:02在线时间
日期:2007-03-07 04:01:022008版在线时间
日期:2010-05-01 00:01:152008版在线时间
日期:2011-05-01 00:01:342008版在线时间
日期:2008-06-03 11:59:43ITPUB年度最佳技术原创精华奖
日期:2013-03-22 13:18:30
8#
发表于 2011-10-11 11:00 | 只看该作者
所以,学好一门技术,难在细节啊
这些东西plsql reference都是有的

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
9#
发表于 2011-10-11 11:04 | 只看该作者
http://download.oracle.com/docs/cd/B13789_01/appdev.101/b10807/05_colls.htm#i27396
Counting the Elements in a Collection (COUNT Method)COUNT returns the number of elements that a collection currently contains:
DECLARE   TYPE NumList IS TABLE OF NUMBER;   n NumList := NumList(2,4,6,8); -- Collection starts with 4 elements.BEGIN   dbms_output.put_line('There are ' || n.COUNT || ' elements in N.');   n.EXTEND(3); -- Add 3 new elements at the end.   dbms_output.put_line('Now there are ' || n.COUNT || ' elements in N.');   n := NumList(86,99); -- Assign a completely new value with 2 elements.   dbms_output.put_line('Now there are ' || n.COUNT || ' elements in N.');   n.TRIM(2); -- Remove the last 2 elements, leaving none.   dbms_output.put_line('Now there are ' || n.COUNT || ' elements in N.');END;/COUNT is useful because the current size of a collection is not always known. For example, you can fetch a column of Oracle data into a nested table, where the number of elements depends on the size of the result set.
For varrays, COUNT always equals LAST. You can increase or decrease the size of a varray using the EXTEND and TRIM methods, so the value of COUNT can change, up to the value of the LIMIT method.
For nested tables, COUNT normally equals LAST. But, if you delete elements from the middle of a nested table, COUNT becomes smaller than LAST. When tallying elements, COUNT ignores deleted elements.

Increasing the Size of a Collection (EXTEND Method)To increase the size of a nested table or varray, use EXTEND.
You cannot use EXTEND with index-by tables.
This procedure has three forms:

    EXTEND appends one null element to a collection.
    EXTEND(n) appends n null elements to a collection.
  • EXTEND(n,i) appends n copies of the ith element to a collection.

You cannot use EXTEND to add elements to an uninitialized.
If you impose the NOT NULL constraint on a TABLE or VARRAY type, you cannot apply the first two forms of EXTEND to collections of that type.
EXTEND operates on the internal size of a collection, which includes any deleted elements. If EXTEND encounters deleted elements, it includes them in its tally. PL/SQL keeps placeholders for deleted elements so that you can re-create them by assigning new values.
DECLARE   TYPE NumList IS TABLE OF INTEGER;   n NumList := NumList(2,4,6,8);   x NumList := NumList(1,3);   PROCEDURE print_numlist(the_list NumList) IS      output VARCHAR2(128);   BEGIN      FOR i IN the_list.FIRST .. the_list.LAST      LOOP         output := output || NVL(TO_CHAR(the_list(i)),'NULL') || ' ';      END LOOP;      dbms_output.put_line(output);   END;BEGIN   dbms_output.put_line('At first, N has ' || n.COUNT || ' elements.');   n.EXTEND(5); -- Add 5 elements at the end.   dbms_output.put_line('Now N has ' || n.COUNT || ' elements.');-- Elements 5, 6, 7, 8, and 9 are all NULL.   print_numlist(n);   dbms_output.put_line('At first, X has ' || x.COUNT || ' elements.');   x.EXTEND(4,2); -- Add 4 elements at the end.   dbms_output.put_line('Now X has ' || x.COUNT || ' elements.');-- Elements 3, 4, 5, and 6 are copies of element #2.   print_numlist(x);END;/When it includes deleted elements, the internal size of a nested table differs from the values returned by COUNT and LAST. For instance, if you initialize a nested table with five elements, then delete elements 2 and 5, the internal size is 5, COUNT returns 3, and LAST returns 4. All deleted elements, regardless of position, are treated alike.

Deleting Collection Elements (DELETE Method)This procedure has various forms:

    DELETE removes all elements from a collection.
    DELETE(n) removes the nth element from an associative array with a numeric key or a nested table. If the associative array has a string key, the element corresponding to the key value is deleted. If n is null, DELETE(n) does nothing.
  • DELETE(m,n) removes all elements in the range m..n from an associative array or nested table. If m is larger than n or if m or n is null, DELETE(m,n) does nothing.

For example:
DECLARE   TYPE NumList IS TABLE OF NUMBER;   n NumList := NumList(10,20,30,40,50,60,70,80,90,100);   TYPE NickList IS TABLE OF VARCHAR2(64) INDEX BY VARCHAR2(32);   nicknames NickList;BEGIN   n.DELETE(2);    -- deletes element 2    n.DELETE(3,6);  -- deletes elements 3 through 6    n.DELETE(7,7);  -- deletes element 7    n.DELETE(6,3);  -- does nothing since 6 > 3   n.DELETE;      -- deletes all elements   nicknames('Bob') := 'Robert';   nicknames('Buffy') := 'Esmerelda';   nicknames('Chip') := 'Charles';   nicknames('Dan') := 'Daniel';   nicknames('Fluffy') := 'Ernestina';   nicknames('Rob') := 'Robert';   nicknames.DELETE('Chip'); -- deletes element denoted by this key   nicknames.DELETE('Buffy','Fluffy'); -- deletes elements with keys in this alphabetic rangeEND;/Varrays always have consecutive subscripts, so you cannot delete individual elements except from the end (by using the TRIM method).
If an element to be deleted does not exist, DELETE simply skips it; no exception is raised. PL/SQL keeps placeholders for deleted elements, so you can replace a deleted element by assigning it a new value.
DELETE lets you maintain sparse nested tables. You can store sparse nested tables in the database, just like any other nested tables.
The amount of memory allocated to a nested table can increase or decrease dynamically. As you delete elements, memory is freed page by page. If you delete the entire table, all the memory is freed.



使用道具 举报

回复
论坛徽章:
548
生肖徽章2007版:猴
日期:2008-05-16 11:28:59生肖徽章2007版:马
日期:2008-10-08 17:01:01SQL大赛参与纪念
日期:2011-04-13 12:08:17授权会员
日期:2011-06-17 16:14:53ITPUB元老
日期:2011-06-21 11:47:01ITPUB官方微博粉丝徽章
日期:2011-07-01 09:45:27ITPUB十周年纪念徽章
日期:2011-09-27 16:30:472012新春纪念徽章
日期:2012-01-04 11:51:222012新春纪念徽章
日期:2020-11-30 22:13:24海蓝宝石
日期:2012-02-20 19:24:27
10#
发表于 2011-10-11 16:44 | 只看该作者
A,D (经执行。。。)

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表