Oracle® OLAP DML Reference 11g Release 1 (11.1) Part Number B28126-01 |
|
|
View PDF |
The EXECUTE
procedure executes one or more OLAP DML commands and directs the output to a printer buffer. It is typically used to manipulate analytic workspace data within an interactive SQL session. In contrast to the RUN Procedure, EXECUTE
continues to process commands after it gets an error.
When you are using SQL*Plus, you can direct the printer buffer to the screen by issuing the following command:
SET SERVEROUT ON
If you are using a different program, refer to its documentation for the equivalent setting.
Input and output is limited to 4K. For larger values, refer to the INTERP
and INTERPCLOB
functions in this package.
This procedure does not print the output of the DML commands when you have redirected the output by using the OLAP DML OUTFILE
command.
Note:
You cannot execute this procedure from within the OLAP Worksheet. You must execute if in a SQL tool such as SQL*Plus.Syntax
EXECUTE ( olap_commands IN VARCHAR2 text OUT VARCHAR2);
Parameters
Table B-22 EXECUTE Procedure Parameters
Parameter | Description |
---|---|
|
One or more OLAP DML commands separated by semicolons. See "Guidelines for Using Quotation Marks in OLAP DML Commands". |
|
Output from the OLAP engine in response to the OLAP commands. |
Example
The following sample SQL*Plus session attaches an analytic workspace named XADEMO
, creates a formula named COST_PP
in XADEMO
, and displays the new formula definition.
SQL> set serveroutput on SQL> execute dbms_aw.execute('AW ATTACH xademo RW; DEFINE cost_pp FORMULA LAG(analytic_cube_f.costs, 1, time, LEVELREL time_levelrel)'); PL/SQL procedure successfully completed. SQL> execute dbms_aw.execute('DESCRIBE cost_pp'); DEFINE COST_PP FORMULA DECIMAL <CHANNEL GEOGRAPHY PRODUCT TIME> EQ lag(analytic_cube_f.costs, 1, time, levelrel time.levelrel) PL/SQL procedure successfully completed.
The next example show how EXECUTE
continues to process commands after encountering an error:
SQL> execute dbms_aw.execute('call nothing; colwidth=20'); BEGIN dbms_aw.execute('call nothing; colwidth=20'); END; * ERROR at line 1: ORA-34492: Analytic workspace object NOTHING does not exist. ORA-06512: at "SYS.DBMS_AW", line 90 ORA-06512: at "SYS.DBMS_AW", line 119 ORA-06512: at line 1 SQL> execute dbms_aw.execute('show colwidth'); 20 PL/SQL procedure successfully completed.