站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题如何在存储过程中创建临时表,临时表又会在其他存储过程中被调用

如何在存储过程中创建临时表,临时表又会在其他存储过程中被调用

摘要: 如何在存储过程中创建临时表,临时表又会在其他存储过程中被调用


CREATE PROCEDURE [dbo].[sp_getDdkxib_22]
@chPayUse_30 varchar(8000),
@chPayUse_31 varchar(8000),
@temp_3 varchar(30),
@temp_1 varchar(30),
@beginTime varchar(20),
@endTime varchar(20)
AS
begin
declare @sql varchar(8000)
select @sql=''
select @sql= 'select c.ChUnitCode, c.chUnitBrief, c.chunitqualitycode, ' +
' sum(case when (c.chZHType = ''20'' and a.chPayUse in(' + @chPayUse_30 +
' )) then a.decPayAmount else 0 end) as dsjzcddk, ' +
' sum(case when (c.chZHType = ''30'' and a.chPayUse in(' + @chPayUse_31 +
' )) then a.decPayAmount else 0 end) as tsjgcddk ' +
' into ' + @temp_3 +
' from ES_LSZ a, ES_YHZHB b, ' + @temp_1 + ' c ' +
' where a.chPayAccount = b.chBankAccount ' +
' and a.chStatus = ''8'' ' +
' and b.ChUnitCode = ''1000000'' ' +
' and a.chRecAccount = c.chBankAccount ' +
' and (convert(char(10),a.dDate,120) between' + @beginTime + ' and ' + @endTime + ') ' +
' group by c.chunitqualitycode, c.chUnitBrief, c.ChUnitCode ' +
' order by c.chunitqualitycode, c.ChUnitCode'

exec(@sql)
end
GO


其中含temp的代表临时表,在程序中随机得到,已经加了##。
执行到这个存储过程的时候,会报错:temp_1的临时变量无效;
09:12:01,572 INFO [STDOUT] execute catch java.sql.SQLException: [TXT-WY7UVCS
Z]对象名 '##temp_Dd14760210' 无效。

而temp_1指的临时表是在另外一个,同这个存储过程像类似的存储过程中创建的。先于这个存储过程创建的。临时表的名字是在程序中创建,临时表是在存储过程中创建,临时表会在其他存储过程中被调用。



如果你要建的临时表的列是已知,那就没必要建临时表?
建一个实体表还更好。


顶顶

-----------------------------
http://www.5ai7.net/


上面要求建临时表,而且现在是把sql语句改写成存储过程,语句中有大量的临时表
请问怎么改写啊


临时表多了,系统很烂。
你的SQL语句只是查询,有必要写存储过程么?


↑返回目录
前一篇: 如何用java代码启动和关闭tomcat
后一篇: 100分求助,熟悉Cookie的高手入内,关于路径问题。