Re: SQL*Plus Question

  • From: Jared Still <jkstill@xxxxxxxxx>
  • To: oracledba.williams@xxxxxxxxx
  • Date: Mon, 9 Feb 2009 12:58:24 -0800

On Mon, Feb 9, 2009 at 11:16 AM, Dennis Williams <
oracledba.williams@xxxxxxxxx> wrote:

> List,
>
> So, I'm trying to generate a list of CREATE TABLESPACE statements from
> DBA_DATA_FILES. I'm having trouble putting single quotes around the datafile
> name. This is frustrating because I seem to have forgotten how to do this. I
> thought there is a SQL function that would let you enter the hexadecimal
> value of a character you want printed.
>
> This is 10.2.0.4 on Solaris, but I don't think that matters.
>

Why not use dbms_metadata?

=================================================
set linesize 1000
set long 10000

col mydb noprint new_value mydb
set term off
select lower(name) mydb from v$database;
set term on

define sqlfile=_gen_tbs_&&mydb

-- dbms_metadata setup
begin

dbms_metadata.set_transform_param(dbms_metadata.session_transform,'PRETTY',TRUE);

dbms_metadata.set_transform_param(dbms_metadata.session_transform,'SQLTERMINATOR',TRUE);

dbms_metadata.set_transform_param(dbms_metadata.session_transform,'SEGMENT_ATTRIBUTES',TRUE);

dbms_metadata.set_transform_param(dbms_metadata.session_transform,'STORAGE',
TRUE);

dbms_metadata.set_transform_param(dbms_metadata.session_transform,'TABLESPACE',TRUE);

dbms_metadata.set_transform_param(dbms_metadata.session_transform,'SPECIFICATION',TRUE);

dbms_metadata.set_transform_param(dbms_metadata.session_transform,'BODY',TRUE);

dbms_metadata.set_transform_param(dbms_metadata.session_transform,'CONSTRAINTS',TRUE);
end;
/


spool &&sqlfile..sql

prompt set echo on
prompt spool &&sqlfile..log

select dbms_metadata.get_ddl('TABLESPACE',tablespace_name)
from dba_tablespaces
/

prompt spool off
prompt set echo off

spool off
=================================================

Jared Still
Certifiable Oracle DBA and Part Time Perl Evangelist

Other related posts: