【问题标题】:Select only statment ORA-01427: single-row subquery returns more than one row仅选择语句 ORA-01427: 单行子查询返回多于一行
【发布时间】:2018-12-08 14:36:04
【问题描述】:

我不是 Oracle 开发人员。我们有一项工作,其中包含从 Oracle 检索数据并将其发布(更新和插入)到另一个数据库的步骤。奇怪的问题是在选择查询中,它给出了错误

ORA-01427: single-row subquery returns more than one row

调查后查询是

SELECT DISTINCT CUSTOMER, CUSTOMER_STATUS, CUST_ACCT_CREATION_DATE,.... FROM table_CUSTOMER

当我从查询中删除某些列时,它给我的结果没有问题,但不幸的是,这些列需要用于其他目的。

这些列如何产生此错误?

【问题讨论】:

标签: database oracle


【解决方案1】:

怎么样?因为他们没有创建不同的结果集,所以就是这样。

如果您需要获取单行,请将WHERE 子句应用于该查询,以确保只返回一行。

限制行数的最简单方法是使用WHERE rownum = 1,但它会返回一个随机行。它会满足业务规则吗?我不知道。也许;也许不会。

我们没有您的表格或数据。但是,如果你能提供测试用例,有人可能会提供帮助。

【讨论】:

  • 但我不需要一行,查询应该获取表中的所有数据
  • 你知道调试看不到的代码有多难吗?
  • 选择不同的客户,customer_status,cust_acct_creation_date,trade_channel,price_class,salesman,party_name,频道,子信道,custcategory,站点,site_name,cust_site_status,cust_site_creation_date,site_use_status,地址1,地址2,地址3,地址4,po_box_number, CITY、PAYMENT_TYPE、PAYMENT_TERM_CODE、DELIVERY_STOP2、DELIVERY_PRIORITY、SERVICE_PATTERN、CUSTOMER_VISITS、BL_CUST_REF、BL_SITE_REF FROM CUSTOMER 这是完整的查询
  • 即使我写了 select * from CUSTOMER 它也会给我错误
  • 这个查询实际上不能返回 TOO-MANY-ROWS。它可能(并且可能会)返回几行,但这不会导致错误。它是其他查询、过程、游标等的一部分吗?
猜你喜欢
  • 1970-01-01
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-30
  • 1970-01-01
相关资源
最近更新 更多