Talking about the database here in general, the amount of rows in the
Table-Valued Parameters (TVPs) varies between a few to a few hundred,
maybe up to a thousand. If I had to guess, I'd say that TVPs are mostly
used for smaller amounts, though.
Currently (MS SQL 2008 and 2012), TVPs must be declared READONLY, which
means their data is only going in to the stored procedures.
JW
On 2013-12-30 06:41, Darren Duncan wrote:
Something I'm wondering, in the general case, are the table values
being passed on these parameters large or small? For example, is it a
list of line items for an invoice (small) or could it say be millions
of records in one call? I say this regardless of whether these values
are being passed in or out or both, though you can answer that too.
If the tables are large then we probably want the implementation such
that the client-side bind variable on that parameter would be like a
cursor handle so you can pull or push rows one at a time; if the
tables are small than an implementation that behind the scenes
serializes the table into a scalar value for transit may do the job.
As to the actual answer to your question, what support exists now, I
don't know; I'm just saying how it could be made to work.
Note that an ordinary SELECT or INSERT statement could be generalized
as a procedure with a table-valued OUT or IN parameter respectively,
and so an appropriate DBI design could handle things as if a
SELECT/INSERT were just special cases of the procedure. DBI's ? bind
params and stored procedure params would be direct analogies to each
other, or say that the former is an example of the latter.
-- Darren Duncan
On 2013.12.29 2:20 PM, Jürgen Wenzel wrote:
Hello,
I'm adapting a Windows perl program to work with a new MS SQL Server
database
and it involves making calls to stored procedures that takes
Table-Valued
Parameters. Is this possible with DBD::ODBC or any other DBI? Or at
all with
(strawberry) perl?
Would really appreciate some help -- answers and perhaps even a short
example --
since trying to figure this out is really starting to wear on me.
Thanks in advance!
JW