Expert
Q: | ||||
21-43. | You can do (a), (c), (d), and (f) with DBMS_SQL. You can’t do any of the following:
| |||
Q: | ||||
21-44. | This functionality is similar to “indirect referencing” in Oracle Forms, where you use COPY and NAME_IN to write and read, respectively, the value of a GLOBAL variable or block’s item by referencing its name. One possible solution follows: it constructs, in a straightforward manner and completely with concatenation, the assignment statement. It then executes the statement: /* Filename on web page: assign.sp */ CREATE OR REPLACE PROCEDURE assign ( val_in IN VARCHAR2, varname_in IN VARCHAR2) IS cur PLS_INTEGER := DBMS_SQL.OPEN_CURSOR; fdbk PLS_INTEGER; assign_string VARCHAR2(2000) := 'BEGIN ' || varname_in || ' := ''' || val_in || '''; END;'; BEGIN DBMS_OUTPUT.PUT_LINE (assign_string); DBMS_SQL.PARSE ... |
Get Oracle PL/SQL Programming: A Developer's Workbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.