When temp-tables that are part of a dataset are passed across a network, their schema can sometimes be substantial, leading to unnecessary overhead and slow processing times while transporting the dataset. If the client code has its own static dataset definition, you should use the SCHEMA-MARSHAL attribute to limit the amount of information that is transported across the network when the dataset is returned. By default, the SCHEMA-MARSHAL attribute for a temp-table is set to "FULL", which means that all schema information is sent. The schema is used to make sure the schema on both sides match.

To limit the amount of information, you can set the SCHEMA-MARSHAL attribute for each temp-table in the dataset to "NONE". You do not set the attribute on the dataset itself. If setting the attribute to "NONE" ensure that the schema on both sides match.

You set the SCHEMA-MARSHAL attribute on the server side that passes the dataset to the client. You do not need to specify the attribute on the client side.

Pass without sending schema information

The syntax to specify that a temp-table in a dataset is being passed without its schema definition is:

table-handle:SCHEMA-MARSHAL = "NONE".

In the following example, no schema information is passed with the dataset temp-tables. Ensure the calling procedure has a matching definition of the dataset and temp-tables to receive the passed dataset.

ASSIGN
    TEMP-TABLE ttOrder:SCHEMA-MARSHAL = "NONE"
    TEMP-TABLE ttOrderLine:SCHEMA-MARSHAL = "NONE".

See also

Specify the session startup parameter for all temp-table parameters in Use ProDataSets

Set attributes for individual temp-table parameters in Use ProDataSets