Varchar in COBOL
Invoke of a varchar in COBOL gives the following result:_
invoke testtab format cobol;
* Record Definition for table
* Definition current at 16:08:08 - 09/06/01
01 TESTTAB.
02 NAAM PIC X(4).
02 LANG.
03 LEN PIC S9(4) COMP.
03 VAL PIC X(255).__
Assigning a value to a VARCHAR column in COBOL
On insert, the length-field of the VARCHAR-columns must be specified by the program as well
as the value-field.
The length-field will be filled automatically when the TRIM-function is used._
Example:_
INSERT INTO =EMS-LG
(
. . .
, TXT
. . .
)
VALUES
(
. . .
, TRIM(:VAL OF TXT OF WS-EMS-LG)
. . .
) _
Note: when the source-string is nullable, an indicator-field has to be used as well._
Example_
TRIM(TRAILING " " FROM ( :VAL OF TGV-REK-NR OF table_
INDICATOR :INDICATOR OF TGV-REK-NR OF table))
Assigning a value to a VARCHAR column in SQLCI
If you want to assign a value to a varchar-column with a string that is longer than 80
characters using SQLCI, then use the following syntax:_
insert into =test-tabel values ("test",
"1234567890123456789012345678901234567890123456789012345678901234567
890" ||
"1234567890123456789012345678901234567890123456789012345678901234567
890" ||
"1234567890123456789012345678901234567890123456789012345678901234567
890" ||
"123456789012345678901234567890123456789012345");_
--- 1 row(s) inserted._
Select in SQLCI
Selecting a varchar column in SQLCI only shows the first 80 characters._
select long from testtab;_
LONG
-------------------------------------------------------------------------------------------------_
123456789012345678901234567890123456789012345678901234567890123456789012345
67890_
--- 1 row(s) selected._
If you are interested in all characters, use the report writer command SET STYLE. Change the
style-option VARCHAR_WIDTH. Maximum is 255._
set varchar_width 255;
select langejan from testtab;_
LANGEJAN_
--------------------------------------------------------------------------------_
--------------------------------------------------------------------------------_
---------------_
123456789012345678901234567890123456789012345678901234567890123456789012345
67890
123456789012345678901234567890123456789012345678901234567890123456789012345
67890
123456789012345678901234567890123456789012345678901234567890123456789012345
67890
123456789012345_
--- 1 row(s) selected._
For columns even longer than 255 bytes the LIST_COUNT-option of the SQLCI-session can be
used:_
set list_count 1;_
select constrainttext from =constrnt
where tablename like upshift(“%BTCHFILE%”);_
detail constrainttext as C3000.75;_
list first; (or short: l f )
(also list next / list all can be used)_
**** next = enter_
**** to cancel the SELECT when not all result rows are shown
cancel;_
set list_count all;_
Invoke of a varchar in COBOL gives the following result:_
invoke testtab format cobol;
* Record Definition for table
* Definition current at 16:08:08 - 09/06/01
01 TESTTAB.
02 NAAM PIC X(4).
02 LANG.
03 LEN PIC S9(4) COMP.
03 VAL PIC X(255).__
Assigning a value to a VARCHAR column in COBOL
On insert, the length-field of the VARCHAR-columns must be specified by the program as well
as the value-field.
The length-field will be filled automatically when the TRIM-function is used._
Example:_
INSERT INTO =EMS-LG
(
. . .
, TXT
. . .
)
VALUES
(
. . .
, TRIM(:VAL OF TXT OF WS-EMS-LG)
. . .
) _
Note: when the source-string is nullable, an indicator-field has to be used as well._
Example_
TRIM(TRAILING " " FROM ( :VAL OF TGV-REK-NR OF table_
INDICATOR :INDICATOR OF TGV-REK-NR OF table))
Assigning a value to a VARCHAR column in SQLCI
If you want to assign a value to a varchar-column with a string that is longer than 80
characters using SQLCI, then use the following syntax:_
insert into =test-tabel values ("test",
"1234567890123456789012345678901234567890123456789012345678901234567
890" ||
"1234567890123456789012345678901234567890123456789012345678901234567
890" ||
"1234567890123456789012345678901234567890123456789012345678901234567
890" ||
"123456789012345678901234567890123456789012345");_
--- 1 row(s) inserted._
Select in SQLCI
Selecting a varchar column in SQLCI only shows the first 80 characters._
select long from testtab;_
LONG
-------------------------------------------------------------------------------------------------_
123456789012345678901234567890123456789012345678901234567890123456789012345
67890_
--- 1 row(s) selected._
If you are interested in all characters, use the report writer command SET STYLE. Change the
style-option VARCHAR_WIDTH. Maximum is 255._
set varchar_width 255;
select langejan from testtab;_
LANGEJAN_
--------------------------------------------------------------------------------_
--------------------------------------------------------------------------------_
---------------_
123456789012345678901234567890123456789012345678901234567890123456789012345
67890
123456789012345678901234567890123456789012345678901234567890123456789012345
67890
123456789012345678901234567890123456789012345678901234567890123456789012345
67890
123456789012345_
--- 1 row(s) selected._
For columns even longer than 255 bytes the LIST_COUNT-option of the SQLCI-session can be
used:_
set list_count 1;_
select constrainttext from =constrnt
where tablename like upshift(“%BTCHFILE%”);_
detail constrainttext as C3000.75;_
list first; (or short: l f )
(also list next / list all can be used)_
**** next = enter_
**** to cancel the SELECT when not all result rows are shown
cancel;_
set list_count all;_
No comments:
Post a Comment