Search Postgresql Archives

Re: Simple method to format a string?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 6/20/2012 12:59 PM, Scott Marlowe wrote:
This pretty much calls for a user defined function.  Plpgsql should
work, but if you're more comfy in perl or tcl there's pl/tcl and
pl/perl you can try as well.

On Wed, Jun 20, 2012 at 8:43 AM, Emi Lu <emilu@xxxxxxxxxxxxxxxxx> wrote:
Good morning,

Is there a simply method in psql to format a string?

For example, adding a space to every three consecutive letters:

abcdefgh -> *** *** ***

Thanks a lot!
Emi

--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



This is the perl func I use:  sorry about the formatting


-- mask char is 0 (zero).  anything else gets copied across
create or replace function applyMask(text, text) returns text as $$
        my($mask, $src) = @_;

        my $srcAt = 0;
        my $srcLen = length($src);
        my $result = '';

        for my $i (0..length($mask)-1)
        {
                my $mchar = substr($mask, $i, 1);
                if ($mchar eq '0')
                {
                        if ($srcAt >= $srcLen)
                        {
                                $result .= ' ';
                        } else {
                                $result .= substr($src, $srcAt, 1);
                                $srcAt++;
                        }
                } else {
                        $result .= $mchar;
                }
        }
        return $result;
$$ language plperl;



For example:

select applyMask('(000) 000-0000', '1235551313');

--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux