Обсуждение: field of type oid

Поиск
Список
Период
Сортировка

field of type oid

От
"RaviShankar K"
Дата:
Hi ,
 
    I have 2 tables in my postgres DB .
    2 tables have a field "my_image" of type "oid" ( Blob) .
 
    I have to 
        1.get a row from table A
        2.insert it in table B 
        3.delete that from table A .
 
    Can I do like this ?
        ResultSet rs ;
        PreparedStatement pstmt;
        String qry2 = "SELECT * FROM A";
        String qry = "INSERT INTO B (my_image) VALUES(?)";
  
        /*This part is doubtful to me */
        pstmt.setInt(rs.getInt("my_image"));
 
        I am using rs.getInt() because I need only oid . It is working fine when I tested this code.
I am able to insert integer in to field of type oid . I can retrieve image(Blob object) from table B using that inserted integer.
 
    However I don't know how much correct this way is . Please advice me.
    Thanks in advance.
 
Regards,
Ravi
 
 
 
 
       
     
 
   

Re: field of type oid

От
Barry Lind
Дата:
Ravi,

Yes this will work.  The blob oid is just a pointer to the blob.
Multiple rows can have an oid reference to the same blob.  I don't know
if this is how you want to code your application though.  That would
depend on what you are trying to accomplish overall and you haven't
provided enough information here to answer that question.  The one
question I would ask you about your application design is how/when do
blobs finally get deleted?  (Are you keeping reference counts to know
when no more rows are referencing the blob so that it is OK to delete?)

thanks,
--Barry

RaviShankar K wrote:
> Hi ,
>
>
>
>     I have 2 tables in my postgres DB .
>
>     2 tables have a field "my_image" of type "oid" ( Blob) .
>
>
>
>     I have to
>
>         1.get a row from table A
>
>         2.insert it in table B
>
>         3.delete that from table A .
>
>
>
>     Can I do like this ?
>
>         ResultSet rs ;
>
>         PreparedStatement pstmt;
>
>         String qry2 = "SELECT * FROM A";
>
>         String qry = "INSERT INTO B (my_image) VALUES(?)";
>
>
>
>         /*This part is doubtful to me */
>
>         pstmt.setInt(rs.getInt("my_image"));
>
>
>
>         I am using rs.getInt() because I need only oid . It is working
> fine when I tested this code.
>
> I am able to insert integer in to field of type oid . I can retrieve
> image(Blob object) from table B using that inserted integer.
>
>
>
>     However I don't know how much correct this way is . Please advice me.
>
>     Thanks in advance.
>
>
>
> Regards,
>
> Ravi
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>