sql::=
To execute a SQL statement or a PL/SQL stored procedure from within Recovery Manager.
If the string that RMAN passes to PL/SQL contains a filename, then the filename must be enclosed in duplicate single quotes and the entire string following the SQL
keyword must be enclosed in double quotes. For example, use the following syntax:
SQL "CREATE TABLESPACE temp1 DATAFILE ''?/oradata/trgt/temp1.dbf'' SIZE 10M TEMPORARY";
If you attempt to use single quotes for the string following the SQL keyword or use only one set of single quotes for the filename, then the command fails.
You cannot execute SELECT
statements.
See Also:
For valid SQL syntax, see the Oracle Database SQL ReferenceSyntax Element | Description |
---|---|
' command ' |
Specifies a SQL statement for execution. For example, issue the following at the RMAN prompt to archive the online redo logs:
SQL 'ALTER SYSTEM ARCHIVE LOG ALL'; Because SQL 'BEGIN rman.rman_purge; END;'; |
Archiving the Unarchived Online Logs: Example This example backs up a tablespace and then archives all unarchived online logs:
BACKUP TABLESPACE users; SQL "ALTER SYSTEM ARCHIVE LOG CURRENT";
Specifying a Filename within a Quoted String: Example This example specifies a filename by using duplicate single quotes within the context of a double-quoted string:
SQL "ALTER TABLESPACE tbs_1 ADD DATAFILE ''/oracle/dbs/tbs_7.f'' NEXT 10K MAXSIZE 100k;"
Executing a PL/SQL Stored Procedure Within RMAN: Example This example issues a PL/SQL stored procedure called scott.update_log
:
RUN { SQL ' BEGIN scott.update_log; END; '; }