1

I'm running SchemaCrawler command line against Oracle and I can't get the Oracle Sequences in the output. I only get the tables that match my regex. I've confirmed that the sequences exist in the schema and that the user has access to them. What am I doing wrong? My configuration is below.

SchemaCrawler: 12.01.01

Oracle: 11g Enterprise Edition Release 11.2.0.4.0

Driver: Oracle JDBC driver 11.1.0.7.0-Production

Command Line: sc.cmd -host="my host" -user="my user" -password="my password" -server=oracle -url=jdbc:oracle:thin:@myHost:1521/myService -database="myService" -driver=oracle.jdbc.OracleDriver -schemas="mySchema" -routines= -c=schema -infolevel=standard -loglevel=FINE

Properties:

# --=----=----=----=----=----=----=----=----=----=----=----=----=----=----=----=
# ------------------------------- SchemaCrawler --------------------------------
# --=----=----=----=----=----=----=----=----=----=----=----=----=----=----=----=
# SchemaCrawler is a platform (both operating system and database system)
# independent command-line tool to output your database schema and data in a
# readable form. The output is designed to be diff-ed with previous versions of
# your database schema.

# --=----=----=----=----=----=----=----=----=----=----=----=----=----=----=----=
# SchemaCrawler Options
# --=----=----=----=----=----=----=----=----=----=----=----=----=----=----=----=

# Filtering Options
# ------------------------------------------------------------------------------

# Regular expression table and column name pattern to filter table
# and column names
# Column regular expression to match fully qualified column names, 
# in the form "SCHEMANAME.TABLENAME.COLUMNNAME"
# Default: .* for include, <none> for exclude
schemacrawler.table.pattern.include=.*\.PERSOL.*
schemacrawler.table.pattern.exclude=
schemacrawler.column.pattern.include=.*
schemacrawler.column.pattern.exclude=

# Regular expression procedure and procedure parameter name pattern to filter
# procedure and procedure parameter names
# Default: .* for include, <none> for exclude
schemacrawler.procedure.pattern.include=
schemacrawler.procedure.pattern.exclude=.*
schemacrawler.procedure.inout.pattern.include=
schemacrawler.procedure.inout.pattern.exclude=.*

# Regular expression synonym pattern to  filter
# synonym names
# Default: <none> for include, .* for exclude
schemacrawler.synonym.pattern.include=.*\.PERSOL.*
schemacrawler.synonym.pattern.exclude=

# Regular expression sequence pattern to  filter
# sequence names
# Default: <none> for include, .* for exclude
schemacrawler.sequence.pattern.include=.* 
schemacrawler.sequence.pattern.exclude=

# Grep Options
# ------------------------------------------------------------------------------

schemacrawler.grep.column.pattern.exclude=
schemacrawler.grep.column.pattern.include=.*
schemacrawler.grep.procedure.inout.pattern.exclude=
schemacrawler.grep.procedure.inout.pattern.include=.*

schemacrawler.grep.invert-match=false

# Sorting Options
# ------------------------------------------------------------------------------

# Sort orders for objects that are not sorted by name by default
schemacrawler.format.sort_alphabetically.table_columns=false
schemacrawler.format.sort_alphabetically.table_foreignkeys=false
schemacrawler.format.sort_alphabetically.table_indices=false
schemacrawler.format.sort_alphabetically.procedure_columns=false

# --=----=----=----=----=----=----=----=----=----=----=----=----=----=----=----=
# Text Formatting Options
# --=----=----=----=----=----=----=----=----=----=----=----=----=----=----=----=

# Shows all object names with the catalog and schema names, for easier comparison
# across different schemas
# Default: false
schemacrawler.format.show_unqualified_names=false

# Shows standard column names instead of database specific column names
# Default: false
schemacrawler.format.show_standard_column_type_names=false

# Shows ordinal numbers for columns
# Default: false
schemacrawler.format.show_ordinal_numbers=false

# If foreign key names, constraint names, trigger names, 
# specific names for procedures, or index and primary key names 
# are not explicitly provided while creating a schema, most 
# database systems assign default names. These names can show 
# up as spurious diffs in SchemaCrawler output.
#
# All of these are hidden with the -portablenames
# command-line option.
#
# Hides foreign key names, constraint names, trigger names, 
# specific names for procedures, index and primary key names
# Default: false
schemacrawler.format.hide_primarykey_names=false
schemacrawler.format.hide_foreignkey_names=false
schemacrawler.format.hide_index_names=false
schemacrawler.format.hide_trigger_names=false
schemacrawler.format.hide_routine_specific_names=false
schemacrawler.format.hide_constraint_names=false

# Encoding of input files, such as Apache Velocity temaplates
# Default: UTF-8
schemacrawler.encoding.input=UTF-8
# Encoding of SchemaCrawler output files
# Default: UTF-8
schemacrawler.encoding.output=UTF-8

# --=----=----=----=----=----=----=----=----=----=----=----=----=----=----=----=
# Data Output Options
# --=----=----=----=----=----=----=----=----=----=----=----=----=----=----=----=

# Whether to merge rows that differ only in the last column
# Default: false
schemacrawler.data.merge_rows=false

# Whether to show data from CLOB and BLOB objects
# Default: false
schemacrawler.data.show_lobs=false

# --=----=----=----=----=----=----=----=----=----=----=----=----=----=----=----=
# Queries
# --=----=----=----=----=----=----=----=----=----=----=----=----=----=----=----=

Edit

I can run the SQL below using the account I'm connecting with and see the sequences I'm interested in.

SELECT /*+ PARALLEL(AUTO) */
  NULL AS SEQUENCE_CATALOG,
  SEQUENCE_OWNER AS SEQUENCE_SCHEMA,
  SEQUENCE_NAME AS SEQUENCE_NAME,
  INCREMENT_BY AS "INCREMENT",
  MIN_VALUE AS MINIMUM_VALUE,
  MAX_VALUE AS MAXIMUM_VALUE,
  CASE WHEN CYCLE_FLAG = 'Y' THEN 'YES' ELSE 'NO' END AS CYCLE_OPTION,
  ORDER_FLAG,
  CACHE_SIZE,
  LAST_NUMBER
FROM
  ALL_SEQUENCES
WHERE
  SEQUENCE_OWNER NOT IN ('CTXSYS', 'DBSNMP', 'DMSYS', 'MDDATA', 'MDSYS', 'OLAPSYS', 'ORDPLUGINS', 'ORDSYS', 'OUTLN', 'SI_INFORMTN_SCHEMA', 'SYS', 'SYSMAN', 'SYSTEM', 'XDB')
  AND SEQUENCE_OWNER NOT LIKE 'APEX%' and SEQUENCE_OWNER = 'MONET' AND SEQUENCE_NAME LIKE '%PERSOL%'
ORDER BY
  SEQUENCE_OWNER,
  SEQUENCE_NAME
MarkOfHall
  • 3,334
  • 1
  • 26
  • 30
  • Did you Google? Have you read this: http://sourceforge.net/p/schemacrawler/discussion/495990/thread/02a9239d/ – Jeffrey Kemp Dec 19 '14 at 05:47
  • @JeffreyKemp Yes, I Googled and found that post. You'll notice that I don't have -sequences on the command line and I've set schemacrawler.sequence.pattern.include=.* to include all. – MarkOfHall Dec 19 '14 at 15:24

1 Answers1

1

SchemaCrawler offer two ways to connect to a database. One way is to provide a JDBC driver, url combination, and another is to provide a server, host, and port combination. The second combination (server, host, and port) will give you rich database specific data, more than what JDBC provides out of the box, such as Oracle sequence information. (In your command-line above, you seem to have mixed these two modes of connection, and SchemaCrawler has picked the generic way to connect to Oracle.)

Please try the following modified command-line, and see if that works for you: sc.cmd -user="my user" -password="my password" -server=oracle -host=myHost -database="myService" -schemas="mySchema" -routines= -sequences=.* -c=schema -infolevel=maximum

EDITS

  • Notice the addition of the -sequences switch, since sequences are not shown by default.
  • Notice the infolevel needs to be maximum

Sualeh Fatehi, SchemaCrawler

Sualeh Fatehi
  • 4,700
  • 2
  • 24
  • 28
  • I've changed my command line args, but it still only outputs table related data. No sequences... Is there anything output to the logs that would indicate whether I'm getting the correct type of connection that you mentioned? – MarkOfHall Dec 19 '14 at 20:40
  • @SteveHall - thanks for working with me through this, and helping to get a good answer for others who may have the same issue. – Sualeh Fatehi Dec 29 '14 at 20:18