Δουλεύοντας σε ένα XSL transformation στο Oracle SOA Suite, με
έκπληξη διαπίστωσα πως μια από τις (πιο σημαντικές και κοινόχρηστες)
συναρτήσεις που απουσιάζουν είναι αυτή του padding (γεμίσματος) ενός
string με χαρακτήρες. Χρειάστηκε λοιπόν να καταφύγω σε μια σύνθεση
συναρτήσεων concat(), substring() και string-length() για να το καταφέρω. Σε γενικές γραμμές, για το left padding ενός string ο τύπος είναι κάπως ως εξής:
Για παράδειγμα, σε περίπτωση που θέλουμε να γεμίσουμε από τα αριστερά (left padding) ένα string με μηδενικά, με μέγιστο μήκος τους 6 χαρακτήρες:
substring(concat("000000",/ns0:payload/ns0:SERIAL_NO),(string-length(/ns0:payload/ns0:SERIAL_NO) + 1.0))
Αντίστοιχα στην περίπτωση του right padding, η σταθερή μας συμβολοσειρά (οι padding χαρακτήρες) θα ήταν το δεύτερο όρισμα της concat().
substring(concat("padding_character_string",data_variable_xpath),(string-length(data_variable_xpath) + 1.0))
Για παράδειγμα, σε περίπτωση που θέλουμε να γεμίσουμε από τα αριστερά (left padding) ένα string με μηδενικά, με μέγιστο μήκος τους 6 χαρακτήρες:
substring(concat("000000",/ns0:payload/ns0:SERIAL_NO),(string-length(/ns0:payload/ns0:SERIAL_NO) + 1.0))
Αντίστοιχα στην περίπτωση του right padding, η σταθερή μας συμβολοσειρά (οι padding χαρακτήρες) θα ήταν το δεύτερο όρισμα της concat().
No comments:
Post a Comment