加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Oracle转义字符,存储过程字符串拼接用法[转]

(2012-11-20 17:39:50)
标签:

杂谈

分类: Oracle/SQL
转自:http://dongdong1314.blog.51cto.com/389953/208561
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
在oracle中字符_表示匹配单字符,如下若需要删除所有V_2_开头的视图,则需要对_进行转义。使用escape
select view_name from user_views
where view_name like 'V/_2/_%' escape '/';

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有