Table 4-2 Setting LANG, PDLANG, and PDCLTCNVMODE during execution of pddef
Encoding of input character | Character encoding set for the HiRDB server used to register definitions#1 | Character encoding in the pddef execution environment | ||
---|---|---|---|---|
LANG#2 | PDLANG#3 | PDCLTCNVMODE#3 | ||
SJIS (Shift JIS Kanji Code) | SJIS | SJIS | Linux edition: SJIS Other: Omitted | Omitted |
UJIS (EUC Japanese Kanji Code) | UJIS | UJIS | Omitted | |
C (single-byte character code) | C | C | Omitted | |
chinese (EUC Chinese-language Kanji Code) | chinese | Any | CHINESE | |
GB18030 (Chinese Kanji Code) | chinese-gb18030 | Any | CHINESE-GB18030 | |
UTF-8 (Unicode) | utf-8 or utf-8_ivs | Any (C is recommended) | UTF-8 |
#1: This is the value set in the -c option of the pdsetup command.
#2: The value of the LANG environment variable depends on the OS. For details about the character encoding specified in LANG, see the HiRDB Version 9 UAP Development Guide.
#3: For details about PDLANG and PDCLTCNVMODE, see the HiRDB Version 9 UAP Development Guide.
The results of the database definition utility can be checked by the return code set by the utility or by referencing a data dictionary table. The return codes are as follows:
Return code | Meaning | Action | HiRDB operation |
---|---|---|---|
0 | Normal termination (including when an SQL statement resulted in an error) | Not applicable | Not applicable |
8 | Memory shortage | Re-execute after another process has terminated, or increase memory. | Cancels processing and terminates pddef |
Option specification error | Specify the correct option. | ||
Internal communication error (operation code SINF) | Take appropriate action according to the displayed message. |
Return code | Meaning | Action | HiRDB operation |
---|---|---|---|
0 | Normal termination | Not applicable | Not applicable |
4 | HiRDB connection error | Check and, if necessary, revise the specified environment variables. | Cancels processing and terminates pddef |
SQL error | Check and, if necessary, revise the executed SQL statement. | Resumes processing | |
8 | Memory shortage | Re-execute after another process has terminated, or increase memory. | Cancels processing and terminates pddef |
Option specification error | Specify the correct option. | ||
Internal communication error (operation code SINF) | Take appropriate action according to the displayed message. |
If any of the SQL statements listed below results in an error, the GET DIAGNOSTICS statement can be executed to display error information (if the SQL statement contains a comment, ERROR_POSITION will display the values only without the comment):
The figure below shows the format of error information.
Figure 4-2 Format of error information
The system regards any data beginning with /* in an SQL statement as a comment. All characters following /* (including semicolons) are handled as part of the comment. The system regards the first */ that follows /* as the end of the comment. Such a comment is called an enclosed comment. Note that if Y is specified in the pd_sql_simple_comment_use operand in the system definition, all characters (including semicolons) from -- up to the first linefeed code in an SQL statement are treated as a comment. Such a comment is called a simple comment.
The following shows examples, where the underlined parts are handled as comments:
Example 1:
CREATE TABLE T1 (C1 INT) ; /* CU ADDRESS TABLE */ ...Start and end of comment
Example 2:
CREATE TABLE T1 /* CU ADDRESS TABLE */ (C1 INT) ; ...Start and end of comment
Example 3:
CREATE TABLE T1 /* CU ADDRESS ...Start and continuation of comment
TABLE */ (C1 INT) ; ...............End of comment
Example 4:
CREATE TABLE T1 /* CU ADDRESS TABLE * (C1 INT) ; ...Start and continuation of comment
Example 5:
CREATE TABLE T1 /* CU /* ADDRESS */ TABLE */ (C1 INT) ;
...Start and end of comment
Example 6:
CREATE TABLE T1 -- CU ADDRESS ...Start and end of comment
(C1 INT) ;
If the /* ... */ character string or the --...line-feed-code character string is within double quotation marks (") or single quotation marks ('), is not regarded as a comment. For details about specifying comments, see the description of the SQL specification format in the manual HiRDB Version 9 SQL Reference. Note that this utility's handling of comments is different from the interactive SQL execution utility (pdsql).
Once connection is established (CONNECT), internal communication with the server begins (operation code SINF). If this internal communication results in an error, an SQL error is output and processing terminates.
When the database definition utility is executed, the handling of control characters in SQL statements depends on conditions. The following table shows the handling of control characters for each condition.
Table 4-3 Handling of control characters in SQL statements
No. | Value of the pd_sql_simple_comment_use operand in the system definition | Linefeed codes are deleted | Control characters (other than linefeed codes) are converted to spaces |
---|---|---|---|
1 | N | Y | Y |
2 | Y | N | N |
If you selected utf-8or utf-8_ivs as the character encoding in the pdsetup command, you can use a file with a BOM as the input file for pddef. Note that even when a file with a BOM is used as the input file for pddef, the BOM is skipped.