Afkorten tekstveld via cast lukt niet bij laden data uit Metacom

Bij het laden van data uit Metacom in SQL Server merken we dat alle Metacom-velden een varchar(max) lengte hebben. Dit staat ook in de PostgreSQL-database van Metacom.

Het kopieren gaat met:

create or replace table mcTABEL@sql
as
select *
from  TABEL@mc

We hebben geprobeerd de veldlengte onderweg te veranderen via cast, maar deze nieuwe lengte komt niet door. Hoe kan ik de lengte van tekstvelden onderweg beperken?

Het probleem is reproduceerbaar met:

create or replace table mc_dpersoneel@sql
as
select cast(dummy_string_int64 as varchar2(2) not null) korter
from   dual@datadictionary

Het veld korter is nog steeds onbeperkt qua lengte en optioneel qua inhoud.

Dit probleem speelt nog in release 22.0.699 en 22.1.248-BETA:

create or replace table test@inmemorystorage
as
select code code
,      cast(code as varchar2(2)) alt
from   exactonlinerest..journals@eol

select name
,      DATABASE_DATA_TYPE
,      MAX_LENGTH
from   SYSTEMTABLECOLUMNS@DataDictionary
where  table_name = 'TEST'
and    provider_name='InMemoryStorage'
and    name != 'rowid$'

met als resultaat:

Naam Database Data type Maximum Lengte
alt varchar2 null
code varchar2 20

Dit gedrag is ongewijzigd in release 24.0.180 met hetzelfde resultaat.

Deze vraag is automatisch gesloten na 1 week inactiviteit. Het laatste gegeven antwoord is gemarkeerd als oplossing.

Gelieve een nieuwe vraag te stellen via een apart topic als het probleem opnieuw optreedt. Gelieve in de nieuwe vraag een link naar dit topic op te nemen door de URL er van in de tekst te plakken.

Dit topic is 3 dagen na het laatste antwoord automatisch gesloten. Nieuwe antwoorden zijn niet meer toegestaan.