declare
v_sql varchar2(1000);
type w_rec is ref cursor;
v_rec w_rec
begin
open v_rec for 'select * from user_object where table_name=upper('ps_case_tbl')';
end;
这段存储过程打开游标那里会报错,upper('xxx')这里的单引号该如何处理?

解决方案 »

  1.   


    open v_rec for 'select * from user_object where table_name=upper(''||'ps_case_tbl'||'')';open v_rec for 'select * from user_object where table_name=upper('||CHR(39)||'ps_case_tbl'||CHR(39)||')';
      

  2.   


    declare
    v_sql varchar2(1000);
    type w_rec is ref cursor;
    v_rec w_rec; -- 少了分号
    begin
    -- 单引号里的单引号要用两个,第一个用来转义
    open v_rec for 'select * from user_object where table_name=upper(''ps_case_tbl'')'; 
    end;