1z0-148 Oracle Database 12c: Advanced PL/SQL

Loading demo links...

Showing 1–3 of 10 questions

Question 1

Examine this function call:

cur_num := DBMS_SQL.TO_CURSOR_NUMBER (cur_val); Which two statements are true?

Select all that apply, then click Submit answer.

  • CUR_VAL must be opened after this line is executed in the PL/SQL block.

  • CUR_VAL must be a weakly typed cursor variable.

  • CUR_VAL can be either a strongly or weakly typed cursor variable.

  • CUR_VAL must be opened before this line is executed in the PL/SQL block.

  • The PL/SQL block can continue to use the cursor variable after this line is executed.


Question 2

Examine this code:

Users of this function may set different date formats in their sessions.

Which two modifications must be made to allow the use of your session’s date format when outputting the cached result of this function?

Select all that apply, then click Submit answer.

  • Change the RETURN type to DATE.

  • Change AUTHID to CURRENT_USER.

  • Use the TO_CHAR function around SYSDATE, that is, 1_date := TO_CHAR (SYSDATE).

  • Change the data type of 1_date to DATE.

  • Set NLS_DATE_FORMAT to ‘DD-MM-YY’ at the instance level.

  • Set the RESULT_CACHE_MODE parameter to FORCE.


Question 3

Examine this code:

Which two are valid correlations to the code to avoid or mitigate SQL Injection?

Select all that apply, then click Submit answer.

  • CREATE PROCEDURE list_products_dynamic (p_product_name VARCHAR2 DEFAULT NULL) ASTYPE cv_pordtyp IS REF CURSOR;cv cv_prodtyp;v_prodname prod_info.name%TYPE;v_listprice prod_info.price%TYPE;v_bind VARCHAR2 (400);BEGINv_bind := ‘%’ | | p_product_name | | ‘%’;OPEN cv FOR ‘SELECT name, price FROM prod_info WHERE name LIKE :b’ USING v_bind;LOOPFETCH cv INTO v_prodname, v_listprice;EXIT WHEN cv%NOTFOUND;DBMS_OUTPU.PUT_LINE (‘Product Info: ‘ | | v_prodname | | ‘,’ | | v_listprice);END LOOP;CLOSE cv;END;

  • CREATE PROCEDURE list_products_dynamic (p_product_name VARCHAR2 DEFAULT NULL) ASv_bind VARCHAR2 (400);BEGINv_bind := ‘%’ | | p_prodname | | ‘%’;FOR rec IN (‘SELECT name, price FROM prod_info WHERE name like ‘ | | v_bind) LOOPDBMS_OUTPUT.PUT_LINE (‘Product Info: ’ | | rec.name | | ‘,’ | | rec.price);END LOOP;END;

  • CREATE PROCEDURE list_products_dynamic (p_product_name VARCHAR2 DEFAULT NULL) ASTYPE cv_pordtyp IS REF CURSOR;cv cv_prodtyp;v_prodname prod_info.name%TYPE;v_listprice prod_info.price%TYPE;v_bind VARCHAR2 (400);BEGINv_bind := ’’’%’ | | p_product_name | | ‘%’’’;OPEN cv FOR ‘SELECT name, price FROM prod_info WHERE name LIKE ’ | | v_bind;LOOPFETCH cv INTO v_prodname, v_listprice;EXIT WHEN cv%NOTFOUND;DBMS_OUTPU.PUT_LINE (‘Product Info: ‘ | | v_prodname | | ‘,’ | | v_listprice);END LOOP;CLOSE cv;END;

  • CREATE PROCEDURE list_products_dynamic (p_product_name VARCHAR2 DEFAULT NULL) ASTYPE cv_pordtyp IS REF CURSOR;cv cv_prodtyp;v_prodname prod_info.name%TYPE;v_listprice prod_info.price%TYPE;v_bind VARCHAR2 (400);BEGINv_bind := ‘%’ | | p_product_name | | ‘%’;OPEN cv FOR ‘SELECT name, price FROM prod_info WHERE name LIKE ’ | | v_bind;LOOPFETCH cv INTO v_prodname, v_listprice;EXIT WHEN cv%NOTFOUND;DBMS_OUTPU.PUT_LINE (‘Product Info: ‘ | | v_prodname | | ‘,’ | | v_listprice);END LOOP;CLOSE cv;END;

  • CREATE PROCEDURE list_products_dynamic (p_product_name VARCHAR2 DEFAULT NULL) ASTYPE cv_pordtyp IS REF CURSOR;cv cv_prodtyp;v_prodname prod_info.name%TYPE;v_listprice prod_info.price%TYPE;v_bind VARCHAR2 (400);BEGINv_bind := DBMS_ASSERT.ENQUOTE_LITERAL (‘%’ | | p_product_name | | ‘%’);OPEN cv FOR ‘SELECT name, price FROM prod_info WHERE name LIKE ’ | | v_bind;LOOPFETCH cv INTO v_prodname, v_listprice;EXIT WHEN cv%NOTFOUND;DBMS_OUTPU.PUT_LINE (‘Product Info: ‘ | | v_prodname | | ‘,’ | | v_listprice);END LOOP;CLOSE cv;END;