Is it possible to create procedure within another procedure? create procedure my_creator() begin select * from dummy; create procedure my_procedure() begin select * from dummy; end endThis block is executable and the procedure 'my_creator' is created. When I call this procedue 'my_creator', then the other procedure my_procedure is NOT created. Could maybe anybody help? Thanks in advance asked 04 Jan '18, 03:28 Baron Reimer Pods |
It is so, in case the body of any procedure contains a select statement, then the execution of the procedure will be ended once reaching this statement, so this select statement will be the last executed statement within the procedure without throwing any error. Moreover, if this procedure (which contains a select statement) is called within another procedure then the execution of this caller procedure will be stopped as well. Maybe this serves some logic or some intention!! answered 04 Jan '18, 08:26 Baron 1
I don't think so. If the procedure does a SELECT, the caller has to consume the according result set, so the procedure can continue its work. Say in dbisqlc, you would call RESUME to continue execution... See that answer for a detailed description...
(04 Jan '18, 11:22)
Volker Barth
|
Which version are you using? In 12.0.1 both procedures get created. Checked with
BTW what are you trying to achieve with this construction?
The statement 'select * from dummy' has cuased the problem!!! it has worked on Version 10.0.1 too after removing this statement:
create procedure my_creator() begin create procedure my_procedure() begin select * from dummy; end end