You are not logged in.
Hello,
I'm writing because I have some problem with calling stored procedure from Oracle 11 XE database using mORMot. I know that calling stored procedure is not the best solution but for now I have no another choice. But after some hours of looking the problem I'm confused and I have no idea what is wrong in my code.
I have big (93 parameters) stored procedure which writes some data to the database. Procedure works as facade template - just calls other internal procedures which performs the task. Oracle procedure header looks like:
create or replace procedure u_eks.SP_WAGONY_OBECNE_INSERT(
-- Identyfikatory
io_wz_id in out integer, --u_eks.t_wagony_zdania.wz_id%type,
io_wz_we_id in out integer, --u_eks.t_wagony_zdania.wz_we_id%type,
io_wz_wp_id in out integer, --u_eks.t_wagony_zdania.wz_wp_id%type,
-- dane podstawienia
i_w_nr_wagonu in varchar2, --u_eks.t_wagony_zdania.w_nr_wagonu%type,
i_w_seria in varchar2, --u_eks.t_wagony_zdania.w_seria%type,
i_w_rodz_numer in u_eks.t_wagony_zdania.w_rodz_numer%type,
i_w_zly_numer in u_eks.t_wagony_zdania.w_zly_numer%type,
i_w_tara_z_bel in u_eks.t_wagony_zdania.w_tara_z_belki%type,
i_w_tara_przewozowa in u_eks.t_wagony_zdania.w_tara_przewozowa%type,
i_w_tara_dekl_lad in u_eks.t_wagony_podstawienia.w_tara_dekl_lad%type,
i_w_tara_dekl_lad_rodzaj in u_eks.t_wagony_podstawienia.w_tara_dekl_lad_rodzaj%type,
i_w_gr_obciaz in u_eks.t_wagony_podstawienia.w_gr_obciaz%type,
i_w_masa_lad in u_eks.t_wagony_podstawienia.w_masa_lad%type,
i_wp_masa_lad_przewoz in u_eks.t_wagony_podstawienia.wp_masa_lad_przewoz%type,
i_w_masa_tow in u_eks.t_wagony_zdania.w_masa_tow%type,
i_w_masa_prz_l in u_eks.t_wagony_podstawienia.w_masa_prz_l%type,
i_w_masa_prz_t in u_eks.t_wagony_zdania.w_masa_prz_t%type,
i_w_masa_przew in u_eks.t_wagony_zdania.w_masa_przew%type,
i_w_masa_opak_l in u_eks.t_wagony_podstawienia.w_masa_opak_l%type,
i_w_masa_opak_t in u_eks.t_wagony_zdania.w_masa_opak_t%type,
i_w_masa_wydz_lad in u_eks.t_wagony_podstawienia.w_masa_wydz_lad%type,
i_w_masa_wydz_tow in u_eks.t_wagony_zdania.w_masa_wydz_tow%type,
i_w_ilosc_osi in u_eks.t_wagony_podstawienia.w_ilosc_osi%type,
i_w_ilosc_szt_lad in u_eks.t_wagony_podstawienia.w_ilosc_szt_lad%type,
i_w_ilosc_opak_tow in u_eks.t_wagony_zdania.w_ilosc_opak_tow%type,
i_w_ilosc_szt_tow in u_eks.t_wagony_zdania.w_ilosc_szt_tow%type,
i_w_stezenie_lad in u_eks.t_wagony_podstawienia.w_stezenie_lad%type,
i_w_stezenie_tow in u_eks.t_wagony_zdania.w_stezenie_tow%type,
i_w_id_ladunku in u_eks.t_wagony_podstawienia.w_id_ladunku%type,
i_w_id_nadawcy in u_eks.t_wagony_podstawienia.w_id_nadawcy%type,
i_w_id_towaru in u_eks.t_wagony_zdania.w_id_towaru%type,
i_w_towar_opis_dod in varchar2, --u_eks.t_wagony_zdania.w_towar_opis_dod%type,
i_w_id_odbiorcy in u_eks.t_wagony_zdania.w_id_odbiorcy%type,
i_w_id_r25 in u_eks.t_wagony_podstawienia.w_id_r25%type,
io_w_lp_r25 in out integer,
i_w_id_r25t in u_eks.t_wagony_podstawienia.w_id_r25t%type,
io_w_lp_r25t in out integer,
i_w_id_lis_prz in u_eks.t_wagony_podstawienia.w_id_lis_prz%type,
i_w_lp_lis_prz in u_eks.t_wagony_podstawienia.w_lp_lis_prz%type,
-- data i czas ukończenia załadunku
i_w_czas_uk_za in u_eks.t_wagony_zdania.w_czas_uk_za%type,
-- data i czas ukończenia wyładunku
i_w_czas_uk_wy in u_eks.t_wagony_zdania.w_czas_uk_wy%type,
i_w_czas_uk_wy_pol_auto in u_eks.t_wagony_zdania.w_czas_uk_wy_pol_auto%type,
-- data i czas rozpoczęcia załadunku
i_w_czas_roz_za in u_eks.t_wagony_zdania.w_czas_roz_za%type,
-- data i czas rozpoczęcia dyspozycji
i_w_czas_dysp_od in u_eks.t_wagony_podstawienia.w_czas_dysp_od%type,
-- data i czas ponownego dysponowania wagonów
i_w_czas_ponow_dysp in u_eks.t_wagony_zdania.w_czas_ponow_dysp%type,
-- Dodatkowe czasy pomniejszające czas pobytu
i_w_czas_roz_odprawy in u_eks.t_wagony_zdania.w_czas_roz_odprawy%type,
i_w_czas_odprawy in u_eks.t_wagony_zdania.w_czas_odprawy%type,
i_w_czas_roz_czyn_adm in u_eks.t_wagony_zdania.w_czas_roz_czyn_adm%type,
i_w_czas_czyn_adm in u_eks.t_Wagony_Zdania.w_Czas_Czyn_Adm%type,
i_w_id_p_podst in u_eks.t_wagony_zdania.w_id_p_podst%type,
i_w_lp_p_podst in u_eks.t_wagony_zdania.w_lp_p_podst%type,
i_w_vat in u_eks.t_wagony_zdania.w_vat%type,
i_w_zmiana_tary in u_eks.t_wagony_zdania.w_zmiana_tary%type,
i_w_podw_op_lad in u_eks.t_wagony_zdania.w_podw_op_lad%type,
i_w_podzial_masy_l in u_eks.t_wagony_podstawienia.w_podzial_masy_l%type,
i_w_podzial_masy_t in u_eks.t_wagony_zdania.w_podzial_masy_t%type,
i_w_akt_hamul_p in u_eks.t_wagony_podstawienia.w_akt_hamul_p%type,
i_w_akt_hamul_z in u_eks.t_wagony_zdania.w_akt_hamul_z%type,
i_w_dlugosc in u_eks.t_wagony_zdania.w_dlugosc%type,
i_w_ciez_ham_1 in u_eks.t_wagony_zdania.w_ciez_ham_1%type,
i_w_ciez_ham_2 in u_eks.t_wagony_zdania.w_ciez_ham_2%type,
i_w_ciez_ham_pr in u_eks.t_wagony_zdania.w_ciez_ham_pr%type,
i_w_masa_przest in u_eks.t_wagony_zdania.w_masa_przest%type,
i_w_typ_hamulca in u_eks.t_wagony_zdania.w_typ_hamulca%type,
i_w_rodzaj_hamul in u_eks.t_wagony_zdania.w_rodzaj_hamul%type,
i_w_hamul_oerl in u_eks.t_wagony_zdania.w_hamul_oerl%type,
i_w_hamul_nast in u_eks.t_wagony_zdania.w_hamul_nast%type,
i_wz_uzyt_wag_kod_liter in varchar2, --u_eks.t_wagony_zdania.wz_uzyt_wag_kod_liter%type,
i_wz_uzyt_wag_kod_cyfr in varchar2, --u_eks.t_wagony_zdania.wz_uzyt_wag_kod_cyfr%type,
i_w_ub_ub_id in u_eks.t_wagony_podstawienia.w_ub_ub_id%type,
i_wz_ub_ub_id in u_eks.t_wagony_zdania.w_ub_ub_id%type,
i_wz_un_un_id in u_eks.t_wagony_zdania.w_un_un_id%type,
i_w_cpw_id in u_eks.t_wagony_zdania.w_cpw_id%type,
i_w_dysp_wag_id in integer,
i_w_dysp_wag_typ in number,
i_w_import in u_eks.t_wagony_podstawienia.w_import%type,
i_w_eksport in u_eks.t_wagony_zdania.w_eksport%type,
i_w_odmowa in u_eks.t_wagony_zdania.w_odmowa%type,
i_w_lad_uszkodz in u_eks.t_wagony_podstawienia.w_lad_uszkodz%type,
i_w_ilosc_plomb_tow in u_eks.t_wagony_zdania.w_ilosc_plomb_tow%type,
i_we_tr_tr_id in u_eks.t_wagony_eksp_id.we_tr_tr_id%type,
i_w_lad_zamroz in u_eks.t_wagony_podstawienia.w_lad_zamroz%type,
i_w_lad_zamroz_prot in u_eks.t_wagony_podstawienia.w_lad_zamroz_prot%type,
-- Medium
i_w_medium_gt_id in u_eks.t_wagony_podstawienia.w_medium_gt_id%type,
-- identyfikator schematu pracy wybranego dla podstawienia wagonu
i_w_sp_sp_id in u_eks.t_wagony_eksp_id.we_sp_sp_id%type,
-- identyfikator wagonu z kartoteki wagonow prywatnych, ktory zostal zidentyfikowany
-- z podstawieniem
i_we_wi_id in u_tab.t_wagony_id.w_w_id%type,
-- czas wstawienia wagonu na tor
i_we_czas_podstawienia in u_eks.t_wagony_eksp_id.we_czas_podstawienia%type default null,
i_we_czas_zabrania in u_eks.t_wagony_eksp_id.we_czas_zabrania%type default null,
-- rodzaj pobytu na bocznicy - loko/przejściowe
i_we_pobyt_rodzaj in u_eks.t_wagony_eksp_id.we_pobyt_rodzaj%type,
-- Dane do integracji z systemem SAP - przybycie
i_w_sdz_nr_zamowienia in varchar2, --u_eks.t_wagony_podstawienia.w_sdz_nr_zamowienia%type,
i_w_sdz_nr_pozycji in u_eks.t_wagony_podstawienia.w_sdz_nr_pozycji%type,
-- Dane do integracji z systemem SAP - wysyłka
i_w_sdd_nr_dostawy in varchar2, --u_eks.t_wagony_zdania.w_sdd_nr_dostawy%type,
i_w_sdd_nr_pozycji in u_eks.t_wagony_zdania.w_sdd_nr_pozycji%type)
I can call this procedure from other tools (PL/SQL Developer) or even from other Delphi components (ODAC) without any problems. But when I'm trying to call this procedure from mORMot then always exception is raised:
TSQLDBOracleStatement error: ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 2
This is strange exception, because whole procedure is executed. In the last line of the procedure I'm calling message using Oracle's pipe - everything is sent correctly. So exception is raised not inside of the procedure (it would be deeper stack of Oracle calls in exception message) but after procedure call. While setting value of the out parameters? I have no idea but if calling of the message using Oracle's pipe is called in SQL code after the procedure call it is not sent.
When I made some changes inside of the Oracle procedure then everything starts working, but this changes are only for testing purpose. I can't to bring them to the production system. This change is removing the code which gets new value for parameter: io_w_lp_r25. Value for this parameter is selected from Oracle sequence and for now has value like: 130000. Range of the integer value is not exceeded. I'm sure. If selecting value from sequences is commented then procedure is called correctly. Unfortunately I can't extract it as example to the debug purpose.
Here is a code which calls Oracle procedure using mORMot:
procedure TBkWazeniaImportyPodstaw.PodstawienieDodajWagony;
const
cSQLExec =
'begin' + #13#10 +
' ' + cSpWagonyObecneInsert + '(' + #13#10 +
'io_wz_id => ?,' + #13#10 + // 1
'io_wz_we_id => ?,' + #13#10 + // 2
'io_wz_wp_id => ?,' + #13#10 + // 3
'i_w_nr_wagonu => ?,' + #13#10 + // 4
'i_w_seria => ?,' + #13#10 + // 5
'i_w_rodz_numer => ?,' + #13#10 + // 6
'i_w_zly_numer => ?,' + #13#10 + // 7
'i_w_tara_z_bel => ?,' + #13#10 + // 8
'i_w_tara_dekl_lad => ?,' + #13#10 + // 9
'i_w_tara_dekl_lad_rodzaj => ?,' + #13#10 + // 10
'i_w_tara_przewozowa => ?,' + #13#10 + // 11
'i_w_gr_obciaz => ?,' + #13#10 + // 12
'i_w_masa_lad => ?,' + #13#10 + // 13
'i_wp_masa_lad_przewoz => ?,' + #13#10 + // 14
'i_w_masa_tow => ?,' + #13#10 + // 15
'i_w_masa_prz_l => ?,' + #13#10 + // 16
'i_w_masa_prz_t => ?,' + #13#10 + // 17
'i_w_masa_przew => ?,' + #13#10 + // 18
'i_w_masa_opak_l => ?,' + #13#10 + // 19
'i_w_masa_opak_t => ?,' + #13#10 + // 20
'i_w_masa_wydz_lad => ?,' + #13#10 + // 21
'i_w_masa_wydz_tow => ?,' + #13#10 + // 22
'i_w_ilosc_osi => ?,' + #13#10 + // 23
'i_w_ilosc_szt_lad => ?,' + #13#10 + // 24
'i_w_ilosc_opak_tow => ?,' + #13#10 + // 25
'i_w_ilosc_szt_tow => ?,' + #13#10 + // 26
'i_w_stezenie_lad => ?,' + #13#10 + // 27
'i_w_stezenie_tow => ?,' + #13#10 + // 28
'i_w_id_ladunku => ?,' + #13#10 + // 29
'i_w_id_nadawcy => ?,' + #13#10 + // 30
'i_w_id_towaru => ?,' + #13#10 + // 31
'i_w_towar_opis_dod => ?,' + #13#10 + // 32
'i_w_id_odbiorcy => ?,' + #13#10 + // 33
'i_w_id_r25 => ?,' + #13#10 + // 34
'io_w_lp_r25 => ?,' + #13#10 + // 35
'i_w_id_r25t => ?,' + #13#10 + // 36
'io_w_lp_r25t => ?,' + #13#10 + // 37
'i_w_id_lis_prz => ?,' + #13#10 + // 38
'i_w_lp_lis_prz => ?,' + #13#10 + // 39
'i_w_czas_uk_za => ?,' + #13#10 + // 40
'i_w_czas_uk_wy => ?,' + #13#10 + // 41
'i_w_czas_uk_wy_pol_auto => ?,' + #13#10 + // 42
'i_w_czas_roz_za => ?,' + #13#10 + // 43
'i_w_czas_dysp_od => ?,' + #13#10 + // 44
'i_w_czas_ponow_dysp => ?,' + #13#10 + // 45
'i_w_czas_roz_odprawy => ?,' + #13#10 + // 46
'i_w_czas_odprawy => ?,' + #13#10 + // 47
'i_w_czas_roz_czyn_adm => ?,' + #13#10 + // 48
'i_w_czas_czyn_adm => ?,' + #13#10 + // 49
'i_w_id_p_podst => ?,' + #13#10 + // 50
'i_w_lp_p_podst => ?,' + #13#10 + // 51
'i_w_vat => ?,' + #13#10 + // 52
'i_w_zmiana_tary => ?,' + #13#10 + // 53
'i_w_podw_op_lad => ?,' + #13#10 + // 54
'i_w_podzial_masy_l => ?,' + #13#10 + // 55
'i_w_podzial_masy_t => ?,' + #13#10 + // 56
'i_w_akt_hamul_p => ?,' + #13#10 + // 57
'i_w_akt_hamul_z => ?,' + #13#10 + // 58
'i_w_dlugosc => ?,' + #13#10 + // 59
'i_w_ciez_ham_1 => ?,' + #13#10 + // 60
'i_w_ciez_ham_2 => ?,' + #13#10 + // 61
'i_w_ciez_ham_pr => ?,' + #13#10 + // 62
'i_w_masa_przest => ?,' + #13#10 + // 63
'i_w_typ_hamulca => ?,' + #13#10 + // 64
'i_w_rodzaj_hamul => ?,' + #13#10 + // 65
'i_w_hamul_oerl => ?,' + #13#10 + // 66
'i_w_hamul_nast => ?,' + #13#10 + // 67
'i_wz_uzyt_wag_kod_liter => ?,' + #13#10 + // 68
'i_wz_uzyt_wag_kod_cyfr => ?,' + #13#10 + // 69
'i_w_ub_ub_id => ?,' + #13#10 + // 70
'i_wz_ub_ub_id => ?,' + #13#10 + // 71
'i_wz_un_un_id => ?,' + #13#10 + // 72
'i_w_cpw_id => ?,' + #13#10 + // 73
'i_w_dysp_wag_id => ?,' + #13#10 + // 74
'i_w_dysp_wag_typ => ?,' + #13#10 + // 75
'i_w_import => ?,' + #13#10 + // 76
'i_w_eksport => ?,' + #13#10 + // 77
'i_w_odmowa => ?,' + #13#10 + // 78
'i_w_lad_uszkodz => ?,' + #13#10 + // 79
'i_w_ilosc_plomb_tow => ?,' + #13#10 + // 80
'i_we_tr_tr_id => ?,' + #13#10 + // 81
'i_w_lad_zamroz => ?,' + #13#10 + // 82
'i_w_lad_zamroz_prot => ?,' + #13#10 + // 83
'i_w_medium_gt_id => ?,' + #13#10 + // 84
'i_w_sp_sp_id => ?,' + #13#10 + // 85
'i_we_wi_id => ?,' + #13#10 + // 86
'i_we_czas_podstawienia => ?,' + #13#10 + // 87
'i_we_czas_zabrania => ?,' + #13#10 + // 88
'i_we_pobyt_rodzaj => ?,' + #13#10 + // 89
'i_w_sdz_nr_zamowienia => ?,' + #13#10 + // 90
'i_w_sdz_nr_pozycji => ?,' + #13#10 + // 91
'i_w_sdd_nr_dostawy => ?,' + #13#10 + // 92
'i_w_sdd_nr_pozycji => ?);' + #13#10 + // 93*)
'end;';
var
item: TBkWagonPodstawienie;
sql: string;
stmt: ISQLDBStatement;
begin
sql := cSQLExec;
while sql.Contains(' ') do
sql := StringReplace(sql, ' ', ' ', [rfReplaceAll]);
stmt := FDbConnection.NewStatementPrepared(sql, False, True);
for item in FWagonyPodstawienia do
PodstawienieDodajWagon(item, stmt);
end;
procedure TBkWazeniaImportyPodstaw.PodstawienieDodajWagon(const APodstawienie: TBkWagonPodstawienie;
const AStatement: ISQLDBStatement);
var
i: Integer;
begin
// Domyślne ustawienie wszystkich parametrów na null.
for i := 1 to 3 do
AStatement.BindNull(i, paramInOut);
for i := 4 to 93 do
AStatement.BindNull(i);
// Numer wagonu
AStatement.BindTextS(4, APodstawienie.WagonNumer, paramIn);
AStatement.BindTextS(5, APodstawienie.WagonSeria, paramIn);
AStatement.Bind(6, Integer(APodstawienie.WagonNumerRodzaj), paramIn);
AStatement.Bind(7, Integer(APodstawienie.WagonNumerBlad), paramIn);
AStatement.Bind(12, APodstawienie.WagonGranicaObciazenia, paramIn);
AStatement.Bind(23, APodstawienie.WagonIloscOsi, paramIn);
// Dane ładunku
AStatement.Bind(9, APodstawienie.TaraPrzybyciaDekl, paramIn);
AStatement.Bind(13, APodstawienie.MasaLadunkuDekl, paramIn);
// Dokument podstawienia
AStatement.Bind(34, DokumentPodstawieniaId, paramIn);
AStatement.BindNull(35, paramInOut, ftInt64);
AStatement.BindNull(36, paramIn);
AStatement.BindNull(37, paramInOut, ftInt64);
// Flaga obliczania automatycznego czasu wyładunku
AStatement.Bind(42, 0, paramIn);
// Flaga ponownego podstawienia
AStatement.Bind(51, 0, paramIn);
// Flaga zmiany tary
AStatement.Bind(53, 0, paramIn);
Astatement.BindCurrency(52, 0, paramIn);
// Flaga podwójnej operacji ładunkowej
AStatement.Bind(54, 0, paramIn);
// Podział masy ładunku/towaru
AStatement.Bind(55, 0, paramIn);
AStatement.Bind(56, 0, paramIn);
// Aktywne hamulce na przybyciu/zdaniu.
AStatement.Bind(57, 1, paramIn);
AStatement.Bind(58, 1, paramIn);
// Flaga hamulec typu oerlikon
AStatement.Bind(66, 0, paramIn);
// Flaga hamulec z nastawiaczem
AStatement.Bind(67, 0, paramIn);
// Użytkownik bocznicy
AStatement.Bind(70, PodstawienieParametry.UzytkownikBocznicyId, paramIn);
// Dysponowanie wagonu typ
AStatement.Bind(75, 1, paramIn);
// Import
AStatement.Bind(76, 0, paramIn);
// Eksport
AStatement.Bind(77, 0, paramIn);
// Odmowa wagonu
AStatement.Bind(78, 0, paramIn);
// Ładunek uszkodzony
AStatement.Bind(79, 0, paramIn);
// Ilość plomb towaru
AStatement.Bind(80, 0, paramIn);
// Tor podstawienia wagonu
AStatement.Bind(81, PodstawienieParametry.PodstawienieTorId, paramIn);
// Ładunek zamrożony
AStatement.Bind(82, 0, paramIn);
// Ładunek zamrożony - protokół
AStatement.Bind(83, 0, paramIn);
// Powiązanie z wagonem z kartoteki... - trzeba dorobić w przyszłości.
//' i_we_wi_id => ?,' + #13#10 + // 86
AStatement.BindDateTime(87, PodstawienieParametry.PodstawienieCzas, paramIn);
// Rodzaj pobytu - Loko
AStatement.BindTextS(89, cPobytLoko, paramIn);
AStatement.ExecutePrepared;
end;
And I'm really sure, that varchar parameters values have correct length. Here is also exception from log file:
20150320 01032624 SQL TSQLDBOracleStatement(7FE21BB0) begin U_EKS.SP_WAGONY_OBECNE_INSERT( io_wz_id => NULL, io_wz_we_id => NULL, io_wz_wp_id => NULL, i_w_nr_wagonu => '31-51-5345282-8', i_w_seria => '', i_w_rodz_numer => 0, i_w_zly_numer => 0, i_w_tara_z_bel => NULL, i_w_tara_dekl_lad => 0, i_w_tara_dekl_lad_rodzaj => NULL, i_w_tara_przewozowa => NULL, i_w_gr_obciaz => 0, i_w_masa_lad => 0, i_wp_masa_lad_przewoz => NULL, i_w_masa_tow => NULL, i_w_masa_prz_l => NULL, i_w_masa_prz_t => NULL, i_w_masa_przew => NULL, i_w_masa_opak_l => NULL, i_w_masa_opak_t => NULL, i_w_masa_wydz_lad => NULL, i_w_masa_wydz_tow => NULL, i_w_ilosc_osi => 0, i_w_ilosc_szt_lad => NULL, i_w_ilosc_opak_tow => NULL, i_w_ilosc_szt_tow => NULL, i_w_stezenie_lad => NULL, i_w_stezenie_tow => NULL, i_w_id_ladunku => NULL, i_w_id_nadawcy => NULL, i_w_id_towaru => NULL, i_w_towar_opis_dod => NULL, i_w_id_odbiorcy => NULL, i_w_id_r25 => 20941, io_w_lp_r25 => NULL, i_w_id_r25t => NULL, io_w_lp_r25t => NULL, i_w_id_lis_prz => NULL, i_w_lp_lis_prz => NULL, i_w_czas_uk_za => NULL, i_w_czas_uk_wy => NULL, i_w_czas_uk_wy_pol_auto => 0, i_w_czas_roz_za => NULL, i_w_czas_dysp_od => NULL, i_w_czas_ponow_dysp => NULL, i_w_czas_roz_odprawy => NULL, i_w_czas_odprawy => NULL, i_w_czas_roz_czyn_adm => NULL, i_w_czas_czyn_adm => NULL, i_w_id_p_podst => NULL, i_w_lp_p_podst => 0, i_w_vat => 0, i_w_zmiana_tary => 0, i_w_podw_op_lad => 0, i_w_podzial_masy_l => 0, i_w_podzial_masy_t => 0, i_w_akt_hamul_p => 1, i_w_akt_hamul_z => 1, i_w_dlugosc => NULL, i_w_ciez_ham_1 => NULL, i_w_ciez_ham_2 => NULL, i_w_ciez_ham_pr => NULL, i_w_masa_przest => NULL, i_w_typ_hamulca => NULL, i_w_rodzaj_hamul => NULL, i_w_hamul_oerl => 0, i_w_hamul_nast => 0, i_wz_uzyt_wag_kod_liter => NULL, i_wz_uzyt_wag_kod_cyfr => NULL, i_w_ub_ub_id => 324, i_wz_ub_ub_id => NULL, i_wz_un_un_id => NULL, i_w_cpw_id => NULL, i_w_dysp_wag_id => NULL, i_w_dysp_wag_typ => 1, i_w_import => 0, i_w_eksport => 0, i_w_odmowa => 0, i_w_lad_uszkodz => 0, i_w_ilosc_plomb_tow => 0, i_w... (truncated) length=2400
20150320 01032624 EXC ESQLDBOracle {"Statement":{"SQL":"begin\r\n U_EKS.SP_WAGONY_OBECNE_INSERT(\r\nio_wz_id => ?,\r\nio_wz_we_id => ?,\r\nio_wz_wp_id => ?,\r\ni_w_nr_wagonu => ?,\r\ni_w_seria => ?,\r\ni_w_rodz_numer => ?,\r\ni_w_zly_numer => ?,\r\ni_w_tara_z_bel => ?,\r\ni_w_tara_dekl_lad => ?,\r\ni_w_tara_dekl_lad_rodzaj => ?,\r\ni_w_tara_przewozowa => ?,\r\ni_w_gr_obciaz => ?,\r\ni_w_masa_lad => ?,\r\ni_wp_masa_lad_przewoz => ?,\r\ni_w_masa_tow => ?,\r\ni_w_masa_prz_l => ?,\r\ni_w_masa_prz_t => ?,\r\ni_w_masa_przew => ?,\r\ni_w_masa_opak_l => ?,\r\ni_w_masa_opak_t => ?,\r\ni_w_masa_wydz_lad => ?,\r\ni_w_masa_wydz_tow => ?,\r\ni_w_ilosc_osi => ?,\r\ni_w_ilosc_szt_lad => ?,\r\ni_w_ilosc_opak_tow => ?,\r\ni_w_ilosc_szt_tow => ?,\r\ni_w_stezenie_lad => ?,\r\ni_w_stezenie_tow => ?,\r\ni_w_id_ladunku => ?,\r\ni_w_id_nadawcy => ?,\r\ni_w_id_towaru => ?,\r\ni_w_towar_opis_dod => ?,\r\ni_w_id_odbiorcy => ?,\r\ni_w_id_r25 => ?,\r\nio_w_lp_r25 => ?,\r\ni_w_id_r25t => ?,\r\nio_w_lp_r25t => ?,\r\ni_w_id_lis_prz => ?,\r\ni_w_lp_lis_prz => ?,\r\ni_w_czas_uk_za => ?,\r\ni_w_czas_uk_wy => ?,\r\ni_w_czas_uk_wy_pol_auto => ?,\r\ni_w_czas_roz_za => ?,\r\ni_w_czas_dysp_od => ?,\r\ni_w_czas_ponow_dysp => ?,\r\ni_w_czas_roz_odprawy => ?,\r\ni_w_czas_odprawy => ?,\r\ni_w_czas_roz_czyn_adm => ?,\r\ni_w_czas_czyn_adm => ?,\r\ni_w_id_p_podst => ?,\r\ni_w_lp_p_podst => ?,\r\ni_w_vat => ?,\r\ni_w_zmiana_tary => ?,\r\ni_w_podw_op_lad => ?,\r\ni_w_podzial_masy_l => ?,\r\ni_w_podzial_masy_t => ?,\r\ni_w_akt_hamul_p => ?,\r\ni_w_akt_hamul_z => ?,\r\ni_w_dlugosc => ?,\r\ni_w_ciez_ham_1 => ?,\r\ni_w_ciez_ham_2 => ?,\r\ni_w_ciez_ham_pr => ?,\r\ni_w_masa_przest => ?,\r\ni_w_typ_hamulca => ?,\r\ni_w_rodzaj_hamul => ?,\r\ni_w_hamul_oerl => ?,\r\ni_w_hamul_nast => ?,\r\ni_wz_uzyt_wag_kod_liter => ?,\r\ni_wz_uzyt_wag_kod_cyfr => ?,\r\ni_w_ub_ub_id => ?,\r\ni_wz_ub_ub_id => ?,\r\ni_wz_un_un_id => ?,\r\ni_w_cpw_id => ?,\r\ni_w_dysp_wag_id => ?,\r\ni_w_dysp_wag_typ => ?,\r\ni_w_import => ?,\r\ni_w_eksport => ?,\r\ni_w_odmowa => ?,\r\ni_w_lad_uszkodz => ?,\r\ni_w_ilosc_plomb_tow => ?,\r\ni_we_tr_tr_id => ?,\r\ni_w_lad_zamroz => ?,\r\ni_w_lad_zamroz_prot => ?,\r\ni_w_medium_gt_id => ?,\r\ni_w_sp_sp_id => ?,\r\ni_we_wi_id => ?,\r\ni_we_czas_podstawienia => ?,\r\ni_we_czas_zabrania => ?,\r\ni_we_pobyt_rodzaj => ?,\r\ni_w_sdz_nr_zamowienia => ?,\r\ni_w_sdz_nr_pozycji => ?,\r\ni_w_sdd_nr_dostawy => ?,\r\ni_w_sdd_nr_pozycji => ?);\r\nend","SQLWithInlinedParams":"begin\r\n U_EKS.SP_WAGONY_OBECNE_INSERT(\r\nio_wz_id => NULL,\r\nio_wz_we_id => NULL,\r\nio_wz_wp_id => NULL,\r\ni_w_nr_wagonu => '31-51-5345282-8',\r\ni_w_seria => '',\r\ni_w_rodz_numer => 0,\r\ni_w_zly_numer => 0,\r\ni_w_tara_z_bel => NULL,\r\ni_w_tara_dekl_lad => 0,\r\ni_w_tara_dekl_lad_rodzaj => NULL,\r\ni_w_tara_przewozowa => NULL,\r\ni_w_gr_obciaz => 0,\r\ni_w_masa_lad => 0,\r\ni_wp_masa_lad_przewoz => NULL,\r\ni_w_masa_tow => NULL,\r\ni_w_masa_prz_l => NULL,\r\ni_w_masa_prz_t => NULL,\r\ni_w_masa_przew => NULL,\r\ni_w_masa_opak_l => NULL,\r\ni_w_masa_opak_t => NULL,\r\ni_w_masa_wydz_lad => NULL,\r\ni_w_masa_wydz_tow => NULL,\r\ni_w_ilosc_osi => 0,\r\ni_w_ilosc_szt_lad => NULL,\r\ni_w_ilosc_opak_tow => NULL,\r\ni_w_ilosc_szt_tow => NULL,\r\ni_w_stezenie_lad => NULL,\r\ni_w_stezenie_tow => NULL,\r\ni_w_id_ladunku => NULL,\r\ni_w_id_nadawcy => NULL,\r\ni_w_id_towaru => NULL,\r\ni_w_towar_opis_dod => NULL,\r\ni_w_id_odbiorcy => NULL,\r\ni_w_id_r25 => 20941,\r\nio_w_lp_r25 => NULL,\r\ni_w_id_r25t => NULL,\r\nio_w_lp_r25t => NULL,\r\ni_w_id_lis_prz => NULL,\r\ni_w_lp_lis_prz => NULL,\r\ni_w_czas_uk_za => NULL,\r\ni_w_czas_uk_wy => NULL,\r\ni_w_czas_uk_wy_pol_auto => 0,\r\ni_w_czas_roz_za => NULL,\r\ni_w_czas_dysp_od => NULL,\r\ni_w_czas_ponow_dysp => NULL,\r\ni_w_czas_roz_odprawy => NULL,\r\ni_w_czas_odprawy => NULL,\r\ni_w_czas_roz_czyn_adm => NULL,\r\ni_w_czas_czyn_adm => NULL,\r\ni_w_id_p_podst => NULL,\r\ni_w_lp_p_podst => 0,\r\ni_w_vat => 0,\r\ni_w_zmiana_tary => 0,\r\ni_w_podw_op_lad => 0,\r\ni_w_podzial_masy_l => 0,\r\ni_w_podzial_masy_t => 0,\r\ni_w_akt_hamul_p => 1,\r\ni_w_akt_hamul_z => 1,\r\ni_w_dlugosc => NULL,\r\ni_w_ciez_ham_1 => NULL,\r\ni_w_ciez_ham_2 => NULL,\r\ni_w_ciez_ham_pr => NULL,\r\ni_w_masa_przest => NULL,\r\ni_w_typ_hamulca => NULL,\r\ni_w_rodzaj_hamul => NULL,\r\ni_w_hamul_oerl => 0,\r\ni_w_hamul_nast => 0,\r\ni_wz_uzyt_wag_kod_liter => NULL,\r\ni_wz_uzyt_wag_kod_cyfr => NULL,\r\ni_w_ub_ub_id => 324,\r\ni_wz_ub_ub_id => NULL,\r\ni_wz_un_un_id => NULL,\r\ni_w_cpw_id => NULL,\r\ni_w_dysp_wag_id => NULL,\r\ni_w_dysp_wag_typ => 1,\r\ni_w_import => 0,\r\ni_w_eksport => 0,\r\ni_w_odmowa => 0,\r\ni_w_lad_uszkodz => 0,\r\ni_w_ilosc_plomb_tow => 0,\r\ni_we_tr_tr_id => 202,\r\ni_w_lad_zamroz => 0,\r\ni_w_lad_zamroz_prot => 0,\r\ni_w_medium_gt_id => NULL,\r\ni_w_sp_sp_id => NULL,\r\ni_we_wi_id => NULL,\r\ni_we_czas_podstawienia => NULL,\r\ni_we_czas_zabrania => NULL,\r\ni_we_pobyt_rodzaj => 'L',\r\ni_w_sdz_nr_zamowienia => NULL,\r\ni_w_sdz_nr_pozycji => NULL,\r\ni_w_sdd_nr_dostawy => NULL,\r\ni_w_sdd_nr_pozycji => NULL);\r\nend","CurrentRow":0,"TotalRowsRetrieved":0,"Connection":{"Connected":true,"ServerTimeStampAtConnection":"2015-03-20T01:03:26","TotalConnectionCount":1,"TransactionCount":1,"InTransaction":true,"RollbackOnDisconnect":true,"LastErrorMessage":"","LastErrorWasAboutConnection":false,"Properties":{"ClientVersion":"oci.dll rev. 11.2.0.2","EnvironmentInitializationMode":7,"InternalBufferSize":131072,"RowsPrefetchSize":131072,"BlobPrefetchSize":4096,"StatementCacheSize":30,"Engine":"Oracle","ServerName":"xe","DatabaseName":"","UserID":"system","DBMS":2,"DBMSEngineName":"Oracle","BatchSendingAbilities":13,"BatchMaxSentAtOnce":10000,"LoggedSQLMaxSize":0,"LogSQLStatementOnException":false,"ForcedSchemaName":"","UseCache":true,"RollbackOnDisconnect":true,"StoreVoidStringAsNull":false}}},"Message":"TSQLDBOracleStatement error: ORA-06502: PL/SQL: numeric or value error: character string buffer too small\nORA-06512: at line 2"} at 00A80B14 stack trace API 008FF874 008FF89C 5005FDB8 77B10243 77B109BF 00A80B14 00A8572D 00A84FF3 059762BB 05976395 0597562B 05978302 009A170B
20150320 01032624 DB TSQLDBOracleStatement(7FE21BB0) 0 row(s) in 6.45ms
I'm still using mORMot from 16 March 2015 09:16:18, revision 1389 from GitHub svn repository and Delphi XE4.
best regards
Adam Siwon
Offline
Yes, When I have changed BindNull to Bind for all InOut parameters then the procedure is called correctly. This change I can use in my production environment and for now this problem is solved for me. Thank you very much for help.
best regards
Adam Siwon
Offline