Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to extract sequence ddl in Oracle DB

I have a problem when try extract ddl for sequence using this function in this query:

select dbms_metadata.get_dependent_ddl('SEQUENCE', base_object_name) from dual;

base_object_name - name of trigger, that use sequences. Result: ora-31604 invalid name parameter NAME "BASE_OBJECT_NAME" for OBJECT_TYPE 'SEQUENCE'

For example when I execute this query:

select dbms_metadata.get_dependent_ddl('INDEX', base_table_name) from dual;

in result I have indexes for specified table.

Please, help, how to extract sequence ddl using get_dependent_ddl() function?

like image 886
Alexandr Avatar asked Sep 03 '25 02:09

Alexandr


2 Answers

Sequences are not dependent on tables, therefore you need to use select dbms_metadata.get_ddl('SEQUENCE', 'SEQ_NAME') from dual; to retrieve its ddl.

like image 156
Marco Baldelli Avatar answered Sep 04 '25 23:09

Marco Baldelli


A sequence is not dependent on a trigger. It is a separate object that requires no other object in order to exist. Use the GET_DDL subprogram on DBMS_METADATA instead:

select dbms_meta_data.get_ddl('SEQUENCE',sequence_name) from dual
like image 31
Ben Avatar answered Sep 05 '25 00:09

Ben