Java/sql找出oracle数据库有空格的列
1.java方式
String table_sql = "select table_name from user_tables";//所有用户表
List<String> table_list = getSession().createSQLQuery(table_sql).list();
for (int index = 0; index < table_list.size(); index++) {
String tab = table_list.get(index);
System.out.println("表名 "+tab);
//表的所有列及数据类型
String column_sql = "select column_name,data_type,data_length from user_tab_columns where table_name=upper('"+tab+"')";
List<Object[]> column_list = getSession().createSQLQuery(column_sql).list();
for (int j = 0; j < column_list.size(); j++) {
String column = (String)column_list.get(j)[0];//列名
//String dataType = (String)column_list.get(j)[1];//数据类型
//查询是否有空格
String checkColumn_sql = "select count(rownum) from "+tab+" where "+column+" like ' %' or "+column+" like '% ' and rownum<10 ";
BigDecimal count = (BigDecimal)getSession().createSQLQuery(checkColumn_sql).uniqueResult();
Integer num = count.intValue();
if(num > 0){
//System.out.println("列名 "+column+" 数据类型 "+dataType+" 含空格数量 "+num);
System.out.println("update "+tab+" set "+column+" = trim("+column+") where "+column+" like ' %' or "+column+" like '% ';");
}
}
System.out.println("======================================");
2.sql方式
declare
v_fid varchar2(1000);--用来存在表名的变量
cursor c_cur is select table_name from user_tables;--获得所有的用户表名(如果表多或数据量大可以加where条件)
cursor c_tab(c_cur varchar2) is select column_name from user_tab_columns where table_name=c_cur;--获得对应表的所有列名
v_column user_tab_columns.column_name%type;
v_sql varchar2(1000);
v_count varchar2(100);
begin
open c_cur;
loop
fetch c_cur into v_fid;
exit when c_cur%notfound;
dbms_output.put_line('========');
dbms_output.put_line('表名:'||v_fid); open c_tab(v_fid);
loop
fetch c_tab into v_column;
exit when c_tab%notfound; v_sql:='select count(rownum) from '||v_fid||' where '||v_column||' like '' %'' or '||v_column||' like ''% '' and rownum<10 ';
execute immediate v_sql into v_count; if v_count > 0 then
begin
dbms_output.put_line(v_column);--输出列名
end;
end if;
end loop;
close c_tab; end loop;
close c_cur;
end;
Java/sql找出oracle数据库有空格的列的更多相关文章
- ms sql server,oracle数据库实现拼接一列的多行内容
项目中要将查询出的一列的多行内容拼接成一行,如下图:ypmc列. ms sql server: 网上查到相关资料如下:http://blog.csdn.net/rolamao/article/deta ...
- PL/SQL Developer 连接Oracle数据库详细配置方法
PL/SQL Developer 连接Oracle数据库详细配置方法 近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server).本文现对监听配置作一简单介绍,给出 ...
- sql server和oracle数据库
sql server和oracle数据库安装按照官方教程即可:以及他们相应的管理工具,sql server management studio自带的,oracle的管理工具PLSQL需要单独下载安装, ...
- 将现有的sql脚本导入 Oracle 数据库,中文乱码问题
将现有的sql 脚本导入 Oracle数据库 比如 在windows 系统下,可以写一个 bat 来实现直接导入 如:bat 中的内容如下,logs.log 将会记录执行日志 sqlplus user ...
- java.sql.SQLException: ORA-01578: ORACLE 数据块损坏问题解决办法
错误信息: java.sql.SQLException: ORA-01578: ORACLE 数据块损坏 (文件号 17, 块号 315703) ORA-01110: 数据文件 17: 'D:\ORA ...
- JAVA通过JDBC连接Oracle数据库详解【转载】
JAVA通过JDBC连接Oracle数据库详解 (2011-03-15 00:10:03) 转载▼http://blog.sina.com.cn/s/blog_61da86dd0100q27w.htm ...
- SQL语句往Oracle数据库中插入日期型数据(to_date的用法)
Oracle 在操作数据库上相比于其他的 T-sql 有微小的差别,但是在插入时间类型的数据是必须要注意他的 to_date 方法,具体的情况如下: --SQL语句往Oracle数据库中插入日期型数据 ...
- 简单的PL/SQl链接远程ORACLE数据库方法
简单的PL/SQl链接远程ORACLE数据库方法 PLSQL Developer新手使用教程 pasting
- 在mybatis中使用存储过程报错java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列: PLS-00905: 对象 USER1.HELLO_TEST 无效 ORA-06550: 第 1 行, 第 7 列:
hello_test是我的存储过程的名字,在mapper.xml文件中是这么写的 <select id="getPageByProcedure" statementType= ...
随机推荐
- 【CSS】position(定位)属性
关于CSS position,来自MDN的描述: CSS position属性用于指定一个元素在文档中的定位方式.top.right.bottom.left 属性则决定了该元素的最终位置. 然后来看看 ...
- paper 141:some paper with ComputerCV、MachineLearning[转]
copy from:http://blog.csdn.net/zouxy09/article/details/8550952 一.特征提取Feature Extraction: · S ...
- 如何做LR自动关联和手动关联?
一.什么时候需要关联 1.关联的含义 关联的含义A(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容 ...
- C# 语法特性
C# 2.0 1.泛型(Generics). 2.泛型方法.泛型委托.泛型接口. 3.泛型约束(constraints). 4.部分类(partial). 5.匿名方法. C#3.0/C#3.5 1. ...
- javaweb登录验证码的实现
第一种 第一步: JSP <li><input name="validCode" id="validCode" type="te ...
- 实验吧关于隐写术的writeUp(二)
0x01 Black Hole 1.下载文件后,发现打不开,放到kali中.用命令file 分析一下文件 root@trial:~/Documents# file blackhole.img blac ...
- java.lang
package cn.sxt; import java.lang.*; public class BooleanDemo { public static void main(Stri ...
- 转 MySQL乐观锁和悲观锁
悲观锁(Pessimistic Lock) 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁.传统的关系型数据库 ...
- sql server日志传送实践(基于server 2008 R2)
SQL Server 2008 R2 主从数据库同步 相关参考:http://blog.itpub.net/30126024/viewspace-2639526/ sql server日志传送(基于s ...
- poi解析word文档转换成html(包括图片解析)
需求:将本地上传的word文档解析并放入数据库中 代码: import java.io.ByteArrayOutputStream;import java.io.File;import java.io ...