hongjun
hongjun

Reputation: 11

KDB/q: insertions of list into table

I am looking to insert a list of data into tables. I have tried both upsert and insert. Both did not update the trade table.

// simTrade is a function that takes in
// number of orders and generate a table with random data

simTrade:{[nOrders]
    seed:-314159;
    openTime:`time$09:30;
    closeTime:`time$16:00;
    listCustomers:`XNYS`ARCX`XCHI`XASE`XCIS`XNAS`XBOS`XPHL`BATS`BATY`EDGA`EDGX`IEXG;
    listProducts: `Derivative`Futures`Indicies


    system "S ",string seed;
    times: asc closeTime&openTime+nOrders?390*60*1000;
    dates: asc 2015.03.01&2015.01.01+nOrders?30;
    customers: nOrders?listCustomers;
    products: nOrders?listProducts;
    orderIds: 1+til nOrders;
    versions: nOrders?5;
    sizes: 100*nOrders?10;

    trade:([]
        time:`time$();
        date:`date$();
        customer:`symbol$();    / Customer name {xyz fund, asd,fund}
        product:`symbol$();     / product name {Derivative, Equities}
        orderId:`long$();       / order id {1-10}
        version:`long$();       / version {1-10}
        size:`long$()
    )

    insert[`trade; (times;dates;customers;products;orderIds;versions;sizes)];
    show trade
 }
lob:simTrade[100]

I have tried checking the data type error but couldn't find any issues with it.

may I also ask why when I change insert -> upsert, an error is returned evaluation error: length Thanks for any help

Upvotes: 0

Views: 793

Answers (1)

Anton Dovzhenko
Anton Dovzhenko

Reputation: 2569

insert and upsert can be applied to global variables only. table is local variable, hence insert/upsert throws type error. For more details see insert

I would suggest you to fill table values in-place:

...
trade: ([]
    time:times;
    date:dates;
    customer:customers;    / Customer name {xyz fund, asd,fund}
    product:products;     / product name {Derivative, Equities}
    orderId:orderIds;       / order id {1-10}
    version:versions;       / version {1-10}
    size:sizes
);
...

Upvotes: 1

Related Questions