10 free Oracle 1Z0-071 practice questions with the correct answer and a full explanation for each, taken from the CertStash pack of 272 questions. Work through them, then open each answer to check your reasoning.
Get all 272 questions (US$39) · Download these 10 as a PDF
Question 1
Examine the description of the PROMOTIONS table:
You want to display the unique promotion costs in each promotion category.
Which two queries can be used? (Choose two.)

Show answer and explanation
Correct answer: A, C
A. SELECT DISTINCT promo_category || ' has ' || promo_cost AS COSTS FROM promotions ORDER BY 1; C. SELECT DISTINCT promo_category, promo_cost FROM promotions ORDER BY 1; Option A uses DISTINCT correctly at the beginning of the SELECT clause to eliminate duplicate combinations of promo_category and promo_cost, concatenating them with string literals for display. This properly shows unique promotion costs within each category. Option C also uses DISTINCT correctly to select and display both promo_category and promo_cost as separate columns, showing the unique combinations of these two fields. Both queries return the distinct relationships between promotion categories and their costs, which answers the requirement to display unique promotion costs in each category.
Why the other options are wrong
- B. The DISTINCT keyword cannot be used in the middle of a concatenation expression; it must appear immediately after SELECT and before all column names.
- D. The syntax is invalid; DISTINCT is placed incorrectly after the column name rather than after SELECT, and the comma placement is wrong.
- E. This query lacks the DISTINCT keyword, so it will return all rows without eliminating duplicates, failing to show only the unique combinations of promotion costs and categories.
Question 2
Examine the description of the PRODUCTS table:
Which three queries use valid expressions? (Choose three.)

Show answer and explanation
The answer and explanation for this question are in the free sample PDF.
Question 3
What is true about non-equijoin statement performance? (Choose two.)
Show answer and explanation
Correct answer: D, E
D. Table aliases can improve performance. E. The join syntax used makes no difference to performance. Table aliases can improve performance by reducing parsing overhead and making queries more efficient. The join syntax used (Oracle vs ANSI) makes no difference to performance; the Oracle optimizer produces equivalent execution plans regardless of syntax style. BETWEEN and >= <= conditions perform equivalently when properly optimized.
Why the other options are wrong
- A. BETWEEN and >= <= conditions perform identically when optimized by the Oracle engine.
- B. BETWEEN does not inherently perform better than separate >= and <= conditions.
- C. Oracle syntax and ANSI SQL:1999 syntax produce identical performance after optimization.
Question 4
Which two are true? (Choose two.)
Show answer and explanation
Correct answer: A, E
A. ADD_MONTHS adds a number of calendar months to a date. E. LAST_DAY returns the date of the last day of the month for the date argument passed to the function. ADD_MONTHS adds a number of calendar months to a date value. LAST_DAY returns the last day of the month for whatever date argument is passed to it, so it works for any date, not only the current month. CEIL returns the smallest integer greater than or equal to the value supplied, and it accepts any value Oracle can implicitly convert to a number, so a numeric data type is not strictly required.
Why the other options are wrong
- B. CEIL also accepts values implicitly converted to a number, such as '7.3', so a numeric type is not required.
- C. CEIL returns the smallest integer greater than or equal to the number; that describes FLOOR.
- D. LAST_DAY uses the date supplied to it, so it is not limited to the current month.
- F. LAST_DAY returns the last day of the month of the date passed, never the previous month.
Question 5
Which three statements are true about Oracle synonyms? (Choose three.)
Show answer and explanation
Correct answer: B, C, E
B. A synonym can be available to all users. C. A SEQUENCE can have a synonym. E. A synonym created by one user can refer to an object belonging to another user. A PUBLIC synonym is available to all users in the database. A synonym can be created for a sequence, giving it a simpler name, and can point to an object in another schema, which simplifies cross-schema access. Synonyms can also be created for PL/SQL packages, procedures and functions. Dropping a public synonym requires the DROP PUBLIC SYNONYM privilege, so an ordinary user without it cannot drop one.
Why the other options are wrong
- A. Synonyms can also be created for PL/SQL packages, procedures and functions.
- D. Dropping one needs the DROP PUBLIC SYNONYM privilege, which most users lack.
Question 6
Which two are true? (Choose two.)
Show answer and explanation
Correct answer: A, F
A. CONCAT joins two character strings together. F. FLOOR returns the largest integer less than or equal to a specified number. CONCAT joins exactly two character strings together (not more than two). FLOOR returns the largest integer less than or equal to a specified number, working with both positive and negative values. INSTR finds the offset within a character string, starting from position 1 (not 0), and it can find any substring, not just single characters.
Why the other options are wrong
- B. CONCAT in Oracle joins exactly two strings, not two or more.
- C. FLOOR is not limited to positive integers; it returns the largest integer ≤ the number for any value.
- D. INSTR starts counting from position 1, not position 0.
- E. INSTR can find any substring, not just single characters.
Question 7
Examine these SQL statements which execute successfully:
Which two statements are true after execution? (Choose two.)

Show answer and explanation
Correct answer: A, D
A. The primary key constraint will be enabled and IMMEDIATE. D. The foreign key constraint will be disabled. After the CREATE TABLE statement, the primary key constraint (emp_emp_no_pk) is created and enabled by default as IMMEDIATE. The subsequent ALTER TABLE statements first add a foreign key constraint (emp_mgr_fk) which is enabled and IMMEDIATE by default, then disable the primary key constraint with DISABLE CONSTRAINT, and finally enable it again with ENABLE CONSTRAINT. However, when a constraint is re-enabled without specifying DEFERRED, it defaults to IMMEDIATE. The foreign key constraint remains disabled after the second ALTER TABLE statement disables the primary key constraint CASCADE (which disables dependent constraints). Therefore, the primary key constraint is enabled and IMMEDIATE (A is true), and the foreign key constraint is disabled (D is true).
Why the other options are wrong
- B. The foreign key constraint is disabled, not enabled and deferred.
- C. The primary key constraint is enabled as IMMEDIATE, not DEFERRED, since no DEFERRED clause was specified in the ENABLE statement.
- E. The foreign key constraint is disabled by the CASCADE option in the DISABLE CONSTRAINT statement, not enabled.
Question 8
Examine this SQL statement:
Which two are true? (Choose two.)

Show answer and explanation
The answer and explanation for this question are in the free sample PDF.
Question 9
Which two statements are true about TRUNCATE and DELETE? (Choose two.)
Show answer and explanation
Correct answer: A, E
A. DELETE can use a WHERE clause to determine which row(s) should be removed. E. The result of a DELETE can be undone by issuing a ROLLBACK. DELETE can use a WHERE clause to selectively remove specific rows based on conditions. The result of a DELETE statement can be undone by issuing a ROLLBACK because DELETE is a DML operation that generates undo information. TRUNCATE does not support a WHERE clause; it removes all rows. TRUNCATE generates a DDL operation that cannot be rolled back and does not leave indexes in an UNUSABLE state.
Why the other options are wrong
- B. TRUNCATE cannot use a WHERE clause; it removes all rows unconditionally.
- C. TRUNCATE does not leave indexes in an UNUSABLE state.
- D. TRUNCATE is a DDL operation and cannot be undone with ROLLBACK.
Question 10
The STORES table has a column START_DATE of data type DATE, containing the date the row was inserted.
You only want to display details of rows where START_DATE is within the last 25 months.
Which WHERE clause can be used?
Show answer and explanation

That was 10 of 272.
The full Oracle 1Z0-071 pack has all 272 questions, each with the answer, the explanation and why the other options are wrong, plus a questions-only copy for timed runs. US$39, paid once, with free monthly updates and a pass-or-your-money-back guarantee.
