I'm using Firebird Embedded v2.5. How to use procedures in query (SELECT) ?
My procedure:
SET TERM ^ ;
CREATE PROCEDURE FN_TEST( Y INTEGER )
RETURNS( X INTEGER)
AS
BEGIN
X = Y + 1;
END^
SET TERM ; ^
I want to list some field of table modified by some procedure, like this:
SELECT some_table_field_1,
fn_test( 4 ) AS zzz,
some_table_field_2,
fn_test( some_table_field_2 ) AS field_2_modified
FROM tb_test
Need results (table):
some_table_field_1 zzz some_table_field_2 field_2_modified
---------------------------------------------------------------------------
aaa 5 14 15
bbb 5 23 24
www 5 75 76
This thing works fine in PostgreSQL, but I don't know how to do this in Firebird.
Use UDF in order to manage calculation on fields. Stored procedure are admited only in the FROM Clause.
You can use EXECUTE BLOCK Please have a look EXECUTE BLOCK
Try this
Try
As JustMe said, you can't call stored procedures in a select. You can call stored procedure only in the FROM section. Another solution for your problem is to create a selectable procedure like this:
After run that code, you can simply query
select * from myproc(4)
and get what you want.