Re: Insert value input syntax of an array of types without ARRAY/ROW nor casting?

From: Stefan Keller <sfkeller(at)gmail(dot)com>
To: pgsql-general List <pgsql-general(at)postgresql(dot)org>
Subject: Re: Insert value input syntax of an array of types without ARRAY/ROW nor casting?
Date: 2011-03-19 16:20:44
Message-ID: AANLkTimFfJka4p7vKM-rZDANKzzP7yRR8HS-TScZy0ds@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thank you for the hint.

Unfortunately it still does'nt work. I get

ERROR: wrong record constant: »('a'«
LINE 2: 5, $${ ('a', 'aa'), ('b', 'bb') }$$ );
^
DETAIL: Unexpected end of line.

Yours, S.

2011/3/19 Alban Hertroys <dalroi(at)solfertje(dot)student(dot)utwente(dot)nl>:
> On 19 Mar 2011, at 2:33, Stefan Keller wrote:
>
>> Given the test snippet below, why do the following insert attempts fail?
>>
>> The literal constant would be the most intuitive syntax. The attempt
>> below also closely follows the documentation AFAIK:
>> http://www.postgresql.org/docs/current/static/arrays.html
>>
>> INSERT INTO mytypetable VALUES (
>>  5, '{ ('a', 'aa'), ('b', 'bb') }' );
>>> ERROR: Syntax Error
>
>
> You need to escape those quotes you put inside the literal:
>
> INSERT INTO mytypetable VALUES (
>  5, '{ (''a'', ''aa''), (''b'', ''bb'') }' );
>
> Or use dollar-quoting (http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING):
>
> INSERT INTO mytypetable VALUES (
>  5, $${ ('a', 'aa'), ('b', 'bb') }$$ );
>
> Alban Hertroys
>
> --
> Screwing up is an excellent way to attach something to the ceiling.
>
>
> !DSPAM:1205,4d848300235885070126629!
>
>
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Vincent Veyron 2011-03-19 19:40:33 Re: triggers and FK cascades
Previous Message Tomas Vondra 2011-03-19 14:24:58 Re: query taking much longer since Postgres 8.4 upgrade