Oracle PL/SQL面试精选题库

需积分: 9 0 下载量 143 浏览量 更新于2024-09-17 收藏 47KB DOC 举报
"Oracle面试题集,涵盖PL/SQL选择题,涉及数据库基础知识、存储过程、函数、触发器、伪列、索引类型、约束以及事务处理。" Oracle数据库是企业级广泛使用的数据库管理系统,其PL/SQL是Oracle特有的编程语言,用于数据库交互和管理。以下是对题目中涉及知识点的详细解释: 1. **初始空间分配**:在Oracle中,新创建的表通常会分配一个区(Extent)作为初始空间,而不是单个块(Block)。 2. **存储过程参数**:存储过程的输入参数可以为空(默认值),但输出参数通常是标量类型,而不是表类型。字符参数的长度在声明时通常不指定,除非明确需要。 3. **自治事务**:存储过程中的增删改语句并不总是需要自治事务,但在需要确保这些操作独立于外部事务时,应使用自治事务。函数内部可以修改表数据,但不能递归调用自身。 4. **SQL查询**:D选项的SQL语句不正确,因为`GROUP BY`应该跟在`HAVING`之后,而不是`WHERE`。 5. **触发器**:触发器可以在表上创建,但INSTEAD OF触发器用于视图。语句级触发器可以使用`:old`和`:new`,行级触发器可以用于审计功能,但不能显式调用触发器。 6. **伪列**:ROWID、LEVEL和ROWNUM是Oracle的伪列,ROW_NUMBER()是窗口函数,COLUMN不是一个伪列。 7. **索引类型**:对于重复行数据较多的表,位图索引(Bitmap Index)通常更合适,因为它在处理大量重复值时更有效。 8. **约束**:若希望某一列的值在特定范围内,应使用`CHECK`约束,以确保数据的合法性。 9. **游标和事务**:在PLSQL中,使用`FOR UPDATE`关键字的游标在事务中提供了隔离性,允许锁定要更新的行。 10. **PLSQL函数**:在自定义函数中,如果包含DML语句(如UPDATE、DELETE、INSERT),通常需要在函数体内提交(COMMIT)以确保更改持久化。 以上知识点涵盖了Oracle数据库的基础知识,包括表空间管理、存储过程设计、SQL查询规范、触发器使用、索引优化、数据约束以及事务处理,这些都是数据库管理员和开发人员面试中常见的问题。掌握这些内容对于理解Oracle数据库的工作原理和高效使用至关重要。