OK, I did that and got the global variables working so now I think can refer to them from any procedure. Thanks for your help on that and now I'll be able to implement it.

I'm still having a problem with the calling procedure (see below). I have 5 procedure calls in this file. The first 3 work fine with no problems. On the last 2 calls, I'm getting an SP2-0552 "Bind variable "V_VIS_INN1_FAN_PTS not declared" on the call for procedure pr_load_hitting_stats and SP2-0552 "V_VIS_SP_WHIP9_ERA not declared" on the call for procedure pr_load_pitching_stats. When I remove the colons from the bind variables, I get PLS-00201 "Identifier V_VIS_INN1_FAN_PTS not declared" for procedure pr_load_hitting_stats and PLS-00201 "Identifier V_VIS_SP_WHIP9_ERA not declared" for procedure pr_load_pitching_stats. I have all of the variables declared the same way in these last 2 procedures as in the first 3 procedures that are called just prior, so I can't figure out why I'm getting these errors.

At this point, in the specification I have all 5 procedures and their variables (parameters) declared, and in the package body the 5 procedures and their variables (parameters) declared, and have some statements that select values from database tables into the defined variables. All of the variables are declared as OUT. All of the data types are correct.

I don't have the space to paste everything, so I'll post a specification, package body, and the calling procedure of pr_load_hitting_stats.

This is a sample from the specification:

CREATE OR REPLACE PACKAGE play_games_p AS
.
.
.
PROCEDURE pr_load_hitting_stats (
v_vis_inn1_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn2_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn3_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn4_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn5_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn6_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn7_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn8_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn9_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn1_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn2_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn3_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn4_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn5_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn6_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn7_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn8_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn9_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE);

Here is a sample from the package body:

CREATE OR REPLACE PACKAGE BODY play_games_p AS
g_vis_inn1_fname VARCHAR2(10);
g_vis_inn1_lname VARCHAR2(25);
.
.
.
PROCEDURE pr_load_hitting_stats (
v_vis_inn1_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn2_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn3_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn4_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn5_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn6_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn7_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn8_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_vis_inn9_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn1_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn2_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn3_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn4_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn5_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn6_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn7_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn8_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE,
v_home_inn9_fan_pts OUT hitting_stats_weekly.fan_pts%TYPE)
IS BEGIN
BEGIN
BEGIN
SELECT fan_pts INTO v_vis_inn1_fan_pts FROM hitting_stats_weekly
WHERE week_no='1' AND fname=g_vis_inn1_fname AND lname=g_vis_inn1_lname;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
.
.
.
END pr_load_hitting_stats;
END play_games_p;

NOTE: g_vis_inn1_fname and g_vis_inn1_lname obtained their values from an earlier procedure in this package.

And here is the entire file that calls the procedures (the 1st 3 procedures work with no problem; the last 2 fail with the SP2-0552 Bind variable not declared errors:

SET serveroutput on size 1000000
SPOOL CALL_PROCEDURES.LOG
@cre_msg.sql
.
.
.
PROMPT CALL play_games_p.pr_load_hitting_stats
VAR v_vis_inn1_fan_pts NUMBER(3)
VAR v_vis_inn2_fan_pts NUMBER(3)
VAR v_vis_inn3_fan_pts NUMBER(3)
VAR v_vis_inn4_fan_pts NUMBER(3)
VAR v_vis_inn5_fan_pts NUMBER(3)
VAR v_vis_inn6_fan_pts NUMBER(3)
VAR v_vis_inn7_fan_pts NUMBER(3)
VAR v_vis_inn8_fan_pts NUMBER(3)
VAR v_vis_inn9_fan_pts NUMBER(3)
VAR v_home_inn1_fan_pts NUMBER(3)
VAR v_home_inn2_fan_pts NUMBER(3)
VAR v_home_inn3_fan_pts NUMBER(3)
VAR v_home_inn4_fan_pts NUMBER(3)
VAR v_home_inn5_fan_pts NUMBER(3)
VAR v_home_inn6_fan_pts NUMBER(3)
VAR v_home_inn7_fan_pts NUMBER(3)
VAR v_home_inn8_fan_pts NUMBER(3)
VAR v_home_inn9_fan_pts NUMBER(3)

EXEC play_games_p.pr_load_hitting_stats(:v_vis_inn1_fan_pts,:v_vis_inn2_fan_pts,:v_vis_inn3_fan_pts,:v_vi s_inn4_fan_pts,:v_vis_inn5_fan_pts,:v_vis_inn6_fan_pts,:v_vis_inn7_fan_pts,:v_vis_inn8_fan_pts,:v_vi s_inn9_fan_pts,:v_home_inn1_fan_pts,:v_home_inn2_fan_pts,:v_home_inn3_fan_pts,:v_home_inn4_fan_pts,: v_home_inn5_fan_pts,:v_home_inn6_fan_pts,:v_home_inn7_fan_pts,:v_home_inn8_fan_pts,:v_home_inn9_fan_ pts)
.
.
.
PROMPT END CALL PROCEDURES SCRIPT
SET serveroutput off
SHOW ERRORS
SPOOL OFF