1. 使用动态SQL时发现的问题,
在字符串中还要使用单引号怎么办呢,使用转义字符,转义字符正是单引号本身
declare
v_nyr varchar2(8);
v_yydm varchar2(16);
v_sql varchar2(200);
v_cur number;
cursor v_cursor is
select distinct nyr,yydm from v_nyr_yydm_test;
begin
open v_cursor;
loop
fetch v_cursor into v_nyr,v_yydm;
exit when v_cursor%notfound;
v_sql:='create or replace view v_1_'||v_nyr||'_'||v_yydm||
' as select kh from dm_mpg_test where nyr='''||v_nyr||'''
and yydm= '''||v_yydm||''' with read only';
v_cur:=dbms_sql.open_cursor;
dbms_output.put_line(v_sql);
dbms_sql.parse(v_cur,v_sql,dbms_sql.native);
dbms_sql.close_cursor(v_cur);
end loop;
close v_cursor;
end;
2. 使用转义字符使用escape
select view_name from user_views
where view_name like 'V/_2/_%' escape '/';