fix(address): ORA-06502 pe apart/scara/etaj token lung + strip city+region din adresa GoMag

Doua root cause-uri pentru ORA-12899 la importul comenzii #485841056:

1. Oracle ORA-06502: v_apart/v_scara/v_bloc/v_etaj in cauta_sau_creeaza_adresa
   declarate VARCHAR2(10/20/30) → Oracle mostenea constrangerea pe OUT parametrii
   din parseaza_adresa_semicolon → crash INAINTE de fix-ul overflow de la linia 521.
   Fix: marite la VARCHAR2(100).

2. Python format_address_for_oracle stripuia doar city exact, nu si 'city region'
   sau 'region city'. GoMag trimite adresa cu suffix 'Municipiul Bucuresti Bucuresti'
   (city+region) → token urias pentru apartament → declansa ORA-06502 de mai sus.
   Fix: incearca toate combinatiile city+region, region+city, city, region.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-04-28 10:31:05 +00:00
parent c8bed18978
commit e42b1f63b7
2 changed files with 23 additions and 11 deletions

View File

@@ -23,6 +23,9 @@ CREATE OR REPLACE PACKAGE PACK_IMPORT_PARTENERI AS
-- COM/ORAS/MUN ignorate (deja in p_localitate din GoMag city)
-- 23.04.2026 - hardening: SUBSTR(1,10) neconditionat dupa split, blocheaza
-- overflow rezidual pe prefix lung fara spatiu in primii 10 char.
-- 28.04.2026 - fix ORA-06502: v_bloc/scara/apart/etaj in cauta_sau_creeaza_adresa
-- marite la VARCHAR2(100) — Oracle OUT param mostenea constrangerea
-- VARCHAR2(10) si cadea pe "apartament 140 interfon 140 Municipiul..."
-- ====================================================================
-- CONSTANTS
@@ -975,10 +978,10 @@ CREATE OR REPLACE PACKAGE BODY PACK_IMPORT_PARTENERI AS
v_strada VARCHAR2(1000);
v_numar VARCHAR2(1000);
v_sector VARCHAR2(100);
v_bloc VARCHAR2(30);
v_scara VARCHAR2(10);
v_apart VARCHAR2(10);
v_etaj VARCHAR2(20);
v_bloc VARCHAR2(100);
v_scara VARCHAR2(100);
v_apart VARCHAR2(100);
v_etaj VARCHAR2(100);
v_id_tara NUMBER(10);
v_principala NUMBER(1);
begin