X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id F385453D83 for ; Thu, 14 Apr 2005 11:53:17 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 95778-01 for ; Thu, 14 Apr 2005 14:53:14 +0000 (GMT) Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130]) by svr1.postgresql.org (Postfix) with ESMTP id 2D04653710 for ; Thu, 14 Apr 2005 11:53:10 -0300 (ADT) Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1]) by sss.pgh.pa.us (8.13.1/8.13.1) with ESMTP id j3EErEYC000565; Thu, 14 Apr 2005 10:53:15 -0400 (EDT) To: dpandey@secf.com Cc: "'PostgreSQL'" Subject: Re: dynamic 'INSERT' query? In-reply-to: <20050414114131.C840B53726@svr1.postgresql.org> References: <20050414114131.C840B53726@svr1.postgresql.org> Comments: In-reply-to "Dinesh Pandey" message dated "Thu, 14 Apr 2005 17:07:54 +0530" Date: Thu, 14 Apr 2005 10:53:14 -0400 Message-ID: <564.1113490394@sss.pgh.pa.us> From: Tom Lane X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.006 tagged_above=0 required=5 tests=AWL X-Spam-Level: X-Archive-Number: 200504/192 X-Sequence-Number: 21085 "Dinesh Pandey" writes: > FOR _record IN SELECT A1, A2 FROM A > LOOP > _sql := 'INSERT INTO B VALUES (:A1, :A2)'; > EXECUTE (_sql); Why do you need a dynamic query here at all? You could just do FOR _record IN SELECT A1, A2 FROM A LOOP INSERT INTO B VALUES (_record.A1, _record.A2); This would be much faster as well as simpler to code. As far as I can see offhand, you only need EXECUTE when you want to change table and/or field names from one execution to the next of a particular query. If you have such a problem, you are omitting the important details ... regards, tom lane