我有一个将记录插入临时表的 SP,然后选择记录并返回它们。SQL是这样的。
我通过删除 INSERT INTO 语句并最小化 SQL 来解决它。罪魁祸首是SELECT * FROM #Worklist1。不知道为什么这不起作用。如果有帮助,我(刚刚)升级到最新版本的 Pervasive 服务器版本 10,但是这个问题在 10.3 中并且仍然存在。一定是遗漏了什么。
CREATE PROCEDURE "Connect_Workflow"(
:StartDate DATETIME, :EndDate DATETIME)
RETURNS(Patient varchar(100) ,
AccessionNo varchar(25)
);
BEGIN
CREATE TABLE #WorkFlow1
(Patient varchar(100) null,
AccessionNo varchar(25) null
);
INSERT INTO #Workflow1(
SELECT
rtrim(p.LastName),--+ '^' + rtrim(p.FirstName) + isnull('^' + rtrim(p.Initial), ''),
v.VisitID -- equiv to EncounterID
FROM visit v
join patient p on v.patientnumber = p.patientnumber
WHERE v.VisitYY = '99'
);
SELECT * FROM #WorkFlow1;
DROP TABLE #Workflow1;
END
更新:在注释掉 SELECT * FROM #Worklist1; 它仍然给出一个无效的表错误。如果我删除 INSERT INTO 和 SELECT * 那么最后错误就消失了。引用表时一定是错误的。