Select funciona no pl/sql developer mas não no dataset

Eu fiz um dataset avançado e no onSync pus uma leitura de um banco de dados externo, o do Protheus.

O objetivo é o de listar todas as pessoas que fazem aniversário na data corrente e ver também os dos seguintes três dias.

O formato original do campo RA_NASC é yyyymmdd e seu tipo é CHAR(8) na tabela. Eu não preciso do ano, de modo que faço uma extração dos quatro últimos dígitos, transformo-os em algarismos e desejo selecionar um intervalo entre duas datas.
Como no exemplo na SQL abaixo, informo com o mesmo formato a data corrente e mais três dias (327 e 330, representado 27/03 e 30/3);

A SQL funciona perfeitamente no aplicativo PL/SQL Developer, mas não funciona no dataset no momento do sincronismo.

Já tentei várias abordagens para ver se conseguia resolver isto no ambiente do Fluig, mas foi inútil.

Há uma mensagem no server.log, como resultado do ‘try’-‘catch’ que diz:

ERRO==============> java.sql.SQLSyntaxErrorException: ORA-01722: número inválido

Minha última tentativa de tentar fazer funcionar a SQL dentro dataset é o abaixo:

SELECT DISTINCT ra_nome,ra_nasc, ra_xfornec FROM SRA010 R WHERE R.RA_SITFOLH <> ‘D’ AND TO_NUMBER(SUBSTR(R.RA_NASC,5,4),‘9999’)*1 >= 327 AND TO_NUMBER(SUBSTR(R.RA_NASC,5,4),‘9999’)*1 <= 330 AND R.RA_CATFUNC IN (‘P’,‘E’,‘M’,‘A’) AND R.D_E_L_E_T_ = ’ ’
UNION
SELECT DISTINCT ra_nome,ra_nasc,ra_xfornec FROM SRA020 S WHERE S.RA_SITFOLH <> ‘D’ AND TO_NUMBER(SUBSTR(S.RA_NASC,5,4),‘9999’)*1 >= 327 AND TO_NUMBER(SUBSTR(S.RA_NASC,5,4),‘9999’)*1 <= 330 AND S.RA_CATFUNC IN (‘P’,‘E’,‘M’,‘A’) AND S.D_E_L_E_T_ = ’ ’ ORDER BY RA_NOME