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 when 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 (HiRDB SQL Executer).
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-2 Handling of control characters in SQL statements
No. | Specification 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 is specified or the operand is omitted. | Y | Y |
2 | Y is specified. | N | N |
If you selected utf-8 as the character encoding in the pdntenv 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.