Windows 10. Firerbird 5.0.0.149.
Same result in Firebird 4.0.2.
C:\Firebird\5.0>chcp 1251
Текущая кодовая страница: 1251
C:\Firebird\5.0>isql -ch win1251
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database 'inet4://localhost:3055/D:\fbdata\5.0\test.fdb' user SYSDBA password 'masterkey' default character
set utf8;
SQL> exit;
C:\Firebird\5.0>isql -ch win1251
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect 'inet4://localhost:3055/D:\fbdata\5.0\test.fdb' user SYSDBA password 'masterkey';
Database: 'inet4://localhost:3055/D:\fbdata\5.0\test.fdb', User: SYSDBA
SQL> SET TERM ^;
SQL>
SQL> CREATE OR ALTER FUNCTION SP_TEST_FUNC
CON> RETURNS BLOB SUB_TYPE TEXT CHARACTER SET UTF8
CON> AS
CON> DECLARE RUNTOTAL BLOB SUB_TYPE TEXT;
CON> BEGIN
CON> RUNTOTAL = 'мама мыла раму';
CON>
CON> RETURN RUNTOTAL;
CON> END^
SQL>
SQL> CREATE OR ALTER PROCEDURE SP_TEST_PROC
CON> RETURNS (
CON> RUNTOTAL BLOB SUB_TYPE TEXT CHARACTER SET UTF8)
CON> AS
CON> BEGIN
CON> RUNTOTAL = 'мама мыла раму';
CON> SUSPEND;
CON> END^
SQL>
SQL> SET TERM ^;
SQL> SET SQLDA_DISPLAY ON;
SQL> SELECT RUNTOTAL
CON> FROM SP_TEST_PROC;
INPUT message field count: 0
OUTPUT message field count: 1
01: sqltype: 520 BLOB Nullable scale: 0 subtype: 1 len: 8 charset: 52 WIN1251
: name: RUNTOTAL alias: RUNTOTAL
: table: SP_TEST_PROC owner: SYSDBA
RUNTOTAL
=================
0:5
==============================================================================
RUNTOTAL:
мама мыла раму
==============================================================================
SQL> SELECT SP_TEST_FUNC() AS RUNTOTAL
CON> FROM RDB$DATABASE;
INPUT message field count: 0
OUTPUT message field count: 1
01: sqltype: 520 BLOB Nullable scale: 0 subtype: 1 len: 8 charset: 0 NONE
: name: SP_TEST_FUNC alias: RUNTOTAL
: table: owner:
RUNTOTAL
=================
0:8
==============================================================================
RUNTOTAL:
мама мыла раму
==============================================================================
Why OUTPUT charset: 0 NONE?
SQL script text
SET TERM ^;
CREATE OR ALTER FUNCTION SP_TEST_FUNC
RETURNS BLOB SUB_TYPE TEXT CHARACTER SET UTF8
AS
DECLARE RUNTOTAL BLOB SUB_TYPE TEXT;
BEGIN
RUNTOTAL = 'мама мыла раму';
RETURN RUNTOTAL;
END^
CREATE OR ALTER PROCEDURE SP_TEST_PROC
RETURNS (
RUNTOTAL BLOB SUB_TYPE TEXT CHARACTER SET UTF8)
AS
BEGIN
RUNTOTAL = 'мама мыла раму';
SUSPEND;
END^
SET TERM ^;
SELECT RUNTOTAL
FROM SP_TEST_PROC;
SELECT SP_TEST_FUNC() AS RUNTOTAL
FROM RDB$DATABASE;
Windows 10. Firerbird 5.0.0.149.
Same result in Firebird 4.0.2.
Why OUTPUT charset: 0 NONE?
SQL script text