I didn’t find much data about the internals of PL/Scope.
I’d like to use it to analyze identifiers in PL/SQL scripts. Does it work only on Oracle 11g instances? Can I reference its dlls to use it on a machine with only ORACLE 9/10 installed?
In a related manner, do I have to execute the script in order for its identifiers to be analyzed?
To answer the easy question first, we do not have to execute the program unit. We have to compile it. That is relatively simple:
(Credit where credit is due, I took that query from my mate Tim Hall’s Oracle-Base site)
Incidentally, note that PL/Scope operates on named PL/SQL programs (procedures, functions, packages, etc). It doesn’t work on anonymous PL/SQL blocks. I mention this because you talk of “scripts” rather than programs. It won’t do anything with a SQL script containing some PL/SQL blocks.
The other thing to bear in mind is that PL/Scope populates tables on the SYSAUX tablespace, and can chew up a lot of storage. That’s why it isn’t run by default, and it’s why we should use it judiciously.
As for backwards compatibility: it is a new feature in 11g, and it is a compiler feature at that. So I doubt whether it is something you could just crowbar into a 10g install.