如何访问我想在第二个子查询中更新的表? 让我解释一下,我有更新查询:
UPDATE someTbl tbl
SET
x_price = (
SELECT
substr(
func.x_price,
7,
instr(
func.x_price,
'=',
7
) - 7
)
FROM
(
SELECT
somePackage.someFunction(
pbi.product_id,
pbi.x_sset_id,
pbi.inst_prod_id,
SYSDATE,
'',
'',
'',
''
) AS x_price
FROM
someTbl pbi
) func
);
我必须创建限制第二个子查询的条件,因为我得到了
ORA-01427: single-row subquery returns more than one row
我需要构建条件来定义主表tbl
和第二个子查询func
之间的关系
我是oracle sql的初学者。你能帮帮我吗?
答案 0 :(得分:0)
消息“ORA-01427:单行子查询返回多行”当结果信任是单行但结果是多行时返回,上面设置的字段语句值必须是一行一个值!!!
抱歉英语不好
答案 1 :(得分:0)
您需要关联两个查询:
UPDATE someTbl tbl
SET x_price = (
SELECT substr( x_price, 7, instr( x_price, '=', 7 ) - 7 )
FROM (
SELECT somePackage.someFunction(
product_id,
x_sset_id,
inst_prod_id,
SYSDATE,
'',
'',
'',
''
) AS x_price,
your_primary_key -- Add primary key to inner query
FROM someTbl
) func
WHERE tbl.your_primary_key = func.your_primary_key
-- Add filter to outer query which will
-- correlate the rows from the update and
-- the sub-query.
);
否则,您的子查询将返回表的所有行。