문장이 항상 고정 별칭으로 단일 값을 추출한다고 가정 할 수 있다면 다음을 시도 할 수 있습니다.
설정 : 별명 result
을 감안할 때
create table yourTable(table_name varchar2(30), SQL_statement varchar2(100), id_value number, result number);
insert into yourTable
(
select 'employee', 'select :1 *2 as result from dual', 1, null from dual union all
select 'customer', 'select :1 as result from dual', 10, null from dual
);
, 당신은 하나의 업데이트 문을 사용할 수 있습니다.
갱신 :
update yourTable
set result = extractvalue(xmltype(dbms_xmlgen.getxml(replace (SQL_statement, ':1', id_value))),'/ROWSET/ROW/RESULT')
결과 :
SQL> select *
2 from yourTable;
TABLE_NAME SQL_STATEMENT ID_VALUE RESULT
---------- ---------------------------------------- ---------- ----------
employee select :1 *2 as result from dual 1 2
customer select :1 as result from dual 10 10
트릭을 할 것 업데이트되는 각 테이블에 대한 간단한 업데이트 문. ID는 어떻게 전달됩니까? 한 번에 하나씩 또는 select 문의 결과로? – Boneist
목표는 일종의 BULK 조작을 사용하여 SQL_STATEMENT에 ID_VALUE를 전달하는 것입니다. – oradbanj
맞습니다.하지만 id_values를 처음부터 어떻게 얻고 있습니까? 그것들은 데이터베이스 내에서 생성 된 것입니까 (예 :'select condition_value from table_with_id_value from)? 또는 프런트 엔드 프로그램을 통해 한 번에 id로 전달 되었습니까? –
Boneist