In this section: |
When the server accesses a data source, it needs to know how to interpret the data stored there. For each data source the server will access, you create a synonym that describes the structure of the data source and the server mapping of the DB2 data types.
How to: Reference: |
Synonyms define unique names (or aliases) for each DB2 table or view that is accessible from the server. Synonyms are useful because they hide the underlying data source location and identity from client applications. They also provide support for extended metadata features of the server, such as virtual fields and additional security mechanisms.
Using synonyms allows an object to be moved or renamed while allowing client applications to continue functioning without modification. The only modification required is a redefinition of the synonym on the server. The result of creating a synonym is a Master File and an Access File, which represent the server metadata.
Note that creating a synonym for a stored procedure is described with reporting against a stored procedure, in Generating a Synonym for a Stored Procedure.
To create a synonym, you must have previously configured the adapter. You can create a synonym from the Applications or Adapters pages of the Web Console.
The Applications page opens.
The Select adapter to configure or Select connection to create synonym pane opens.
The first of a series of synonym creation panes opens.
The Status pane indicates that the synonym was created successfully.
The synonym is created and added under the specified application directory.
Note:
The following list describes the synonym creation parameters for which you can supply values.
Restrict candidates for synonym creation based on the selected object type(s): Tables, Views, External SQL Scripts, and any other supported objects.
Choosing External SQL Scripts from the drop-down list enables you to represent an SQL Query as a synonym for read-only reporting. A Synonym candidate can be any file that contains one (and only one) valid SQL Query and does not contain end-of-statement delimiters (";" or "/") and comments.
Depending on the adapter, you can further restrict your search by choosing check boxes for listed objects.
Important: If you select Stored Procedures as your object type, the input parameters will be a little different from those described here. For details, see Reporting Against a DB2 Stored Procedure.
Selecting this option adds the Owner/Schema and Object Name parameters to the screen.
Note: All platforms except IBM i.
To avoid the return of an extremely large and potentially unmanageable list, always supply a value for Library or Object Name:
Note: When you create a synonym for DB2 on the IBM i platform, standard IBM i naming conventions apply to the target data source. Therefore, the Adapter for DB2 supports the use of double-quotation marks around any library name and/or file name that contains lowercase or NLS characters.
If you specify External SQL Scripts in the Restrict Object type to field, these additional fields are displayed.
The following standard naming conventions apply for UNIX, IBM i IFS, and z/OS HFS:
On IBM i, you can use alternative IFS naming conventions to access library members. The following entry illustrates this method:
/QSYS.LIB/MYLIBRARY.LIB/MYSRC.FILE
During synonym generation, the adapter issues native API calls to obtain a list of elements in the select list and builds the Master File with a field for each element. The generated Access File references the location of the SQL script in the DATASET attribute, which contains the full path, including the name and extension of the file containing the SQL Query. For example,
DATASET=/ul/home2/apps/report3.sql
When a WebFOCUS report is created, the SQL Query is used to access data.
Select the Cardinality check box to reflect the current cardinality (number of rows or tuples) in the table during metadata creation. Cardinality is used for equi-joins. The order of retrieval is based on the size (cardinality) of the table. Smaller tables are read first.
If the cardinality of the tables to be used in the application are dynamic, it may not be beneficial to choose this setting.
Select the With foreign key check box to include within this synonym every table related to the current table by a foreign key. The resulting multi-table synonym describes all of the foreign key relationships of this table.
To specify that the Master File created for the synonym should not contain column information, select the Dynamic columns check box.
If this option is selected, column data is retrieved dynamically from the data source at the time of the request.
Only available when External SQL Scripts is selected from the Restrict objects type to drop-down menu. When selected, a SUBQUERY keyword is added to the Access File of the generated synonym. If the corresponding SQL string is not parameterized (that is, does not contain parameter markers, such as ? or :), it will be processed as a subquery embedded into a FROM clause of the generated SELECT query. Otherwise, the setting will be ignored, and a FOC1782 warning message will be issued. The default is selected (SUBQUERY=Y).
Select an application directory. The default value is baseapp.
If you have tables with identical table names, assign a prefix or a suffix to distinguish them. For example, if you have identically named human resources and payroll tables, assign the prefix HR to distinguish the synonyms for the human resources tables. Note that the resulting synonym name cannot exceed 64 characters.
If all tables and views have unique names, leave the prefix and suffix fields blank.
To change the data type mappings from their default settings, select this check box. The customizable mappings are displayed.
To specify that this synonym should overwrite any earlier synonym with the same fully qualified name, select the Overwrite existing synonyms check box.
Note: The connected user must have operating system write privileges in order to recreate a synonym.
On the IBM i platform, the One-part name check box is unchecked by default. The unchecked behavior generates a table name that includes the explicit name of the library containing the table. For example, if you specified a library on the first Create Synonym pane, a qualified name like the following is automatically created in the Access File for a TABLE or VIEW:
TABLENAME=MYLIB/MYTABLE
For a Stored Procedured, this would be a DB2 RPC and identified in the Access File as:
STPNAME=MYLIB/MYPROC
With this explicit type of entry in the Access File, at run-time the library is directly referenced and the object opened.
If you select the check box, the explicit library name is not stored in the metadata (Access File). When the synonym is generated, the library portion of the table name is omitted from the Access File, and appears as follows:
TABLENAME=MYTABLE
or
STPNAME=MYPROC
With this type of entry in the Access File (one-part name), the DB2 library search path will be used at run time. The exact composition varies depending on if DB2 is configured as a CLI or SQL connection.
For CLI configured servers, the search path will be the default library of DB2 for a CLI connected user (usually QSYS and QSYS2 plus the default library of the user). It is also controllable by use of a passthru command setting the path, such as SLQ DB2 SET PATH “QSYS”,”QSYS2”,”FOO”,”EXTRAFOO” as issued within a requests FOCEXCEC procedure or a profile. For SQL configured servers, the search path will be *LIBL. The library path of the process can be controlled by commands, such as ADDLIBLE, either before server start or as issued within a requests FOCEXCEC procedure or a profile.
This column displays the name that will be assigned to each synonym. To assign a different name, replace the displayed value.
Select tables for which you wish to create synonyms:
An Adapter for DB2 synonym comprises a Master File and an Access File. This is a synonym for the table nf29004.
Generated Master File nf29004.mas
FILE=DIVISION, SUFFIX=DB2 ,$ SEGNAME=SEG1_4, SEGTYPE=S0 ,$ FIELD=DIVISION4, DIVISION4, I9, I4 ,MISSING=OFF ,$ FIELD=DIVISION_NA4, DIVISION_NA4, A25, A25 ,MISSING=ON ,$ FIELD=DIVISION_HE4, DIVISION_HE4, I9, I4 ,MISSING=ON ,$
Generated Access File nf29004.acx
SEGNAME=SEG1_4,TABLENAME=EDAQA.NF29004, CONNECTION=DB1,KEYS=1,WRITE=YES,$
These mappings are OS-system specific:
Mapping DB2 Table Attributes
Platform |
DB2 Table Attribute |
Mapping in Synonym |
Notes |
---|---|---|---|
UNIX/Windows |
COMMENT |
REMARKS |
|
IBM i |
REMARK LABEL |
REMARKS |
The synonym creation facility picks up a DB2 table TABLE level REMARK or LABEL value, whichever is not null, for use as a Master File REMARKS= value. If the DB2 table has both a populated REMARK and a populated LABEL, the REMARK value will be used. |
z/OS |
COMMENT LABEL |
REMARKS |
The synonym creation facility picks up a DB2 table TABLE level COMMENT or LABEL value, whichever is not blank, for use as a Master File REMARKS= value. If the DB2 table has both a populated COMMENT and a populated LABEL, the COMMENT value will be used. |
Mapping DB2 Column Attributes
Platform |
DB2 Column Attribute |
Mapping in Synonym |
Notes |
---|---|---|---|
UNIX/Windows |
COMMENT |
DESCRIPTION |
|
IBM i |
LABEL COMMENT |
TITLE DESCRIPTION |
|
z/OS |
LABEL COMMENT |
TITLE DESCRIPTION |
|
This chart describes the keywords in the Access File.
Keyword |
Description |
---|---|
SEGNAME |
Value must be identical to the SEGNAME value in the Master File. |
TABLENAME |
Name of the table or view. This value can include a location or owner name as follows: TABLENAME=[location.][owner.]tablename Note: Location is valid only with DB2 CAF and specifies the subsystem location name. For IBM i, the syntax is: TABLENAME=[library/]tablename |
CONNECTION |
Indicates a previously declared connection. The syntax is: CONNECTION=connection CONNECTION=' ' indicates access to the local database server. Absence of the CONNECTION attribute indicates access to the default database server. |
DBSPACE |
Optional keyword that indicates the storage area for the table. For example: datasource.tablespace DATABASE datasource |
KEYS |
Indicates how many columns constitute the primary key for the table. Range is 0 to 64. Corresponds to the first n fields in the Master File segment. |
WRITE |
Specifies whether write operations are allowed against the table. |
KEYFLD IXFLD |
Supply the names of the primary key and foreign key fields that implement the relationships established by the multi-table Master File. Together, KEYFLD and IXFLD identify the field shared by a related table pair.
KEYFLD and IXFLD must have the same data type. It is recommended, but not required, that their lengths also be the same. Note: An RDBMS index on both the KEYFLD and IXFLD columns provides the RDBMS with a greater opportunity to produce efficient joins. The columns must have the same data type. If their length is the same, the RDBMS handles the join more efficiently. |
AUTO INCREMENT |
Set to Yes to enable autoincrementing. |
START |
Initial value in incrementing sequence |
INCREMENT |
Increment interval. |
INDEX_NAME INDEX_UNIQUE INDEX_COLUMNS INDEX_ORDER |
Indicate a name of the index in a database, uniqueness, name, and order of the indexed column(s). |
Once you have created a synonym, you can right-click the synonym name in the Adapter navigation pane of either the Web Console or the Data Management Console to access the following options.
Option |
Description |
---|---|
Open |
Opens the Master File for viewing and editing using a graphical interface. If an Access file is used it will be also available. |
Edit as Text |
Enables you to view and manually edit the Master File synonym. Note: To update the synonym, it is strongly recommended that you use the graphical interface provided by the Open option, rather than manually editing the Master File. |
Edit Access File as Text |
Enables you to view and manually edit the Access File synonym. Note: This option is available only when an Access File is created as part of the synonym. |
Sample Data |
Retrieves up to 20 rows from the associated data source. |
Data Profiling |
Data Profiling provides the data characteristics for synonym columns. Alphanumeric columns provide the count of distinct values, total count, maximum, minimum, average length, and number of nulls. Numeric columns provide the count of distinct values, total count, maximum, minimum, average value, and number of nulls. |
Refresh Synonym (if applicable) |
Regenerates the synonym. Use this option if the underlying object has been altered. |
Data Management |
Followed by these options, if applicable: Recreate DBMS Table. Recreates the data source table. You are asked to confirm this selection before the table is regenerated. (Note that the table will be dropped and recreated. During the process, data may be lost.) Delete All Data. Deletes all existing data. You are asked to confirm this selection before the data is deleted. Insert Sample Data. Inserts specified number of sample records, populating all fields with counter values. Reorganize. Recreates the data source table preserving original data. Note: This option is not available in the Web Console. |
Impact Analysis |
Generates reports on procedures, synonyms, and columns that provide information on the flows/stored procedures available on a particular server, and the synonyms and columns they use. These reports enable you to evaluate changes before they are made by showing which components will be affected. See the Server Administration for UNIX, Windows, OpenVMS, IBM i, and z/OS manual for details about Impact Analysis reports. |
Copy |
Copies the synonym to the clipboard. |
Delete |
Deletes the synonym. You are asked to confirm this selection before the synonym is deleted. |
Cut |
Deletes the synonym and places it on the clipboard. |
Properties |
Displays the properties of the synonym, including physical location, last modified date, description, and privileges. |
Reference: |
The following tables describe how the server maps DB2 data types.
DB2 Data Type |
Server Data Type |
Remarks | |
---|---|---|---|
USAGE |
ACTUAL | ||
Date-Time Data Types | |||
DATE |
YYMD |
DATE |
|
TIME |
HHIS |
HHIS |
|
TIMESTAMP |
HYYMDm |
HYYMDm |
|
Numeric Data Types | |||
SMALLINT |
I6 |
I4 |
|
INTEGER |
I11 |
I4 |
Maximum precision is 11. |
BIGINT |
P20 |
P10 |
Available on UNIX and Windows only. |
DECIMAL (p,s) |
P6 |
P8 |
p is an integer between 1 and 31. s is
an integer between 0 and p.
|
REAL |
F9.2 |
F4 |
Maximum precision is 9. |
FLOAT |
D20.2 |
D8 |
Maximum precision is 20. |
LOB Data Types | |||
BLOB |
BLOB |
BLOB |
Up to 2 gigabytes. |
CLOB |
TX50 |
TX |
Up to 2 gigabytes. |
Other Data Types | |||
CHAR (n) |
An |
An |
n is the number of bytes, and is an integer between 1 and 254. |
LONG VARCHAR (n) in (1...32700) |
|
|
Not supported |
GRAPHIC (n) |
Am |
Kn |
m = (n * 2) + 2 m is the number of bytes, and n is the number of characters. |
VARGRAPHIC (n) |
Am |
Kn |
m = (n * 2) + 2 VARGRAPHIC is assumed to be GRAPHIC until n = 127 for non-Unicode. The maximum length of m is 256. |
LONG VARGRAPHIC |
|
|
Not supported |
DATALINK |
|
|
Not supported |
XML |
TX50 |
TX |
Supported with DB2 Version 9 on UNIX, Windows, and z/OS; not supported on IBM i. |
The following table describes how the non-Unicode server maps Character data types. This mapping can be changed based on the value of LONGCHAR. The default value is ALPHA. For more information, see Controlling the Mapping of Large Character Data Types.
DB2 Data Type |
Remarks |
LONGCHAR ALPHA |
LONGCHAR TEXT | ||
---|---|---|---|---|---|
USAGE |
ACTUAL |
USAGE |
ACTUAL | ||
VARCHAR (n) |
n is an integer between 1 and 256. |
AnV |
AnV |
AnV |
AnV |
n is an integer between 257and 32768. |
AnV |
AnV |
TX50 |
TX |
Note: The main purpose of the LONGCHAR setting is to provide compatibility with previous releases of the server. This SET parameter was designed to control processing of DBMS Character data types and was never intended for DBMS LOB data types.
The following table describes how the Unicode server maps Character data types. The server operates in character semantic when configured for Unicode. The LONGCHAR setting does not affect mapping in this case.
DB2 Data Type |
Data Type |
Remarks | |
---|---|---|---|
USAGE |
ACTUAL | ||
CHAR (n) |
AnV |
AnB |
n is an integer between 1 and 254. The column stores n bytes (specified by the ACTUAL attribute) which represent up to n characters (specified by the USAGE attribute). On EBCDIC platforms, the ACTUAL value is multiplied by 1.5 to accommodate UTF-EBCDIC. For example, a CHAR (10) column is described by USAGE=A10V, ACTUAL=A15B. |
VARCHAR (n) |
AnV |
AnVB |
n is the number of characters, and is an integer between 1 and 32672. The column stores up to n bytes (specified by the ACTUAL attribute), which represent up to n characters (specified by the USAGE attribute). On EBCDIC platforms, the ACTUAL value is multiplied by 1.5 to accommodate UTF-EBCDIC. For example, a VARCHAR (10) column is described by USAGE=A10V, ACTUAL=A15VB. |
GRAPHIC (n) |
An |
An |
n is the number of characters. |
VARGRAPHIC (n) |
AnV |
AnV |
n is the number of characters. |
How to: |
The SET parameter CONVERSION LONGCHAR controls the mapping of the DB2 data type VARCHAR. By default, the server maps this data type as alphanumeric (AnV). The server data type A supports a maximum of 4096 characters for TABLE/MODIFY and 32768 characters for API applications.
Tip: You can change this setting manually or from the Web Console by clicking Adapters on the menu bar, clicking a configured adapter, and choosing Change Settings from the right-click menu. The Change Settings pane opens.
ENGINE DB2 SET CONVERSION LONGCHAR {ALPHA|TEXT|BLOB}
where:
Indicates the adapter. You can omit this value if you previously issued the SET SQLENGINE command.
Maps the DB2 data type VARCHAR as alphanumeric (AnV). ALPHA is the default value.
Maps the DB2 data type VARCHAR as text (TX). Use this value for WebFOCUS applications.
Is equivalent to ALPHA. That is, it maps the DB2 data type VARCHAR as alphanumeric (A).
How to: |
The SET parameter VARCHAR controls the mapping of the DB2 data types VARCHAR. By default, the server maps this data type as variable character (AnV).
The following table lists data type mappings based on the value of VARCHAR.
DB2 Data Type |
Remarks |
VARCHAR ON |
VARCHAR OFF | ||
---|---|---|---|---|---|
USAGE |
ACTUAL |
USAGE |
ACTUAL | ||
VARCHAR (n) |
n is an integer between 1 and 32768 |
AnV |
AnV |
An |
An |
ENGINE DB2 SET VARCHAR {ON|OFF}
where:
Indicates the adapter. You can omit this value if you previously issued the SET SQLENGINE command.
Maps the DB2 data type VARCHAR as variable-length alphanumeric (AnV). This is required for Unicode environments. ON is the default value.
Maps the DB2 data type VARCHAR as alphanumeric (A).
How to: |
DB2 data types that support the for bit data attribute including VARCHAR(n), where n > 256 and LONG VARCHAR, can be supported in the server as Binary Large Objects (BLOBs). This support is for both read and write access.
To activate this support, you must issue the following command in one of the supported server profiles
ENGINE DB2 SET CONVERSION LONGCHAR BLOB
where:
Indicates the adapter. You can omit this value if you previously issued the SET SQLENGINE command.
Activates long binary support. ALPHA is the default value.
For DB2 data types VARCHAR (>256) and LONG VARCHAR which have the for bit data attribute, the server provides read and write support using three server remote procedures routines. These routines are:
Routine |
Used to... |
---|---|
EDABS |
Send binary image data to the server. |
EDABE |
Mark the end of the binary image. |
EDABK |
Purge the binary image from server storage. |
The sequence of operations for the client application is:
For full details and examples of how to maintain DB2 for bit data columns, see the API Reference and Connector for ODBC manuals.
The new SQL Expression generator in the TABLE Adapter by default preserves literal contents, including trailing blanks in string literals and the fractional part and exponential notation in numeric literals. This allows greater control over the generated SQL.
In some rare cases when trailing blanks are not needed, the following syntax
ENGINE DB2 SET TRIM_LITERALS ON
is available to ensure backward compatibility.
How to: |
You can alter the length and scale of numeric columns returned by a SELECT request to the server by creating different specifications in your login profile or in a stored procedure. The conversion settings are reflected in the Master File in the USAGE and ACTUAL formats of the fields generated by CREATE SYNONYM. This affects how the fields are processed and formatted by the server.
Tip: You can change this setting manually or from the Web Console.
ENGINE DB2 SET CONVERSION RESET ENGINE DB2 SET CONVERSION format RESET ENGINE DB2 SET CONVERSION format [PRECISION precision [scale]] ENGINE DB2 SET CONVERSION format [PRECISION MAX]
where:
Indicates the adapter. You can omit this value if you previously issued the SET SQLENGINE command.
Returns any previously specified precision and scale values to the adapter defaults. If you specify RESET immediately following the SET CONVERSION command, all data types return to the defaults. If you specify RESET following a particular data type, only columns of that data type are reset.
Is any valid format supported by the data source. Possible values are:
INTEGER which indicates that the command applies only to INTEGER columns.
DECIMAL which indicates that the command applies only to DECIMAL columns.
REAL which indicates that the command applies only to single-precision floating-point columns.
Note: Only applies to DB2, CA-IDMS/SQL, Microsoft SQL Server, and Sybase.
FLOAT which indicates that the command applies only to double-precision floating-point columns.
Is the precision. Must be greater than 1 and less than or equal to the maximum allowable value for the data type (see the description of MAX).
Is the scale. This is valid with DECIMAL, FLOAT and REAL data types. If you do not specify a value for scale, the current scale setting remains in effect. The default scale value is 2.
If the scale is not required, you must set the scale to 0 (zero).
Sets the precision to the maximum allowable value for the indicated data type:
Data Type |
MAX Precision |
---|---|
INTEGER |
11 |
DECIMAL |
18 |
REAL |
9 |
FLOAT |
20 |
Note: When issuing the CREATE SYNONYM command while the CONVERSION command is active in the profile, the Master File reflects the scale and length that is set by the CONVERSION command.
However, when issuing a SELECT statement, the answer set description does not use the information in the Master File. The length and scale used for the answer set description depends on whether a CONVERSION command is in effect.
If a CONVERSION command is in effect, the answer set description uses the length and scale that is set by the CONVERSION command.
If a CONVERSION command is not in effect, the answer set description uses the actual length and scale of the data.
The following example shows how to set the precision attribute for all INTEGER and SMALLINT fields to 7:
ENGINE DB2 SET CONVERSION INTEGER PRECISION 7
The following example shows how to set the precision attribute for all DOUBLE PRECISION fields to 14 and the scale attribute to 3:
ENGINE DB2 SET CONVERSION FLOAT PRECISION 14 3
The following example shows how to set the precision attribute for all INTEGER and SMALLINT fields to the default:
ENGINE DB2 SET CONVERSION INTEGER RESET
The following example shows how to set the precision and scale attributes for all fields to the defaults:
ENGINE DB2 SET CONVERSION RESET
iWay Software |