【发布时间】:2018-10-05 19:08:54
【问题描述】:
我正在尝试将值从 For 循环传递到 Select 到查询中。但它未能传递价值。相反,它显示字符串。以下是我的相似查询。
DECLARE
filters VARCHAR2(4000);
BEGIN
FOR SRC IN (SELECT ABC , EFG , HIJ ,KLM FROM table_name WHERE rownum < 2)
LOOP
FILTERs := '';
FOR con IN (SELECT DISTINCT cols.column_name AS COL FROM all_constraints cons, all_cons_columns cols
WHERE cols.table_name = table_name
AND cons.constraint_type = 'P'
AND cons.constraint_name = cols.constraint_name
AND cons.owner = OWNER_NAME)
LOOP
select filters || con.col || ' = ''''''|| SRC.' ||con.col||'||'''''' AND ' INTO filters FROM dual;
END LOOP;
dbms_output.put_line(Filters);
END LOOP;
END;
我得到的输出是:
ABC = '''|| SRC.ABC||''' AND EFG = '''|| SRC.EFG||''' AND
但我期望的是:
ABC = '1234' AND EFG = '5678' AND
我该怎么做?
【问题讨论】: