错误主要处在
insert into l_shb(QualityID,Batch,NDate,VarietyID) values(m_QualityID,m_Batch,m_NDate,m_VarietyID);
其中l_shb是临时表
insert into l_shb(QualityID,Batch,NDate,VarietyID) values(m_QualityID,m_Batch,m_NDate,m_VarietyID);
其中l_shb是临时表
insert into l_shb(QualityID,Batch,NDate,VarietyID)
select QualityID,Batch,NDate,VarietyID from YW_YSJL WHERE QualityID=m_QualityID and Batch=m_Batch and NDate=m_NDate;
execute immediate 'insert into l_shb(...';
感谢bzszp(SongZip) 你说的很对。
CREATE GLOBAL TEMPORARY TABLE l_shb(QualityID char(5),Batch number(3),NDate date,VarietyID char(4)) ON COMMIT PRESERVE ROWS';
创建好临时表
不要再存储过程里面创建
这样应该就没问题了。
m_str:='CREATE GLOBAL TEMPORARY TABLE l_shb(QualityID char(5),Batch number(3),NDate date,VarietyID char(4)) ON COMMIT PRESERVE ROWS;';
execute immediate m_str;
哪里错了?
不是编译的时候?注意,oracle中的临时表不使用过以后自动drop的
你重复执行的话,当然会有问题用show error命令查看详细信息
oracle跟sql server有区别啊。
:)