Thread: Can't convert numeric to_char() in catenate function
Hi there. Im trying to do the usual row catenation function, but for a "numeric" type column. I have this: CREATE OR REPLACE FUNCTION "verticat" (text, numeric) RETURNS text AS ' SELECT CASE WHEN $2 IS NULL THEN $1 WHEN $1 IS NULL OR $1 = '''' THEN to_char($2,'999999999D99') ELSE $1 || '', '' || to_char($2,'99999999D99') END ' LANGUAGE 'sql'; This works without problem with "float" or other type with direct casting to text (after replacing the "to_char(...)" with$2::text), but this one gives me an "ERROR: parser: parse error at or near "999999999""... wath is wrong with it?? It would also be nice to trim the spaces placed by to_char, with something like "ltrim(' ', to_char($2,'999999999D99'))",but that yields yet anoter error: "ERROR: parser: parse error at or near "'"". Any help 'preciated. Thanks!
Yusuf, > CREATE OR REPLACE FUNCTION "verticat" (text, numeric) RETURNS text AS ' > SELECT CASE WHEN $2 IS NULL THEN $1 > WHEN $1 IS NULL OR $1 = '''' > THEN to_char($2,'999999999D99') > ELSE $1 || '', '' || to_char($2,'99999999D99') You need to escape your single quotes by double-quoting them, eg.:to_char($2,''99999999D99'') -Josh BerkusAglio Database SolutionsSan Francisco
I 'must' quote the quotes. I 'must' quote the quotes. I 'must' quote the quotes. I 'must' quote the quotes. I 'must' quotethe quotes. I 'must' quote the quotes. I 'must' quote the quotes. DANG!! I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must''quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. Err, sorry about that, I'm trying to keep something in my mind. I just wanted to tell ya to forget my previous mail, I gotit (tipical) just after sending it: CREATE OR REPLACE FUNCTION "verticat" (text, numeric) RETURNS text AS ' SELECT CASE WHEN $2 IS NULL THEN $1 WHEN $1 IS NULL OR $1 = '''' THEN ltrim('' '', to_char($2,''999999999D99'')) ELSE $1 || '', '' || ltrim('' '', to_char($2,''99999999D99'')) END ' LANGUAGE 'sql'; Ciao. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must''quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must''quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must''quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must''quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must''quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes. I ''must'' quote the quotes...