There's a really simple amswer to how Hal knows Oracle's identity. He was the freakin Spectre. And he remembers his time as Spectre as far as we know. Since he seemed to keep an eye on his old friends and Kyle, he probably saw them interect with Oracle, got curious and found out. Barbara may be good, but she's got nothing that can stop the Spectre.