Ich habe einen Cursor in Informix-Datenbank, die Teil einer Funktion ist, möchte ich das in einen Cursor in MS-SQL konvertieren.Konvertieren von Informix Cursor zu MSSQL Cursor
Unten ist der Code:
DECLARE select distinct agentname, agentloginid
from selected_agents
call;
OPEN cur;
FETCH cur INTO @l_AgentName, @l_AgentLoginID;
WHILE @@FETCH_STATUS = 0 BEGIN getAgentLogActivity(@l_AgentName, @l_AgentLoginID, @p_startTime, @p_endTime);
insert into final_result(Agent_Name, Agent_Login_ID, op1, Login_Time, op2,
Logout_Time, Logout_Reason_Code, Logon_Duration)
select @l_AgentName, @l_AgentLoginID, op1, logintime, op2, logouttime, reasoncode, duration
from temp_login_logout;
FETCH cur INTO @l_AgentName, @l_AgentLoginID;
end
CLOSE cur;
DEALLOCATE cur;
Hier in diesem Fall, dass ich Probleme mit Declare-Anweisung zu finden bin. Ich weiß, dass ich das auf dem Weg schreiben muss.
DECLARE cur CURSOR FOR
SELECT DISTINCT agentname, agentloginid
from selected_agents
OPEN cur;
FETCH cur INTO @l_AgentName, @l_AgentLoginID;
WHILE @@FETCH_STATUS = 0 BEGIN getAgentLogActivity(@l_AgentName, @l_AgentLoginID, @p_startTime, @p_endTime);
insert into final_result(Agent_Name, Agent_Login_ID, op1, Login_Time, op2,
Logout_Time, Logout_Reason_Code, Logon_Duration)
select @l_AgentName, @l_AgentLoginID, op1, logintime, op2, logouttime, reasoncode, duration
from temp_login_logout;
FETCH cur INTO @l_AgentName, @l_AgentLoginID;
end
CLOSE cur;
DEALLOCATE cur;
AKTUALISIERT - selected_agents Erklärung
DECLARE @selected_agents TABLE (
agentloginid NVARCHAR(50),
agentname NVARCHAR(50),
agentID INT,
profileid INT,
resourcegroupid int,
dateinactive datetime,
--filter boolean default 'f',
rsmid INT,
teamid INT
);
Hier selected_agents ist eine temporäre Tabelle, die ich in der Funktion erstellt haben.
Der Fehler, was es heißt, dass Agentname, Agentloginid nicht deklariert ist. Was ich bereits erklärt habe.
Kann mir jemand helfen, wie kann ich es korrigieren?
Sie müssen nächste holen, aber wo haben Sie diese Variablen deklariert? – scsimon
Ich habe vor dieser Cursor-Deklaration eine temporäre Tabelle erstellt. Diese Cursor und Temp-Tabelle ist Teil einer Funktion, die ich habe. –
Den Code posten? Temp-Tabelle ist nicht dasselbe wie Variablen. Vielen Dank! – scsimon