Я хочу написать хранимую процедуру в Oracle передавая динамическое значение, как показано ниже:Dynamic Выберите запрос в Oracle хранимой процедуры
create or replace PROCEDURE DETAILDISCDATA2
(
USERTYPE IN VARCHAR2,
BID IN NUMBER,
SORT_COLUMN IN VARCHAR2,
SORT_ORDER IN VARCHAR2,
catCur OUT SYS_REFCURSOR
) AS
COUNTRY_CODE VARCHAR2(10) := 'USA';
v_sql varchar2(1000);
BEGIN
v_sql := 'SELECT bd.*, BD.ATS_ITEM_LIST_PRICE_UNIT as UNIT_NORMAL_NET, BD.ITEM_LIST_PRICE_TOTAL as NORMAL_NET '
' FROM bdetail BD '
' LEFT OUTER JOIN CATALOG_SCH_DISC DD '
' ON BD.MAT_NR = DD.PRODUCT_NO '
' AND DD.COUNTRY_CODE= :a ';
' AND BD.Id = :b order by :c :d';
EXECUTE IMMEDIATE v_sql using COUNTRY_CODE, BID ,SORT_COLUMN,SORT_ORDER;
END DETAILDISCDATA2;
Когда я выполнить эту хранимую процедуру, он отображает выход без данных, но если я бегу Тот же самый запрос со статическим значением дает соответствующей выходной
Я не уверен, чего вы пытаетесь достичь, но эта процедура не будет «отображать» что-либо. Он даже не выполнит инструкцию SELECT, если нет предложения INTO или BULK COLLECT INTO. –
. Я хочу динамически извлекать записи с динамическим сортировочным столбцом и порядком сортировки. –
. Спасибо за отзывы. Марцин, не могли бы вы дать мне обновленный запрос –