PL/SQL is supported by
ctags per the documentation mentioned here. However I can't get it working properly. Particularly I found tags were not generated for some of the functions. So I was reading through the ctags manaual looking for the answer and then I saw this:
After I ran it I got this:
ctags --list-kinds=SQL c cursors d prototypes [off] f functions F record fields l local variables [off] L block label P packages p procedures r records [off] s subtypes t tables T triggers v variables i indexes e events U publications R services D domains V views n synonyms x MobiLink Table Scripts y MobiLink Conn Scripts
So prototypes are disabled by default. That looks promising. I enabled it by doing this:
ctags --SQL-kinds=+dr --language-force=SQL *.*
And All the tags are generated properly!