页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

(本文档仅供参考)

问题说明

1、SqlServer中新建了多张同名#临时表

2、#临时表作为参数传入存储过程查询出结果

...

信息
有关临时表说明可参考网上的介绍:https://zhuanlan.zhihu.com/p/562721751

问题原因

1、SqlServer以#开头的临时表只会存在于当前数据库连接,如果此连接被释放那么临时表也就消失了。

...

代码块
collapsetrue
02-01 16:46:28 ERROR a(smartbi.spreadsheetreport.core.SpreadsheetReportServlet:291) - 获取数据SQL错误<br />获取数据SQL错误:IF OBJECT_ID(&amp;apos;tempdb..#T1&amp;apos;) IS NOT NULL DROP TABLE #T1 CREATE TABLE #T1 (SC VARCHAR(500)) DECLARE @SR VARCHAR(MAX),@JG INT SET @SR= &amp;apos;20221012 20221013 20221014 20221015&amp;apos; +&amp;apos; &amp;apos; SET @JG= 2 SET @SR= REPLACE (@SR,&amp;apos; &amp;apos;,&amp;apos;△&amp;apos;) DECLARE @CS INT,@CS1 INT,@SC1 VARCHAR(5000),@BZ INT SET @SC1=&amp;apos;&amp;apos; SET @BZ=0 SET @CS=0 SET @CS1=-1 WHILE CHARINDEX (&amp;apos;△&amp;apos;,@SR,@CS+1) SET @SC1=SUBSTRING(@SR,@CS+1,@CS1-@CS-1 )+&amp;apos; &amp;apos;+@SC1 SET @CS=@CS1 IF @BZ=@JG OR CHARINDEX (&amp;apos;△&amp;apos;,@SR,@CS+1)=0 BEGIN INSERT INTO #T1 VALUES (@SC1) SET @SC1=&amp;apos;&amp;apos; SET @BZ=0 END END SELECT * FROM #T1;列名或所提供值的数目与表定义不匹配。<br />at smartbi.freequery.querydata.store.DBSQLResultStore.executeInDatabaseInner(DBSQLResultStore.java:1768)<br />at ...(...)<br />at smartbi.log.PreparedStatementWarp.executeQuery(PreparedStatementWarp.java:144)<br />Caused by: java.sql.SQLException: 列名或所提供值的数目与表定义不匹配。<br />at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)<br />at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2820)<br />at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2258)<br />at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:632)<br />at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:477)<br />at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:776)at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)<br />at smartbi.log.PreparedStatementWarp.executeQuery(PreparedStatementWarp.java:144)<br />at smartbi.freequery.querydata.store.DBSQLResultStore.runRawSQL(DBSQLResultStore.java:4645)<br />at smartbi.freequery.querydata.store.DBSQLResultStore.executeInDatabaseInner(DBSQLResultStore.java:1706)<br />at smartbi.freequery.querydata.store.DBSQLResultStore.executeInDatabase(DBSQLResultStore.java:1615)



解决方案

       方案一:数据源 数据源-->高级-->校验语句-->设置返还时关闭

Image Added

注意
注:设置返还时关闭打开报表速度会有所降低,可以新建一个新的数据源设置返还时关闭用于创建带有临时表的数据集,其他查询原表可使用原有的数据源。

Viewtracker