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]
----
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]
----
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)]


