Unanswered: PL/pgSQL Copy data from one table to another
I am trying to copy data from one table to another using plpgsql. The two tables have different structure cause the new one is object-table. My function is this :
CREATE OR REPLACE FUNCTION copy_customers() RETURNS integer as $BODY$
idcounter integer := 1;
FOR idcounter In 1..20000
-- Add the values into the variables.
SELECT "FirstName","LastName","Address1","Address2","City ","State","Zip","Country","Region"
INTO firstname, lastname,address1,address2,city,state,zip,country, region
WHERE "CustomerId" = idcounter;
--Insert the variables to the new table.
INSERT INTO "Customers_object_table" (customerid , firstname, lastname, address) VALUES(idcounter,firstname,lastname,(address1,addr ess2,city,state,zip,country,region));
This function is working fine, but the problem is that the table "Customers" has more than 20 columns, so the code is ugly and unmaintainable. Also I want to do the same job for 10 more tables.
Can somebody help me to change this function in a way that I won't have to declare the columns?
Notice that the destination-tables are object tables and can be different than the old tables, so I am not sure if what I ask is possible.