Search Results ota_section_rules




Overview

The OTA_SECTION_RULES table is a core data object within the Oracle E-Business Suite Learning Management (OTA) module. It functions as the central repository for defining the rules that govern the dynamic assembly of test questions. Specifically, it stores the mapping between test sections, predefined question banks, and the quantity of questions to be selected from each bank. This table is exclusively operational when a test is configured as rule-based or dynamic, indicated by the OTA_TEST.TYPE_FLAG being set to 'D'. Its primary role is to enable the on-demand, randomized generation of unique test instances for each learner attempt, ensuring assessment integrity and variety.

Key Information Stored

The table's structure is designed to enforce the relationships necessary for dynamic test generation. The primary identifier is the system-generated SECTION_RULE_ID. The core business logic is captured through three critical foreign key columns and a quantity field. The TEST_ID links the rule to a specific assessment defined in OTA_TESTS, while the SECTION_ID associates it with a particular section within that test from OTA_TEST_SECTIONS. The QUESTION_BANK_ID points to the repository of questions (OTA_QUESTION_BANKS) from which items will be drawn. Finally, the table stores the number of questions that the system must randomly select from the linked question bank when instantiating the test for a user. The presence of unique constraints on (SECTION_ID, QUESTION_BANK_ID) and (TEST_ID, QUESTION_BANK_ID) prevents duplicate bank assignments at different granularities.

Common Use Cases and Queries

The primary use case is the runtime generation of a dynamic test. When a learner launches an attempt, the application queries this table using the TEST_ID to retrieve all associated rules, which instruct the engine on how many questions to pull from which banks for each section. Common reporting and administrative queries include validating test configuration and analyzing question bank utilization. For example, to list all dynamic tests and their sourcing rules:

  • SELECT t.test_id, t.name, sr.section_id, qb.name AS question_bank, sr.number_of_questions
  • FROM ota_tests t, ota_section_rules sr, ota_question_banks qb
  • WHERE t.type_flag = 'D' AND t.test_id = sr.test_id AND sr.question_bank_id = qb.question_bank_id
  • ORDER BY t.test_id, sr.section_id;

Another critical query identifies any rule configured to pull more questions than exist in its associated bank, which would cause test generation failures.

Related Objects

The OTA_SECTION_RULES table maintains integral relationships with several key OTA entities, as documented by its foreign keys. It is a child table to OTA_TESTS, linking via TEST_ID, which defines the overall assessment. It is also a child to OTA_TEST_SECTIONS via SECTION_ID, allowing rules to be defined per test segment. Furthermore, it references OTA_QUESTION_BANKS via QUESTION_BANK_ID, the source repository for assessment items. These relationships ensure referential integrity, meaning a section rule cannot exist for a test, section, or question bank that has been deleted. Any process generating a dynamic test will necessarily join through these keys to assemble the complete test definition.