我喜欢从查询结果中删除空行和空格,并使用下面的代码,我做错了什么?我有 2 个连接从不同的用户那里获得结果。我使用 get.ddl 获取程序定义并尝试比较它们是否相同。下面是我的 2 个程序 ddl 结果,它们是相同的,但由于空行结果显示不一样。
第一个查询结果:
CREATE OR REPLACE PROCEDURE "HELL_"
as
begin
dbms_output.put_line('Hello!');
end;
第二个查询结果(有空行)
CREATE OR REPLACE PROCEDURE "HELL_"
as
begin
dbms_output.put_line('Hello!');
end;
我的代码
string result1 = "";
string result2 = "";
using (OracleConnection conn1 = new OracleConnection(oradb1))
{
conn1.Open();
using (OracleCommand crtCommand = new OracleCommand("select REGEXP_REPLACE(dbms_metadata.get_ddl('PROCEDURE','HELL_'),('user1...'),'', 1, 0, 'i') from dual", conn1))
{
result1 = crtCommand.ExecuteScalar().ToString();
}
}
using (OracleConnection conn2 = new OracleConnection(oradb2))
{
conn2.Open();
using (OracleCommand crtCommand = new OracleCommand("select REGEXP_REPLACE(dbms_metadata.get_ddl('PROCEDURE','HELL_'),('user2...'),'', 1, 0, 'i') from dual", conn2))
{
result2 = crtCommand.ExecuteScalar().ToString();
}
}
var lines1 = result1.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).Where(l => l.Trim().Length > 0).Select(l => l.Trim());
var lines2 = result2.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).Where(l => l.Trim().Length > 0).Select(l => l.Trim());
if (lines1.SequenceEqual(lines2))
{
MessageBox.Show("same");
}
else
{
MessageBox.Show("not same");
}