bug with Torascript and oracle10g wrapped procedure
Posted: Wed 28 Oct 2009 12:57
Hi,
We have Odac 6.90.0.52 and Delphi 2007 and Oracle 10gR2 development environment.
We'we wrapped our oracle procudures with oracle10g wrapper and exute it with Torascript.
The Oracle source code is:
create or replace function ber_datum_aktiv(pn_ev float,pn_ho float,pd_erv_kezd date,pd_erv_vege date) return varchar2 is
begin
if pd_erv_kezd is null and pd_erv_vege is null then return 'I';
elsif pn_ev is null then return 'I';
elsif to_date(pn_ev||'.'||pn_ho,'yyyy.mm') between trunc(nvl(pd_erv_kezd,sysdate-100000),'mm') and trunc(nvl(pd_erv_vege,sysdate+100000),'mm') then return 'I';
else return 'N';
end if;
end ber_datum_aktiv;
/
The oracle10g wrapped code is:
create or replace function ber_datum_aktiv wrapped a000000 aa abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd
8
1aa 158
XJ0+cSEESJZmWzM9e6OiOJ5egzMwgwLIr/LbfC9AAP4+i6dvHsIjzT5V3MQ4hsPx3qKWOOko
wtLCip7mLBkaDBpRcNGIP/nPz7efDrIKQY9DzX0P/rBOff4H6/iA+WccpKBFnHFAvh7raDAh
/7ulvjdgZejd7m/BDqbWegThSdfot4vLidcnaMWXpsOZDKnCZ9Y8yiY3bElDaKhsbmlRnjZ3
3+bJmKr2aPhN9ZPJ7NvyWes0WT4iapPwjBYOYD/bpnC2+WZJsE4C4N5PfqJoaOKGPvJ/nfQV
nZLMAIFkqjO139u749HMDuVhlwZMjPS5au2c2iviRZLhOSXABg==
/
When we execute it with Torascript, an error occured:
PLS-00753: malformed or corrupted wrapped unit
Cause: The format of the wrapped unit being compiled is not understood by the compiler. This may be because the unit was edited or modified after it was wrapped.
Action: Rewrap the unit. NLS_DO_NOT_TRANSLATE [800,800]
We think, that the Torascipt has a bug, because tha wrapped oracle10g procedure contains more / , and the Torascript interpreted the first / as it the end of procedure.
Thereby TOrascript break the wrapped Oracle10g procedure and when it will exetue, it will message error.
If you see our example, only after the last / don't any caharacters, because it is the end of procedure.
regards
Sándor Lencsés
We have Odac 6.90.0.52 and Delphi 2007 and Oracle 10gR2 development environment.
We'we wrapped our oracle procudures with oracle10g wrapper and exute it with Torascript.
The Oracle source code is:
create or replace function ber_datum_aktiv(pn_ev float,pn_ho float,pd_erv_kezd date,pd_erv_vege date) return varchar2 is
begin
if pd_erv_kezd is null and pd_erv_vege is null then return 'I';
elsif pn_ev is null then return 'I';
elsif to_date(pn_ev||'.'||pn_ho,'yyyy.mm') between trunc(nvl(pd_erv_kezd,sysdate-100000),'mm') and trunc(nvl(pd_erv_vege,sysdate+100000),'mm') then return 'I';
else return 'N';
end if;
end ber_datum_aktiv;
/
The oracle10g wrapped code is:
create or replace function ber_datum_aktiv wrapped a000000 aa abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd
8
1aa 158
XJ0+cSEESJZmWzM9e6OiOJ5egzMwgwLIr/LbfC9AAP4+i6dvHsIjzT5V3MQ4hsPx3qKWOOko
wtLCip7mLBkaDBpRcNGIP/nPz7efDrIKQY9DzX0P/rBOff4H6/iA+WccpKBFnHFAvh7raDAh
/7ulvjdgZejd7m/BDqbWegThSdfot4vLidcnaMWXpsOZDKnCZ9Y8yiY3bElDaKhsbmlRnjZ3
3+bJmKr2aPhN9ZPJ7NvyWes0WT4iapPwjBYOYD/bpnC2+WZJsE4C4N5PfqJoaOKGPvJ/nfQV
nZLMAIFkqjO139u749HMDuVhlwZMjPS5au2c2iviRZLhOSXABg==
/
When we execute it with Torascript, an error occured:
PLS-00753: malformed or corrupted wrapped unit
Cause: The format of the wrapped unit being compiled is not understood by the compiler. This may be because the unit was edited or modified after it was wrapped.
Action: Rewrap the unit. NLS_DO_NOT_TRANSLATE [800,800]
We think, that the Torascipt has a bug, because tha wrapped oracle10g procedure contains more / , and the Torascript interpreted the first / as it the end of procedure.
Thereby TOrascript break the wrapped Oracle10g procedure and when it will exetue, it will message error.
If you see our example, only after the last / don't any caharacters, because it is the end of procedure.
regards
Sándor Lencsés