SQL:迭代查询70000次,每次迭代求和一个字段
我有一个会话ID为的文本文件,其计数约为70000+。 我必须从文本文件中读取每个会话,并且我需要在数据库中执行查询SQL:迭代查询70000次,每次迭代求和一个字段,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,我有一个会话ID为的文本文件,其计数约为70000+。 我必须从文本文件中读取每个会话,并且我需要在数据库中执行查询 select sessionid,CONT_AMOUNT from RESULT where sessionid in (@text_file); 这里CONT_AMOUNT是我需要从每个结果中添加的字段 从SQLDeveloper我可以一次提供1000个会话,但需要执行70多次 这样做还有更好的吗 我建议您使用文件创建一个外部表。有关更多详细信息,请参阅此链接 创建后,您可
select sessionid,CONT_AMOUNT from RESULT where sessionid in (@text_file);
这里CONT_AMOUNT是我需要从每个结果中添加的字段
从SQLDeveloper我可以一次提供1000个会话,但需要执行70多次
这样做还有更好的吗 我建议您使用文件创建一个外部表。有关更多详细信息,请参阅此链接 创建后,您可以直接从平面文件数据中查询:
SELECT SUM (CONT_AMOUNT)
FROM RESULT
WHERE sessionid IN (SELECT sessionid
FROM your_external_tab);
或者,如果需要运行SUM
,可以使用
SELECT session_id, SUM (CONT_AMOUNT) OVER (ORDER BY sessionid)
FROM RESULT
WHERE sessionid IN (SELECT sessionid
FROM your_external_tab);
我建议您使用文件创建一个外部表。有关更多详细信息,请参阅此链接 创建后,您可以直接从平面文件数据中查询:
SELECT SUM (CONT_AMOUNT)
FROM RESULT
WHERE sessionid IN (SELECT sessionid
FROM your_external_tab);
或者,如果需要运行SUM
,可以使用
SELECT session_id, SUM (CONT_AMOUNT) OVER (ORDER BY sessionid)
FROM RESULT
WHERE sessionid IN (SELECT sessionid
FROM your_external_tab);
使用sqlldr将文本文件加载到表中,然后连接到结果表使用sqlldr将文本文件加载到表中,然后连接到结果表