Hi all,

I’ve got this following problem and example:

SET TERM ^^ ;
create PROCEDURE DEBUG_TEST
returns (
  C BLOB SUB_TYPE 0, 
  M2 Numeric(18,0), 
  I2 VarChar(10))
AS
declare variable i varchar(4) = X'4131';
declare variable m numeric(18) = 0x2121;
declare variable b blob; 
begin
c = 0x40; 
m2 = m;
i2 = i; 
suspend;
end ^^
SET TERM ; ^^

As you can see, output BLOB “c” gets a binary value of 0x40, as per hex literal 
in Firebird 2.5, a
single byte.

However, when I now query the routine:

select * from debug_test;

The blob returned is:
64

That is, ‘64’ in characters! Two characters!

I’ve verified this in Database Workbench, BLOB Editor for hex values, returned 
is:
3634

And using f_blobsize function in FreeAdhocUDF, which returns a size of “2”.


Any clue why this happens?



With regards,

Martijn Tonies
Upscene Productions
http://www.upscene.com

Download Database Workbench for Oracle, MS SQL Server, Sybase SQL
Anywhere, MySQL, InterBase, NexusDB and Firebird!

Reply via email to