@@ -141,6 +141,10 @@ void iscBlobLookupDescImpl(Why::YAttachment* attachment, Why::YTransaction* tran
141141 (FB_INTEGER, characterSetId)
142142 ) outputMessage (&statusWrapper, MasterInterfacePtr ());
143143
144+ USHORT majorOdsVersion = 0 ;
145+ USHORT minorOdsVersion = 0 ;
146+ attachment->getOdsVersion (&majorOdsVersion, &minorOdsVersion);
147+
144148 { // scope
145149 constexpr auto sql = R"""(
146150 select f.rdb$field_sub_type,
@@ -184,7 +188,7 @@ void iscBlobLookupDescImpl(Why::YAttachment* attachment, Why::YTransaction* tran
184188
185189 if (!flag)
186190 {
187- constexpr auto sql = R"""(
191+ constexpr auto sqlPackages = R"""(
188192 select f.rdb$field_sub_type,
189193 f.rdb$segment_length,
190194 f.rdb$character_set_id
@@ -196,6 +200,19 @@ void iscBlobLookupDescImpl(Why::YAttachment* attachment, Why::YTransaction* tran
196200 pp.rdb$package_name is null
197201 )""" ;
198202
203+ constexpr auto sqlNoPackages = R"""(
204+ select f.rdb$field_sub_type,
205+ f.rdb$segment_length,
206+ f.rdb$character_set_id
207+ from rdb$procedure_parameters pp
208+ join rdb$fields f
209+ on f.rdb$field_name = pp.rdb$field_source
210+ where pp.rdb$procedure_name = ? and
211+ pp.rdb$parameter_name = ?
212+ )""" ;
213+
214+ const auto sql = majorOdsVersion >= ODS_VERSION12 ? sqlPackages : sqlNoPackages;
215+
199216 FB_MESSAGE (InputMessage, CheckStatusWrapper,
200217 (FB_VARCHAR (MAX_SQL_IDENTIFIER_LEN), procedureName)
201218 (FB_VARCHAR (MAX_SQL_IDENTIFIER_LEN), fieldName)
0 commit comments