У меня есть фиксированное выполнение немедленного повествования. sql_text в нем будет вводить только один параметр для выполнения простого синтаксического запроса.
пример
EXECUTE IMMEDIATE sql_text USING SN RETURNING INTO MSG;
sql_text — оператор поиска, который можно использовать в качестве альтернативы
sql_txt = 'select count(1) from productDetails where ID = :parameter1'
Первоначально EXECUTE IMMEDIATE вводил только один параметр для выполнения sql_text. На этот раз я хочу ввести несколько параметров для выполнения sql_text, не затрагивая существующую операцию sql_text только с одним параметром.
Поэтому многие попытки провалились. Неправильный SQL выглядит следующим образом
DECLARE
SQL_TEXT VARCHAR2(1000);
MSG VARCHAR2(500);
SN VARCHAR2(500) := parameter1/parameter2;
BEGIN
sql_text := '
DECLARE
parameters VARCHAR2(50);
parameter1 VARCHAR2(50);
parameter2 VARCHAR2(50);
sql_txt VARCHAR2(1000);
BEGIN
parameters := :SN;
parameter1 := substr(parameters,0,10);
parameter2 := substr(parameters,11,10);
sql_txt = ''select count(1) from productDetails where ID = :parameter1
AND NUMBER = :parameter2''
EXECUTE IMMEDIATE sql_txt USING parameter1 RETURNING INTO MSG;
END;';
EXECUTE IMMEDIATE sql_text USING SN RETURNING INTO MSG;
DBMS_OUTPUT.put_line(MSG);
END;
Я попытался поместить несколько параметров в один параметр.
SN VARCHAR2(500) := parameter1/parameter2;
Выньте параметры из sql_text и используйте
parameters := :SN;
parameter1 := substr(parameters,0,10);
parameter2 := substr(parameters,11,10);
Он продолжает пытаться и терпит неудачу
версия базы данных: база данных оракула 19c
Просить помощи
Спасибо