You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# SQL Procedure to find Program Usage recursively using DSPPGMREF
2
2
3
-
Given a program (or any of the objects that DSPPGMREF handles), the PGM_REFS procedure will find all the obects that the program uses, and then recursively find all that objects that they use, and so on, to an essentally unlimited depth.
3
+
Given a program (or any of the objects that DSPPGMREF handles), the PGM_REFS procedure will find all the obects that the program uses, and then recursively finds all that objects that they use, and so on, to an essentally unlimited depth.
4
4
5
-
This is the product of my experimentation with PL/SQL. It may be short on error handling, and it doesn't do any validity checking on the paremeters.
5
+
This is the product of my experimentation with PL/SQL. It may be short on error handling, and it doesn't do any validity checking on the parameters.
6
6
7
7
If you have more experience than me, please feel free to suggest better coding techniques.
8
8
9
-
So far I have not found a decent manual or turorial. If you have any I'd like to know.
9
+
So far I have not found a decent manual or turorial. If you know of any please pass them on.
10
10
11
-
My primary source was trial and error, with help
12
-
from these articles by Ted Holt in IT Jungle:
11
+
My primary technique was trial and error, with help
12
+
from these articles on IT Jungle:
13
13
[Ted HolT Article 1](https://www.itjungle.com/2017/06/12/guru-error-handling-sql-pl-part-1/) and
and browsing [Scott Forstie Gists on Github](https://gist.github.com/forstie
@@ -20,17 +20,24 @@ or X-Analysis. If you don't have one, this might be somewhat useful.
20
20
21
21
## pgm_refs_Tbl.sql
22
22
23
-
This is the DDL to create the file that the procedure builds.
23
+
This is the DDL to create the REFS file that the procedure builds.
24
24
25
25
Change the library and then run this first.
26
26
27
27
## pgm_refs.sql
28
-
This is the code to create the PGM_REFS procedure. The library in which the REFS file is build needs to be changed to suit your environment.
28
+
This is the code to create the PGM_REFS procedure. The library in which the REFS file is built needs to be changed to suit your environment.
29
29
30
30
## pgm_refs_test.SQL
31
31
32
-
These are some samples of calling the procedure to test it. I used iACS Run SQL scripts. You could also call it in a CL program using the RUNSQLSTM command.
32
+
These are some samples of calling the procedure to test it. I used iACS Run SQL Scripts. You could also call it in a CL program using the RUNSQLSTM command. (Or run it in STRSQL.)
33
33
34
34
## Sample Output File Contents
35
35
36
-

36
+

37
+
38
+
## Debugging
39
+
40
+
I had difficulty debugging this.
41
+
42
+
1. I was working on PUB400.COM and the System Debugger in iACS shows the source, but it would never stop on breakpoints.
43
+
2. The DSPPGMREF outfiles are in QTEMP. You can make a single change to put them in one of you libraries if you want to look at them. You will also have to comment out the delete at the bottom of the loop.
0 commit comments