Re: Equivalent syntax of PL/SQL using array in PL/pgSQL

Поиск
Список
Период
Сортировка
От Dang Minh Huong
Тема Re: Equivalent syntax of PL/SQL using array in PL/pgSQL
Дата
Msg-id 4521440B-28F6-472D-BA79-BB7CFA9A4F91@gmail.com
обсуждение исходный текст
Ответ на Re: Equivalent syntax of PL/SQL using array in PL/pgSQL  (Elliot <yields.falsehood@gmail.com>)
Ответы Re: Equivalent syntax of PL/SQL using array in PL/pgSQL
Список pgsql-general
Hi,

2013/11/15 0:38、Elliot <yields.falsehood@gmail.com> のメッセージ:

>> On 2013-11-14 10:32, Dang Minh Huong wrote:
>> Hi,
>>
>> 2013/11/15 0:20、Elliot <yields.falsehood@gmail.com> のメッセージ:
>>
>>>> On 2013-11-14 10:13, Dang Minh Huong wrote:
>>>> Hi all,
>>>>
>>>> I am using PostgreSQL 9.1 and get a syntax error with the following PL/pgSQL clause.
>>>> Is there any equivalent syntax in PL/pgSQL to solve it.
>>>>
>>>> ------
>>>> rec typ[];
>>>> (typ[1]).t1 := 1;
>>>> ------
>>>>
>>>> typ is type which was created by command below.
>>>>
>>>> Create type typ as(
>>>> t1 interger,
>>>> t2 text);
>>>>
>>>> I am migrating data from Oracle to PostgreSQL and encounter this issue.
>>>>
>>>> Thanks,
>>>> Huong,
>>> If typ is the type and rec is the variable, do you mean to access rec[1]?
>> Sorry for this miss.
>> Yes, typ is the type and rec is the variable.
>> I only want to assign a value to rec[1].t1.
>>
>> Thanks,
>> Huong,
>
> I can't recall a source on this but I'm not sure you can assign to
> composite types' members in plpgsql

I think so too.

> (unlike in straight sql where update
> set rec.t1 := 1 is valid). You can build the entire record at once like
> "rec[1] := (1, null)::typ;".
>

But if do like that, the rec[1].t2 will replaced by null.
Is there another way?

Thanks,
Huong,



В списке pgsql-general по дате отправления:

Предыдущее
От: David Johnston
Дата:
Сообщение: Re: Equivalent syntax of PL/SQL using array in PL/pgSQL
Следующее
От: Dang Minh Huong
Дата:
Сообщение: Re: Equivalent syntax of PL/SQL using array in PL/pgSQL