type=page
status=published
title=capture-schema
next=package-appclient.html
prev=asadmin.html
~~~~~~
capture-schema
==============

[[capture-schema-1m]][[GSRFM00821]][[capture-schema]]

capture-schema
--------------

stores the database metadata (schema) in a file for use in mapping and
execution

[[sthref2381]]

Synopsis

[source,oac_no_warn]
----
capture-schema -username name -password password
[-dburl url] [-driver jdbc_driver_classname]
[-schemaname schemaname] [-table tablename]
-out filename]
----

[[sthref2382]]

Description

Stores the database metadata (schema) in a file.

Run `capture-schema` as the same database user that owns the table(s),
and use that same username with the `-username` option (and
`-schemaname`, if required).

When running `capture-schema` against an Oracle database, you should
grant the database user running the `capture-schema` command the
`ANALYZE ANY TABLE` privilege.

[[sthref2383]]

Options

`-username`::
  user name for authenticating access to a database.
`-password`::
  password for accessing the selected database.
`-dburl`::
  JDBC URL required by the driver for accessing a database.
`-driver`::
  JDBC driver classname in your `CLASSPATH`.
`-schemaname`::
  name of the user schema being captured. If not specified, the default
  will capture metadata for all tables from all the schemas accessible
  to this user. +
  Specifying this parameter is highly recommended. Without this option,
  if more than one schema is accessible to this user, more than one
  table with the same name may be captured, which will cause problems
  when mapping CMP fields to tables. +
  The specified schema name must be uppercase.
`-table`::
  name of a table; multiple table names can be specified. If no table is
  specified, all the tables in the database or named schema are
  captured. +
  The specified table name or names are case sensitive. Be sure to match
  the case of the previously created table names.
`-out`::
  name of the output file. This option is required. If the specified
  output file does not contain the .dbschema suffix, it will be appended
  to the filename.

[[sthref2384]]

Examples

[[GSRFM813]][[sthref2385]]

Example 1   Using the `capture-schema` command

[source,oac_no_warn]
----
capture-schema -username cantiflas -password enigma
-dburl jdbc:oracle:thin:@sadbuttrue:1521:ora817
-driver oracle.jdbc.driver.OracleDriver
-schemaname CANTIFLAS -out cantiflas.dbschema
----

Where: `sun-acc.xml` is the name of the client configuration XML file,
`myclientapp.jar` is the client application `.jar` file, and `scott` and
`sample` are arguments to pass to the application. If `sun-acc.xml` and
`myclientapp.jar` are not in the current directory, you must give the
absolute path locations; otherwise the relative paths are used. The
relative path is relative to the directory where the command is being
executed.

[[sthref2386]]

See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]


