Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL:迭代查询70000次,每次迭代求和一个字段_Sql_Oracle_Oracle11g - Fatal编程技术网

SQL:迭代查询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多次 这样做还有更好的吗 我建议您使用文件创建一个外部表。有关更多详细信息,请参阅此链接 创建后,您可

我有一个会话ID为的文本文件,其计数约为70000+。 我必须从文本文件中读取每个会话,并且我需要在数据库中执行查询

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将文本文件加载到表中,然后连接到结果表