Я работаю на преобразование хранимой процедуры SQL в Oracle, и я получаю эту ошибку:Как исправить ошибки ORA-01427
ORA-01427: однорядные подзапрос возвращает более одной строки ORA-06512: на «CMIUSER.PROCEDURE3», строка 21 ORA-06512: по строке 7
t_name_match и t_descript_match являются глобальными временными таблицами.
Может кто-нибудь объяснить мне, что я делаю неправильно?
create or replace PROCEDURE "PROCEDURE3"
(
IN_SEARCH_TEXT IN NVARCHAR2
, OUT_O_RC OUT SYS_REFCURSOR
) AS
BEGIN
/******************************************************************************* ***
** Name matches
******************************************************************************** ***/
/*
** Load matches to Name Table
*/
INSERT INTO t_name_match (KBID, SYMBOLID, FEATURENAME)
SELECT fm.KBID, fm.SYMBOLID, fm.FEATURENAME
from FEATURE_MASTER fm
where Upper(featurename) like IN_SEARCH_TEXT;
/*
** Add description for each of these matching names.
*/
UPDATE t_name_match nm
SET nm.DESCRIPT = (SELECT x.DESCRIPT
from CHAR_FEATURE_XRF x
where x.KBID = nm.KBID
and x.SYMBOLID = nm.SYMBOLID);
/******************************************************************************* ***
** Description matches
******************************************************************************** ***/
/*
** Load matches to Descript table
*/
INSERT INTO t_descript_match (KBID, SYMBOLID, DESCRIPT)
SELECT x.KBID, x.SYMBOLID, x.DESCRIPT
from CHAR_FEATURE_XRF x
where Upper(descript) like IN_SEARCH_TEXT;
/*
** Add name for each of these matching descriptions.
*/
UPDATE t_descript_match dm
SET dm.FEATURENAME = (SELECT f.FEATURENAME
from FEATURE_MASTER f
where f.KBID = dm.KBID
and f.SYMBOLID = dm.SYMBOLID);
/******************************************************************************* ***
** Return result set
******************************************************************************** ***/
OPEN OUT_O_RC FOR
SELECT nm.featurename, nm.descript
from t_name_match nm
UNION
SELECT dm.featurename, dm.descript
from t_descript_match dm
ORDER BY featurename, descript;
END PROCEDURE3;
Спасибо, это исправило мою проблему, и я возвращаю правильные результаты. – SimplyZ