METADATA
The METADATA command is used to access the database table column name, column type, column precision and column scale information.
METADATA -------- TABLE ----------- value ---------------------|
Keywords
TABLE |
This keyword is used to indicate the table you want to retrieve the metadata for. This keyword is mandatory. |
Lists and Variables
This command requires a working list to return the table metadata back to. This working list should be made available in the TO_GET portion of this JSM_COMMAND. The working list will require 4 fields:
- The first field will hold the column name.
- The second field will hold the column type.
- The third field will hold the column precision.
- The fourth field will hold the column scale.
You may size the fields to fit the information you are expecting back from the remote database. Different databases may have different lengths and types for this information.
Examples
RDML
* Define the JSM command and message fields
DEFINE FIELD(#JSMSTS) TYPE(*CHAR) LENGTH(020)
DEFINE FIELD(#JSMMSG) TYPE(*CHAR) LENGTH(256)
DEFINE FIELD(#JSMCMD) TYPE(*CHAR) LENGTH(256)
Define the fields and list that meta data will be returned back into
DEFINE FIELD(#COLNAME) TYPE(*CHAR) LENGTH(030)
DEFINE FIELD(#COLTYPE) TYPE(*CHAR) LENGTH(030)
DEFINE FIELD(#COLPRCSN) TYPE(*DEC) LENGTH(003) DECIMALS(0)
DEFINE FIELD(#COLSCALE) TYPE(*DEC) LENGTH(003) DECIMALS(0)
DEF_LIST NAME(#WRKLST) FIELDS(#COLNAME #COLTYPE #COLPRCSN #COLSCALE) TYPE(*WORKING)
Prepare and execute the command
CHANGE FIELD(#JSMCMD) TO('METADATA TABLE(TBLNAME) SERVICE_LIST(COLNAME,COLTYPE,COLPRCSN,COLSCALE)')
USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG #WRKLST)
RDMLX
Define Field(#JSMSTS) Type(*CHAR) Length(020)
Define Field(#JSMMSG) Type(*CHAR) Length(256)
Define Field(#JSMCMD) Type(*CHAR) Length(256)
Define Field(#JSMHND) Type(*Char) Length(4)
Define the fields and list that meta data will be returned back into
Define Field(#COLNAME) Type(*CHAR) Length(030)
Define Field(#COLTYPE) Type(*CHAR) Length(030)
Define Field(#COLPRCSN) Type(*DEC) Length(003) DECIMALS(0)
Define Field(#COLSCALE) Type(*DEC) Length(003) DECIMALS(0)
Def_List Name(#WRKLST) Fields(#COLNAME #COLTYPE #COLPRCSN #COLSCALE) Type(*WORKING)
Prepare and execute the command
#JSMCMD := 'Metadata Table(TBLNAME) Service_List(COLNAME,COLTYPE,COLPRCSN,COLSCALE)'
Use Builtin(JSMX_COMMAND) With_Args(#JSMHND #JSMCMD) To_Get(#JSMSTS #JSMMSG)