Permite insertar los datos de una tabla virtual en una tabla de la base de datos. La tabla sobre la que se insertan los datos, puede ser temporal o una tabla estática.

1 vtable.insertIntoTable

<vtable.insertIntoTable
    table='table'
    columns='columns'
>
    <vtable /> !
</vtable.insertIntoTable>
Example

Inserta en una tabla temporal los registro de la vtable, cuyo pais (store_country), es "USA".

Copy
<xsql-script name='vtable_insertIntoTable_sample1'>
    <body>
        <vtable name='v1'>
            <column name='store_country'          type='char' />
            <column name='store_state'            type='char' />
            <column name='store_type'             type='char' />
            <column name='store_sqft'             type='integer' />
        </vtable>

        <vtable.insert name='v1'>
             <matrix>
                 { "Canada", "BC",        "Deluxe Supermarket",  "23112"}
                 { "Canada", "BC",        "Mid-Size Grocery",    "34452"}
                 { "Mexico", "DF",        "Deluxe Supermarket",  "0"    }
                 { "Mexico", "DF",        "Mid-Size Grocery",    "36509"}
                 { "Mexico", "Guerrero",  "Supermarket",         "23593"}
                 { "Mexico", "Jalisco",   "Small Grocery",       "24597"}
                 { "Mexico", "Veracruz",  "Supermarket",         "34791"}
                 { "Mexico", "Yucatan",   "Deluxe Supermarket",  "30797"}
                 { "Mexico", "Zacatecas", "Deluxe Supermarket ", "30584"}
                 { "Mexico", "Zacatecas", "Gourmet Supermarket", "23759"}
                 { "Mexico", "Zacatecas", "Mid-Size Grocery   ", "38382"}
                 { "USA",    "CA",        "Gourmet Supermarket", "23688"}
                 { "USA",    "CA",        "HeadQuarters",        "0"    }
                 { "USA",    "CA",        "Small Grocery",       "22478"}
                 { "USA",    "CA",        "Supermarket",         "23598"}
                 { "USA",    "OR",        "Deluxe Supermarket",  "27694"}
                 { "USA",    "OR",        "Supermarket",         "20319"}
                 { "USA",    "WA",        "Deluxe Supermarket",  "33858"}
                 { "USA",    "WA",        "Mid-Size Grocery",    "0"    }
                 { "USA",    "WA",        "Small Grocery",       "28206"}
                 { "USA",    "WA",        "Supermarket",         "91179"}
            </matrix>
        </vtable.insert>

        <table name='@tmp_v1' temp='y'>
            <column name='store_country'          type='char'  size='15' required='y' />
            <column name='store_state'            type='char'  size='15' required='y' />
            <column name='store_type'             type='char'  size='25' required='y' />
            <column name='store_sqft'             type='integer' required='y'  />
        </table>

        <index name='@i_tmp_v1' table='@tmp_v1' columns='store_country, store_state, store_type' unique='y' />

        <vtable.insertIntoTable table='@tmp_v1'>
            <vtable.filter name='v1'>
                <column name='store_country' regexp='USA' />
            </vtable.filter>
        </vtable.insertIntoTable>

        <print.sql head='true'>
            <select>
                <columns>*</columns>
                <from table='@tmp_v1' />
            </select>
        </print.sql>
    </body>
</xsql-script>

El resultado de ejecución es:

Copy
+---------------+---------------+--------------------+----------+
|store_country  |store_state    |store_type          |store_sqft|
|char           |char           |char                |int       |
+---------------+---------------+--------------------+----------+
|USA            |CA             |Gourmet Supermarket |     23688|
|USA            |CA             |HeadQuarters        |         0|
|USA            |CA             |Small Grocery       |     22478|
|USA            |CA             |Supermarket         |     23598|
|USA            |OR             |Deluxe Supermarket  |     27694|
|USA            |OR             |Supermarket         |     20319|
|USA            |WA             |Deluxe Supermarket  |     33858|
|USA            |WA             |Mid-Size Grocery    |         0|
|USA            |WA             |Small Grocery       |     28206|
|USA            |WA             |Supermarket         |     91179|
+---------------+---------------+--------------------+----------+
Example

Inserta en una tabla temporal los registro de la vtable, cuyo pais (store_country), es "USA". En la temporal no se inserta la columna del vtable, store_sqft, con la superficie en pies cuadrados.

Copy
<xsql-script name='vtable_insertIntoTable_sample2'>
   <body>
       <vtable name='v1'>
           <column name='store_country'          type='char' />
           <column name='store_state'            type='char' />
           <column name='store_type'             type='char' />
           <column name='store_sqft'             type='integer' />
       </vtable>

       <vtable.insert name='v1'>
            <matrix>
                { "Canada", "BC",        "Deluxe Supermarket",  "23112"}
                { "Canada", "BC",        "Mid-Size Grocery",    "34452"}
                { "Mexico", "DF",        "Deluxe Supermarket",  "0"    }
                { "Mexico", "DF",        "Mid-Size Grocery",    "36509"}
                { "Mexico", "Guerrero",  "Supermarket",         "23593"}
                { "Mexico", "Jalisco",   "Small Grocery",       "24597"}
                { "Mexico", "Veracruz",  "Supermarket",         "34791"}
                { "Mexico", "Yucatan",   "Deluxe Supermarket",  "30797"}
                { "Mexico", "Zacatecas", "Deluxe Supermarket ", "30584"}
                { "Mexico", "Zacatecas", "Gourmet Supermarket", "23759"}
                { "Mexico", "Zacatecas", "Mid-Size Grocery   ", "38382"}
                { "USA",    "CA",        "Gourmet Supermarket", "23688"}
                { "USA",    "CA",        "HeadQuarters",        "0"    }
                { "USA",    "CA",        "Small Grocery",       "22478"}
                { "USA",    "CA",        "Supermarket",         "23598"}
                { "USA",    "OR",        "Deluxe Supermarket",  "27694"}
                { "USA",    "OR",        "Supermarket",         "20319"}
                { "USA",    "WA",        "Deluxe Supermarket",  "33858"}
                { "USA",    "WA",        "Mid-Size Grocery",    "0"    }
                { "USA",    "WA",        "Small Grocery",       "28206"}
                { "USA",    "WA",        "Supermarket",         "91179"}
           </matrix>
       </vtable.insert>

       <table name='@tmp_v1' temp='y'>
           <column name='store_country'          type='char'  size='15' required='y' />
           <column name='store_state'            type='char'  size='15' required='y' />
           <column name='store_type'             type='char'  size='25' required='y' />
       </table>

       <index name='@i_tmp_v1' table='@tmp_v1' columns='store_country, store_state, store_type' unique='y' />

       <vtable.insertIntoTable table='@tmp_v1' columns='store_country, store_state, store_type'>
           <vtable.filter name='v1'>
               <column name='store_country' regexp='USA' />
           </vtable.filter>
       </vtable.insertIntoTable>

       <print.sql head='true'>
           <select>
               <columns>*</columns>
               <from table='@tmp_v1' />
           </select>
       </print.sql>
   </body>

</xsql-script>

El resultado de ejecución es:

Copy
+---------------+---------------+--------------------+
|store_country  |store_state    |store_type          |
|char           |char           |char                |
+---------------+---------------+--------------------+
|USA            |CA             |Gourmet Supermarket |
|USA            |CA             |HeadQuarters        |
|USA            |CA             |Small Grocery       |
|USA            |CA             |Supermarket         |
|USA            |OR             |Deluxe Supermarket  |
|USA            |OR             |Supermarket         |
|USA            |WA             |Deluxe Supermarket  |
|USA            |WA             |Mid-Size Grocery    |
|USA            |WA             |Small Grocery       |
|USA            |WA             |Supermarket         |
+---------------+---------------+--------------------+