There is nice BLR (binary) to BLR (text) decoder in Firebird itself. You can enable it with set blob all
(or set blobdisplay all
). You can call it from ISQL:
SQL> set term !;
SQL> create procedure p1
CON> as
CON> declare n integer = 1;
CON> begin
CON> n = n * 2;
CON> end!
SQL> set term ;!
SQL>
SQL> set blob all;
SQL> commit;
SQL>
SQL> select rdb$procedure_blr from rdb$procedures where rdb$procedure_name = P1 ;
RDB$PROCEDURE_BLR
=================
1a:3
==============================================================================
RDB$PROCEDURE_BLR:
blr_version5,
blr_begin,
blr_message, 1, 1,0,
blr_short, 0,
blr_begin,
blr_declare, 0,0, blr_long, 0,
blr_assignment,
blr_literal, blr_long, 0, 1,0,0,0,
blr_variable, 0,0,
blr_stall,
blr_label, 0,
blr_begin,
blr_begin,
blr_assignment,
blr_multiply,
blr_variable, 0,0,
blr_literal, blr_long, 0, 2,0,0,0,
blr_variable, 0,0,
blr_end,
blr_end,
blr_end,
blr_send, 1,
blr_begin,
blr_assignment,
blr_literal, blr_short, 0, 0,0,
blr_parameter, 1, 0,0,
blr_end,
blr_end,
blr_eoc
==============================================================================