在我的例子中,我必须比较两个不同数据库的列数据类型。以下是示例代码。
ResultSetMetaData metadataSrc = Src_rs.getMetaData(); // here Src_rs is source resultset
ResultSetMetaData metadataTar= Tar_rs.getMetaData(); // here Tar_rs is target resultset
int countSrc = metadataSrc.getColumnCount();
for (int i = 1; i <= countSrc; i++) {
这包括比较两个不同DB模式中的表。其要求是遍历已知的一组表,并确保两个模式中的表数据是相同的。目前,我们正在Oracle上执行类似的操作,其查询如下:
(A)每一表;
SELECT COUNT(*) FROM (SELECT * FROM SCHEMA1.MY_TABLE MINUS (SELECT * FROM SCHEMA2.MY_TABLE));
但是,当涉及到大型对象时,上面的查询在oracle中有一个限制:
ERROR at line 1: ORA-00932: inconsistent datatypes: expected - got BLOB
显然,当涉及到大型对象(如 )时,
在Oracle数据库中,select语句select * from tablename不按插入顺序输出。在一些文章中,我们发现Oracle数据库基于Rowid存储行信息。
我们在一个基于Java的web应用程序中使用Oracle,并且要求在每个模块中按插入顺序显示数据。因此,在每个表上应用order by子句是不可行的,并且会降低应用程序的性能。select语句是否还有按插入顺序返回数据的其他方式?
使用的Oracle版本是"Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production version 19