Below is step by step procedure to write a custom function in BODS to remove special characters in a string using ASCII values.
Step 1: Create a custom function in BODS and name it as 'CF_REMOVE_SPECIAL_CHARS'
Step 2: Use the below code in your function.
# This function is to remove special characters from the string.It only retains alphabets and numbers from the string.
$L_String =$P_Input_Field;
$L_String_Length =length( $L_String );
$L_Counter =1;
$L_String_final =null;
while($L_String_Length>0)
begin
$L_Char =substr( $L_String ,$L_Counter,1);
if((ascii($L_Char)>=48 and ascii($L_Char)<=57) or (ascii($L_Char)>=65 and ascii($L_Char)<=90) or (ascii($L_Char)>=97 and ascii($L_Char)<=122))
begin
$L_String_final =$L_String_final||$L_Char;
$L_Counter =$L_Counter+1;
$L_String_Length =$L_String_Length-1;
end
else
begin
$L_Counter =$L_Counter+1;
$L_String_Length = $L_String_Length-1;
end
end
Return replace_substr( replace_substr( rtrim_blanks( rtrim_blanks( $L_String_final )),' ',' '),' ', ' ');
Your code in Editor would look like as under:
Step 3: Declare Parameters and local variables as shown in left pane of the above function editor.
$P_Input_Field - parameter type is input (data type varchar(255) )
$L_Char - datatype varchar(255)
$L_Counter - datatype int
$L_String - datatype varchar(255)
$L_String_final - datatype varchar(255)
$L_String_Length - datatype int
$L_Counter - datatype int
$L_String - datatype varchar(255)
$L_String_final - datatype varchar(255)
$L_String_Length - datatype int
Note: Change the parameter return type to Varchar(255). By default return type is int.
Step 4: Save this function.
Step 5: Call this function while mapping any field in Query Editor where you want to remove special characters.
Ex: CF_REMOVE_SPECIAL_CHARS(Table1.INPUT_VAL)
Above function call shall remove all special characters from INPUT_VAL field in a table1 and output Value shall look like below table's data.
0 comments:
Post a Comment