Re: Help : insert a bytea data into new table

Поиск
Список
Период
Сортировка
От dennis
Тема Re: Help : insert a bytea data into new table
Дата
Msg-id hn710t$16bp$1@news.hub.org
обсуждение исходный текст
Ответ на Re: Help : insert a bytea data into new table  (Ben Morrow <ben@morrow.me.uk>)
Список pgsql-sql
Hi Ben

here is my function , it's for fix missing chunk problem.
It has same problem ,please take look


thank for you help

-------------table----------------------


db=# \d usersessiontable;        Table "public.usersessiontable"  Column   |          Type          | Modifiers
-----------+------------------------+----------- serverid  | character varying(100) | sessionid | character varying(50)
| data      | bytea                  |
 
Indexes:    "usersessiontable_idx" btree (sessionid)
db=#

db=# \d usersessiontable_test;        Table "public.usersessiontable"  Column   |          Type          | Modifiers
-----------+------------------------+----------- serverid  | character varying(100) | sessionid | character varying(50)
| data      | bytea                  |
 

------------------function--------------------------------


CREATE OR REPLACE FUNCTION check_missing_chunk_table_usersessiontable()  RETURNS integer AS
$BODY$
declare
begin   records = 0;   OPEN curs1  FOR EXECUTE 'SELECT * FROM usersessiontable ORDER BY 
sessionid';   loop        FETCH curs1 INTO rowvar;        IF  NOT FOUND THEN            EXIT;        END IF;
begin       a_sql = 'insert into 
 
usersessiontable_test(sessionid,serverid,data) 
values('''||rowvar.sessionid||''','''||rowvar.serverid||''',E'''||rowvar.data||''')';<<--my 
problem        execute a_sql;        exception            when others then                raise notice '/* NUM:%,
DETAILS:%*/', SQLSTATE, SQLERRM;                raise notice  'select * from % order by % limit 1 
 
offset %',v_old_table,v_old_order_by,records;        end;        records=records+1;   end loop;   return records;
end;$BODY$  LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER;
ALTER FUNCTION check_missing_chunk_table_usersessiontable() OWNER TO 
postgres;

----------------------run function ---------------------------
select check_missing_chunk_table_usersessiontable();

result:

NOTICE:  /* NUM:42883, DETAILS:operator does not exist: text || bytea */  <<<<<my error message
NOTICE:  select * from usersessiontable order by sessionid limit 1 offset 1 check_missing_chunk_table_usersessiontable
--------------------------------------------                                      1
(1 row)


Ben Morrow 提到:
> Quoth dennis <dennis@teltel.com>:
>> here is example
>>
>> table name is "mail":
>> column    |   type
>> -------------------------
>> sender    |char
>> subject   |char
> 
> I presume you mean 'varchar'?
> 
>> content   |bytea
>>
>>
>> I want copy some record into new table 'mail_new'.
>>
>> sql:
>> create table mail_new as select * from mail sender='dennis'
> 
> You omitted the WHERE. It's very hard to see what's actually going on
> when you keep mis-typing the commands you used.
> 
>> result has an error:
>> operator does not exist: text || bytea
>>
>>
>> But if my sql statement has no column "content"
>> the sql works.
>> sql:
>> create table mail_new as select sender,subject from mail sender='dennis'
> 
> No, it still doesn't give that error for me. Show us something you've
> *actually* *tried*.
> 
> Ben
> 
> 


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

Предыдущее
От: "Dan McFadyen"
Дата:
Сообщение: Odd query behavior
Следующее
От: "query"
Дата:
Сообщение: list of all months