Oracle 立即执行期间的报价问题

Oracle 立即执行期间的报价问题,oracle,plsql,execute-immediate,Oracle,Plsql,Execute Immediate,获取执行立即数的语法时出错 select distinct hire_date BULK COLLECT into v_yr from employees; for i in 1..v_yr.count LOOP v_1:='select * from employees where EXTRACT(YEAR FROM TO_DATE(HIRE_DATE,''' ||DD-MM-RR ||''' ||'=:1'; open c_emp for v_1 u

获取执行立即数的语法时出错

select distinct hire_date BULK COLLECT into v_yr from employees;
 
 for i in 1..v_yr.count LOOP
 

   
 v_1:='select * from employees where EXTRACT(YEAR FROM TO_DATE(HIRE_DATE,'''
    ||DD-MM-RR
||'''
||'=:1';

     open c_emp for v_1 using v_yr(i);
也许是这个

select distinct extract(year from hire_date)
  bulk collect into v_yr
  from employees;
 
for i in 1..v_yr.count loop

   for c_emp in (select *
                   from employees
                  where extract(year from hire_date) = v_yr(i)) loop
.
.
.
   end loop;

end for;

你也可以帮我做以下几点:使用v|u emp(i)执行即时的“UTL|u FILE.fopen”(“'''| CSVDIR |'.'',“'| | empdata.csv | |:1'',“'| | w |',''| 1000 | |'”),我发现上面有错误。我认为问题在于引用。我希望在运行时从集合v_emp获取empdata.csv1、empdata.csv2…等等;同样,我认为您不需要立即执行
。声明一个var
f1 utl\u file.file\u类型然后
f1:=utl_file.fopen(CSVDIR,'empdata.csv'| i,'w',1000)
.v_1:='从员工中选择*,其中摘录(从雇佣日期算起的年份)=:1和摘录(从雇佣日期算起的月份)=:2和收件人编号(收件人字符(到雇佣日期,'DD/MM/YYYY'),'WW')=:3';在这种情况下我能做什么?我想把周数像1,2,3等放在runtime@TBose您也可以在这些情况下使用PL/SQL变量。