【发布时间】:2014-08-18 12:35:11
【问题描述】:
我正在尝试类似的东西
select customer_id, order_id from order_table where purchase_id = 10 OR
purchase_id = 25 OR
...
purchase_id = 25432;
由于查询太大,我遇到了各种各样的问题......如果我在一行中运行整个查询,我会遇到错误:
SP2-0027: Input is too long (> 2499 characters) - line ignored
如果将查询拆分为多行,由于与为输入查询的每一行打印的行号的干扰,查询会被破坏。如果我禁用行号,每行的 SQL> 提示都会困扰我。
如果从文本文件 SQL> @query.sql 运行查询,则会出现同样的错误
(我以前用mysql没遇到过这样的问题,现在用sqlplus)。
我不是 shell 脚本专家,也不是 python 专家。如果我能获得有关如何将所有 purchase_ids 放入文本文件中的指针,每行一个 purchase_id 并将其提供给脚本运行时的 sqlplus 查询,那将是非常有帮助的。
我做了充分的研究,但我仍然很感激指点。
【问题讨论】:
-
您是否尝试过使用 IN 子句来缩短查询:
select customer_id, order_id from order_table where purchase_id IN (10,25,2542); -
In 似乎是 IN() 与@AnthonyKong 的 2a) 结合似乎是不错的选择。目前正在研究一个shellscript,在一个for循环中我正在连接到数据库。每个连接大约需要 15 秒,因此结果可能需要几个小时。