我需要从存储过程输出中填充表。我试过下面的查询。
out.println("<html>");
out.println("<form action=\"SubmitTimesheet\">");
if (manager != null)
out.print("<input name=\"manager\" type=\"hidden\" value=\"" +
StringEscapeUtils.escapeHtml4(manager) + "\">");
但我在执行期间遇到了错误:
无法嵌套INSERT EXEC语句。
列名或提供的值数与表不匹配 定义
我发现发生错误是因为存储过程有多个结果集,如下所示:
DECLARE @Result AS TABLE (ouid int, value1 nvarchar(max), value2 nvarchar(max), value3 nvarchar(max))
insert into @Result (value1 ,value2, value3)
exec [USP_Getofficevalues] 1, NULL, NULL
如何处理上述情况?谢谢你的帮助。
答案 0 :(得分:3)
由于返回的结果集都是单列和相同类型,因此您可以声明表变量并存储结果:
declare @r table
(
id int identity,
value int
)
insert into @r(value)
exec [USP_Getofficevalues] 1, NULL,NULL
之后,您只需将@r
转置到@result
表格中。
答案 1 :(得分:1)
检查您的程序USP_Getofficevalues。
我认为如果您在调用时使用插入,则不允许使用插入。