度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 2218|回复: 11
打印 上一主题 下一主题

[分享] oracle删除字段中的空格、回车及指定字符

[复制链接]

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
跳转到指定楼层
楼主
发表于 2020-4-17 17:05:18 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
  1. create or replace procedure PROC_test is
  2.   --Description:删除字段中的指定字符(回车chr(13)、换行chr(10))
  3.   --By LiChao
  4.   --Date:2016-03-01

  5.   colname varchar(20); --列名
  6.   cnt     number; --包含换行符的列的行数
  7.   v_sql   varchar(2000); --动态SQL变量
  8. begin
  9.   --读取表中的列
  10.   for col in (select column_name
  11.                 from user_tab_columns
  12.                where table_name = 'TEMP') loop
  13.     colname := col.column_name;
  14.    --替换换行符chr(10)
  15.     v_sql := 'select count(1)  from temp  where instr(' || colname ||
  16.              ',chr(10))>0 ';
  17.     EXECUTE IMMEDIATE V_SQL
  18.       into cnt;
  19.     if cnt > 0 then
  20.       v_sql := 'update temp set ' || colname || '=trim(replace(' || colname ||
  21.                ',chr(10),''''))' || 'where instr(' || colname ||
  22.                ',chr(10))>0 ';
  23.       EXECUTE IMMEDIATE V_SQL;
  24.       commit;
  25.     end if;
  26.    --替换回车符chr(13)
  27.     v_sql := 'select count(1)  from temp  where instr(' || colname ||
  28.              ',chr(13))>0 ';
  29.     EXECUTE IMMEDIATE V_SQL
  30.       into cnt;
  31.     if cnt > 0 then
  32.       v_sql := 'update temp set ' || colname || '=trim(replace(' || colname ||
  33.                ',chr(13),''''))' || 'where instr(' || colname ||
  34.                ',chr(13))>0  ';
  35.       EXECUTE IMMEDIATE V_SQL;
  36.       commit;
  37.    
  38.     end if;
  39.     --替换'|' chr(124) 为'*' chr(42)
  40.     v_sql := 'select count(1)  from temp  where instr(' || colname ||
  41.              ',chr(124))>0 ';
  42.     EXECUTE IMMEDIATE V_SQL
  43.       into cnt;
  44.     if cnt > 0 then
  45.       v_sql := 'update temp set ' || colname || '=replace(' || colname ||
  46.                ',chr(124),chr(42))' || 'where instr(' || colname ||
  47.                ',chr(124))>0  ';
  48.       EXECUTE IMMEDIATE V_SQL;
  49.       commit;
  50.    
  51.     end if;
  52.   end loop;

  53. end PROC_test;
  54. /
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
12#
发表于 2020-4-24 20:51:18 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
11#
 楼主| 发表于 2020-4-24 15:40:08 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
10#
发表于 2020-4-23 20:16:35 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
9#
 楼主| 发表于 2020-4-23 15:13:09 | 只看该作者
回复 支持 反对

使用道具 举报

141

主题

1551

帖子

3573

积分

论坛元老

Rank: 8Rank: 8

积分
3573
8#
发表于 2020-4-22 21:26:56 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
7#
 楼主| 发表于 2020-4-22 14:39:03 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
6#
发表于 2020-4-20 18:27:20 | 只看该作者
回复 支持 反对

使用道具 举报

235

主题

2547

帖子

5835

积分

论坛元老

Rank: 8Rank: 8

积分
5835
5#
 楼主| 发表于 2020-4-19 16:03:50 | 只看该作者
回复 支持 反对

使用道具 举报

182

主题

2120

帖子

4842

积分

论坛元老

Rank: 8Rank: 8

积分
4842
地板
发表于 2020-4-18 19:30:21 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-25 01:20 , Processed in 0.167746 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表