إدراج مختلطة db2 المجال مع كل من ألفا سلاسل معبأة عشرية
-
20-12-2019 - |
سؤال
وفيما يلي جدول/ملف تخطيط "SH.حفلة موسيقية" ، db2 الجدول في AS/400 هي المسؤولة عن تقديم الشهري تعزيز البنود في جميع أنحاء النظام.أي شخص ليس على دراية نموذجية تخطيطات الجدول يجب أن نعرف أن هناك عادة ثلاثة أعمدة:F00001, K00001 و F00002.وأحيانا يظهر في بلدنا (K00002).في نظامنا ، F00002 عادة ما يحمل متعددة الحقول الفرعية التي قدمت اسم موضع ، وطول أنواع بيانات.أي شيء في عمود الملاحظات المسمى " زغب " يعني تصفير أو متباعدة في EBCDIC الشخصيات لذا من غير المهم من البيانات وجهة النظر ولكن لا يزال يحتاج إلى أن يكون هناك بشكل صحيح.
Field Pos. Len. Name Type Notes
---------------------------------------------
F00001 1 2 MACT Alpha Activity Code, Always 1 or 9 (active/inactive)
K00001 1 20 MITEM Alpha Item Number
K00001 21 2 MP Alpha Unknown title, Always 'P'
K00001 23 2 MPITCL Alpha Unknown title, Always 'P' or 'I'
F00002 1 8 MSTDAT Integer Promotion Start Date, MMDDYY0F
F00002 9 8 MEXDAT Integer Promotion End Date, MMDDYY0F
F00002 17 8 MLIST Decimal Amount to be subtracted from original price
F00002 25 8 MRETAL Decimal Fluff, 0000000f
F00002 33 8 MCOST Decimal Fluff, 0000000f
F00002 41 10 MQTY Decimal Fluff, 000000000f
F00002 51 6 MPCHNG Integer Fluff, 00000f
F00002 57 12 MNPEFT Alpha Fluff, 404040404040
F00002 69 8 MNSTDT Integer Fluff, 0000000f
F00002 77 8 MNEXDT Integer Fluff, 0000000f
F00002 85 8 MNLST Decimal Fluff, 0000000f
F00002 93 8 MPNRTL Integer Fluff, 0000000f
F00002 101 8 MNCOST Decimal Fluff, 0000000f
F00002 109 8 ZZ14 Alpha Fluff, 40404040
F00002 117 8 MALPHA Alpha Fluff, 40404040
F00002 125 170 ZZ64 Alpha Fluff, 40404040404040...
أواجه مشكلات إدراج تلك تعزيز تواريخ البدء/الانتهاء.
إن إدراج البيانات في عمود F00002 كسلسلة, تلقائيا يحول إلى EBCDIC الأرقام:
INSERT INTO "SH.PROM" (F00001,K00001,F00002) VALUES ('1','0000620311PP','0201140F0228140F...')
( ***زائدة النقاط على F00002 هو إدراج البيانات يعني بقية يلي ملف/تخطيط الجدول أعلاه.)
و F00002 كعدد فقط أن تحاول ذلك:
INSERT INTO "SH.PROM" (F00001,K00001,F00002) VALUES ('1','0000620311PP',0201140...)
العمود يغفل اليسار مبطن صفر وتحولها إلى EBCDIC الشخصيات مرة أخرى.
هنا هو مثال على القائمة F00002 الميدانية فضلا عن اثنين من المفيد SquirrelShots :) (ويعرف أيضا باسم SQL السنجاب لقطة الشاشة) أولا الثاني :
08 01 13 0f 01 31 14 0f 00 00 38 0f 00 00 00 0f 00 00 00 0f 00 00 06 80 0f 00 00 0f f0 f0 f0 f0 f0 f0 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 0f 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40
كيف يمكنني إدراج هذا F00002 المجال بحيث مخازن البيانات بشكل صحيح ؟
المحلول
الحل الصحيح يكون خارجيا وصف الملف باستخدام بيانات الوصف المواصفات (DDS).
البرامج القديمة لن يكون هناك مشكلة في الوصول خارجيا وصف الملف.
مرة واحدة يتم خارجيا وصفها يمكنك الوصول إلى الحقول عادة والسماح التعامل مع قاعدة البيانات من نوع التحويل.
هنا عينة للحصول على انك بدأته.دون الفعلية مواصفات المدخلات من مصدر البرنامج خمنت في المنازل العشرية على الحقول الرقمية.
A R PROM
A MACT 2A
A MITEM 20A
A MP 2A
A MPITCL 2A
A MSTDAT 8S 0
A MEXDAT 8S 0
A MLIST 8S 2
A MRETAL 8S 2
A MCOST 8S 2
A MQTY 10S 0
A MPCHNG 6S 0
A MNPEFT 12A
A MNSTDT 8S 0
A MNEXDT 8S 0
A MNLST 8S 2
A MPNRTL 8S 2
A MNCOST 8S 2
A ZZ14 8A
A MALPHA 8A
A ZZ64 170A
A K MITEM
A K MP
A K MPITCL