Quote Originally Posted by alanv25
...or replacing the SQL*Plus "EXECUTE" shortcut with the full PL/SQL "BEGIN ... END;" block syntax.

I'm not sure what you mean here. Can you look at my code in the previous msg and give me an example?
SQL*Plus provides the EXECUTE command as a convenient shortcut so you can use

EXEC blah

in place of the full PL/SQL

BEGIN
blah;
END;
/

A restriction of SQL*Plus commands like EXECUTE is that they must be entered on one line, or broken using the continuation character ("-" by default). Therefore

EXEC blah(blah, blah, blah)

is the same as

EXEC blah -
( blah -
, blah -
, blah )

which is also the same as

BEGIN
blah
( blah
, blah
, blah );
END;
/

Quote Originally Posted by alanv25
Making procedure parameters into global variables sounds like a bit of a hack to me.

I'm not sure how else to reference a variable from one procedure that was declared and populated in another procedure within in the same package.
Sorry, but I'm afraid that also sounds a bit of a hack. Why can't you pass into each procedure the exact values it needs?

Regarding the procedure calls / bind variables / data types not working as expected, can you narrow it down to a repeatable test case I can try out myself?