API Reference
Initializes a new database with an optional user-defined collating
sequence, creates the three initial table spaces, creates the system tables,
and allocates the recovery log.
Scope
In a multi-node environment, this API affects all nodes that are listed in
the $HOME/sqllib/db2nodes.cfg file.
The node from which this API is called becomes the catalog node for the new
database.
Authorization
One of the following:
- sysadm
- sysctrl
Required Connection
Instance. To create a database at another (remote) node, it is necessary to
first attach to that node. A database connection is temporarily established by
this API during processing.
API Include File
sqlenv.h
C API Syntax
/* File: sqlenv.h */
/* API: Create Database */
/* ... */
SQL_API_RC SQL_API_FN
sqlecrea (
char * pDbName,
char * pLocalDbAlias,
char * pPath,
struct sqledbdesc * pDbDescriptor,
struct sqledbcountryinfo * pCountryInfo,
char Reserved2,
void * pReserved1,
struct sqlca * pSqlca);
/* ... */
|
Generic API Syntax
/* File: sqlenv.h */
/* API: Create Database */
/* ... */
SQL_API_RC SQL_API_FN
sqlgcrea (
unsigned short PathLen,
unsigned short LocalDbAliasLen,
unsigned short DbNameLen,
struct sqlca * pSqlca,
void * pReserved1,
unsigned short Reserved2,
struct sqledbcountryinfo * pCountryInfo,
struct sqledbdesc * pDbDescriptor,
char * pPath,
char * pLocalDbAlias,
char * pDbName);
/* ... */
|
API Parameters
- PathLen
- Input. A 2-byte unsigned integer representing the length of the path in
bytes. Set to zero if no path is provided.
- LocalDbALiasLen
- Input. A 2-byte unsigned integer representing the length of the local
database alias in bytes. Set to zero if no local alias is provided.
- DbNameLen
- Input. A 2-byte unsigned integer representing the length of the database
name in bytes.
- pSqlca
- Output. A pointer to the sqlca structure. For more information
about this structure, see SQLCA.
- pReserved1
- Input. A spare pointer that is set to null or points to zero.
- Reserved2
- Input. Reserved for future use.
- pCountryInfo
- Input. A pointer to the sqledbcountryinfo structure, containing
the locale and the code set for the database. For more information about this
structure, see SQLEDBCOUNTRYINFO. For a list of valid locale and code set values, see one of the Quick Beginnings. May be NULL.
- pDBDescriptor
- Input. A pointer to the database description block used when creating the
database. The database description block may be used to supply values that are
permanently stored in the configuration file of the database, such as
collating sequence. Its structure is described in SQLEDBDESC. May be NULL.
- pPath
- Input. On UNIX based systems, specifies the path on which to create the
database. If a path is not specified, the database is created on the default
database path specified in the database manager configuration file
(dftdbpath parameter). On OS/2 or the Windows operating
system, specifies the letter of the drive on which to create the database. May
be NULL.
Note: | For MPP systems, a database should not be created in an NFS-mounted
directory. If a path is not specified, ensure that the dftdbpath
database manager configuration parameter is not set to an NFS-mounted path
(for example, on UNIX based systems, it should not specify the
$HOME directory of the instance owner). The path specified for this
API in an MPP system cannot be a relative path.
|
- pLocalDbAlias
- Input. A string containing the alias to be placed in the client's
system database directory. May be NULL. If no local alias is specified, the
database name is the default.
- pDbName
- Input. A string containing the database name. This is the database name
that will be cataloged in the system database directory. Once the database has
been successfully created in the server's system database directory, it is
automatically cataloged in the system database directory with a database alias
identical to the database name. Must not be NULL.
REXX API Syntax
CREATE DATABASE dbname [ON path] [ALIAS dbalias]
[USING CODESET codeset TERRITORY territory]
[COLLATE USING {SYSTEM | IDENTITY | USER :udcs}]
[NUMSEGS numsegs] [DFT_EXTENT_SZ dft_extentsize]
[CATALOG TABLESPACE <tablespace_definition>]
[USER TABLESPACE <tablespace_definition>]
[TEMPORARY TABLESPACE <tablespace_definition>]
[WITH comment]
Where <tablespace_definition> stands for:
MANAGED BY {
SYSTEM USING :SMS_string |
DATABASE USING :DMS_string }
[ EXTENTSIZE number_of_pages ]
[ PREFETCHSIZE number_of_pages ]
[ OVERHEAD number_of_milliseconds ]
[ TRANSFERRATE number_of_milliseconds ]
|
REXX API Parameters
- dbname
- Name of the database.
- dbalias
- Alias of the database.
- path
- Path on which to create the database.
If a path is not specified, the database is created on the default database
path specified in the database manager configuration file
(dftdbpath configuration parameter).
Note: | For MPP systems, a database should not be created in an NFS-mounted
directory. If a path is not specified, ensure that the dftdbpath
database manager configuration parameter is not set to an NFS-mounted path
(for example, on UNIX based systems, it should not specify the
$HOME directory of the instance owner). The path specified for this
API in an MPP system cannot be a relative path.
|
- codeset
- Code set to be used for data entered into the database.
- territory
- Territory code (locale) to be used for data entered into the database.
- SYSTEM
- Uses the collating sequence of the operating system based on the current
country code.
- IDENTITY
- The collating sequence is the identity sequence, where strings are
compared byte for byte, starting with the leftmost byte.
- USER udcs
- The collating sequence is specified by the calling application in a host
variable containing a 256-byte string defining the collating sequence.
- numsegs
- Number of segment directories that will be created and used to store the
DAT, IDX, and LF files.
- dft_extentsize
- Specifies the default extentsize for table spaces in the
database.
- SMS_string
- A compound REXX host variable identifying one or more containers that will
belong to the table space, and where the table space data will be stored. In
the following, XXX represents the host variable name. Note that each of the
directory names cannot exceed 254 bytes in length.
- XXX.0
- Number of directories specified
- XXX.1
- First directory name for SMS tablespace
- XXX.2
- Second directory name for SMS tablespace
- XXX.3
- and so on.
- DMS_string
- A compound REXX host variable identifying one or more containers that will
belong to the table space, where the table space data will be stored,
container sizes (specified in a number of 4KB pages) and types (file or
device). The specified devices (not files) must already exist. In the
following, XXX represents the host variable name. Note that each of the
container names cannot exceed 254 bytes in length.
- XXX.0
- Number of strings in the REXX host variable (number of first level
elements)
- XXX.1.1
- Type of the first container (file or device)
- XXX.1.2
- First file name or device name
- XXX.1.3
- Size (in pages) of the first container
- XXX.2.1
- Type of the second container (file or device)
- XXX.2.2
- Second file name or device name
- XXX.2.3
- Size (in pages) of the second container
- XXX.3.1
- and so on.
- EXTENTSIZE number_of_pages
- Number of 4KB pages that will be written to a container before skipping to
the next container.
- PREFETCHSIZE number_of_pages
- Number of 4KB pages that will be read from the table space when data
prefetching is being performed.
- OVERHEAD number_of_milliseconds
- Number that specifies the I/O controller overhead, disk seek, and latency
time in milliseconds.
- TRANSFERRATE number_of_milliseconds
- Number that specifies the time in milliseconds to read one 4KB page into
memory.
- comment
- Description of the database or the database entry in the system directory.
Do not use a carriage return or line feed character in the comment. Be sure to
enclose the comment text in double quotation marks. Maximum size is 30
characters.
Sample Programs
- C
- \sqllib\samples\c\dbconf.c
- COBOL
- \sqllib\samples\cobol\dbconf.cbl
- FORTRAN
- \sqllib\samples\fortran\dbconf.f
- REXX
- \sqllib\samples\rexx\dbconf.cmd
Usage Notes
CREATE DATABASE:
With dbadm authority, one can grant these privileges to (and
revoke them from) other users or PUBLIC.
If another administrator with
sysadm or dbadm
authority over the database revokes these privileges, the database creator
nevertheless retains them.
In an MPP environment, the database manager creates a subdirectory,
$DB2INSTANCE/NODExxxx, under the specified or default
path on all nodes. The xxxx is the node number as defined in the
db2nodes.cfg file (that is, node 0 becomes NODE0000).
Subdirectories SQL00001 through SQLnnnnn will
reside on this path. This ensures that the database objects associated with
different nodes are stored in different directories (even if the subdirectory
$DB2INSTANCE under the specified or default path is shared by all
nodes).
CREATE DATABASE will fail if the application is already connected to a
database.
If the database description block structure is not set correctly, an error
message is returned (see SQLEDBDESC).
The "eye-catcher" of the database description block must be set to the
symbolic value SQLE_DBDESC_2 (defined in sqlenv).
The following sample user-defined collating sequences are available in the
host language include files:
- sqle819a
- If the code page of the database is 819 (ISO Latin/1), this sequence will
cause sorting to be performed according to the host CCSID 500 (EBCDIC
International).
- sqle819b
- If the code page of the database is 819 (ISO Latin/1), this sequence will
cause sorting to be performed according to the host CCSID 037 (EBCDIC US
English).
- sqle850a
- If the code page of the database is 850 (ASCII Latin/1), this sequence
will cause sorting to be performed according to the host CCSID 500 (EBCDIC
International).
- sqle850b
- If the code page of the database is 850 (ASCII Latin/1), this sequence
will cause sorting to be performed according to the host CCSID 037 (EBCDIC US
English).
- sqle932a
- If the code page of the database is 932 (ASCII Japanese), this sequence
will cause sorting to be performed according to the host CCSID 5035 (EBCDIC
Japanese).
- sqle932b
- If the code page of the database is 932 (ASCII Japanese), this sequence
will cause sorting to be performed according to the host CCSID 5026 (EBCDIC
Japanese).
The collating sequence specified during CREATE DATABASE cannot be changed
later, and all character comparisons in the database use the specified
collating sequence. This affects the structure of indexes as well as the
results of queries.
Use sqlecadb to define different alias names for the new
database.
See Also
sqlabndx - Bind
[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]
[ DB2 List of Books |
Search the DB2 Books ]