Creates a name for a group of schemas in a multischema database.
1 – Environment
You can use the CREATE CATALOG statement:
o In interactive SQL
o Embedded in host language programs to be precompiled
o As part of a procedure in an SQL module
o In dynamic SQL as a statement to be dynamically executed
2 – Format
CREATE CATALOG --> <catalog-name> -+
+---------------------------------+
+-+-------------------------------+->
+---> create-schema-statement -++
+-+-> schema-element -+--------+
+---------<---------+
catalog-name =
-+------> <name-of-catalog> --------------+->
| |
+-> " -> <alias>.<name-of-catalog> ->" -+
schema-element =
-+-> create-collating-sequence-statement -+->
+-> create-domain-statement -------------+
+-> create-index-statement --------------+
+-> create-sequence-statement -----------+
+-> create-storage-map-statement --------+
+-> create-table-statement --------------+
+-> create-trigger-statement ------------+
+-> create-view-statement ---------------+
+-> grant-statement ---------------------+
3 – Arguments
3.1 – alias.name-of-catalog
Specifies an optional name for the attach to the database. Always
qualify the catalog name with an alias if your program or your
interactive SQL statements refer to more than one database.
Separate the name of the catalog from the alias with a period,
and enclose the qualified name within double quotation marks.
3.2 – catalog-name
The name of the catalog definition you want to create. Use any
valid SQL name that is unique among all catalog names in the
database. For more information on catalog names, see the User_
Supplied_Names HELP topic.
3.3 – create-schema-statement
For more information, see the CREATE SCHEMA statement.
3.4 – schema-element
One or more CREATE statements or a GRANT statement. For more
information, see the CREATE SCHEMA statement.
4 – Examples
Example 1: Creating a catalog for a database using an alias
This example shows how an interactive user could attach to the
sample database called personnel and create a catalog in that
database. (You must use the personnel sample database created
with the multischema attribute for this example.) Using an
alias, the user distinguishes the personnel database from other
databases that may be attached later in the same session.
SQL> ATTACH 'ALIAS CORPORATE FILENAME personnel -
cont> MULTISCHEMA IS ON';
SQL> --
SQL> -- SQL creates a default catalog called RDB$CATALOG in
SQL> -- each multischema database.
SQL> --
SQL> SHOW CATALOG;
Catalogs in database personnel
"CORPORATE.RDB$CATALOG"
SQL> --
SQL> -- The SET QUOTING RULES 'SQL99' statement allows the use of
SQL> -- double quotation marks, which SQL requires when you
SQL> -- qualify a catalog name with an alias.
SQL> --
SQL> SET QUOTING RULES 'SQL99';
SQL> CREATE CATALOG "CORPORATE.MARKETING";
SQL> --
SQL> SHOW CATALOG;
Catalogs in database personnel
"CORPORATE.MARKETING"
"CORPORATE.RDB$CATALOG"
Example 2: Creating a catalog in the database with the default
alias
This example shows a CREATE CATALOG clause used in an interactive
CREATE DATABASE statement. In this example, the user creates a
database without specifying an alias. Because the user is not
attached to any other databases, the new database becomes the
default alias.
SQL> CREATE DATABASE FILENAME inventory
cont> MULTISCHEMA IS ON
cont> CREATE CATALOG PARTS
cont> CREATE SCHEMA PRINTERS AUTHORIZATION DAVIS
cont> CREATE TABLE LASER EXTERNAL NAME IS DEPT_2_LASER
cont> (SERIAL_NO INT, LOCATION CHAR)
cont> CREATE SCHEMA TERMINALS AUTHORIZATION DAVIS
cont> CREATE TABLE TERM100 EXTERNAL NAME IS DEPT_2_TERM100
cont> (SERIAL_NO INT, LOCATION CHAR);
SQL> SHOW CATALOG;
Catalogs in database with filename inventory
PARTS
RDB$CATALOG
SQL> show schemas;
Schemas in database with filename inventory
PARTS.PRINTERS
PARTS.TERMINALS
RDB$SCHEMA