如何用SQL对两个文件做比较

如何用SQL对两个文件做比较,第1张

比较两个数据库,可以用工具,比如toad等,也可以自己棚薯写存储过程来实现,偶介绍一个用sql来核对表结构是否一致,以此类推,大家可以写出对比索引是否一致,对比约束是否一致的sql,链蔽者该sql的缺点就是只能查出差异,却不知是那个表引起的:

select

case

when

a.cnt

=

b.cnt

then

'两个库并喊结构一致'

when

a.cnt

<>

b.cnt

then

'两个库结构不一致'

end

from

(select

count(*)

as

cnt

from

dba_tab_columns

t1,

dba_tab_columns@lnk_db2

t2

where

t1.owner

=

'TAOBAO'

and

t1.owner

=

t2.owner

and

t1.table_name

=

t2.table_name

and

t1.column_name

=

t2.column_name

and

t1.data_type

=

t2.data_type

and

t1.data_length

=

t2.data_length

and

t1.nullable

=

t2.nullable

and

nvl(t1.data_precision,

0)

=

nvl(t2.data_precision,

0)

and

nvl(t1.data_scale,

0)

=

nvl(t2.data_scale,

0))

a,

(select

count(*)

as

cnt

from

dba_tab_columns

where

owner

=

'TAOBAO')

b

List sqlFileList = new ArrayList()从文件读放内陵漏容到按分饥亮号放到sqlFileList public List readSqlFiles(List fileNameList) { List sqlList = new ArrayList()for (String fileName : fileNameList) { File myFile = new File(fileName)if (!myFile.exists()) { System.err.println("Can't Find " + fileName)continue} StringBuffer temp = new StringBuffer()try { BufferedReader in = new BufferedReader(new FileReader(myFile))String strwhile ((str = in.readLine()) != null) { temp.append(str)} in.close()} catch (IOException e) { e.getStackTrace()} String sqls[] = temp.toString().split("")for (String sql : sqls) { sqlList.add(sql)} } return sqlList}然后一句句的执尺肢烂行for (String sql : sqlList) {pstmt = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY)pstmt.execute()}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12326065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存