The problem is the termination character for each instruction.
For example, if you have a script file called test.sql with inserts and a stored procedure definition, then your defintion will be:
test.sql
insert into mytable (a) values ('a')@
create procedure test ()
begin
insert into mytable (a) values ('b');
end@
And you will execute the script via this command
db2 -td@ -f test.sql
The @ sign indicates the termination character (option -td@ to indicate the Termination character Delimiter). Note that this is different that ; (semi colon) because the ; is used as termination character inside a routine (stored procedure, udf, trigger).
As you can see, the 'a' value will be inserted in the first insert. The 'b' value will be inserted from the stored procedure.
In order o be sure what you inserted, ou can query the DB2 catalog in order to see the defined stored procedures, and the 'bodies'.