PostreSgl typ text v Oracle + perl DBI

Jiri Chaloupka dev na b2bexpander.com
Úterý Listopad 6 08:59:33 CET 2001


Pouzivam varchar2

> Dobry den,
>
> kterym typem Oracle (v8) by bylo nejlepsi nahradit typ 'text' z
> PostgreSQL abych musel co nejmene upravovat program v perlu (DBI).
>
> Skousel jsem pouzit CLOB. Ale moc mi to nefunguje, v manualovych
> strankach DBD::Oracle se pise, ze pro insert/update mam pouzit neco
> jako  $sth->($field_num, $lob_value, { ora_type => ORA_CLOB });, pro
> select by to melo nejak fungovat (ja mam zatim opacnou skusenost - viz
> priklad na konci)
>
> Chtel bych se tomu pokud mozno vyhnout, v PostgreSQL to fungovalo hezky
> a nerad by menil kusy programu (doufal sem, ze DBI takove problemy resi
> ;(
>
> Je tedy vubec mozne s Oracle a DBI pouzit typ CLOB (nebo neco jinebo
> pro dlouhe texty), tak abych s tim mohl pracovat stejne jako napriklad
> s varchar? Tzn. zadna vata typu bind_param...
>
> jak mi to pracuje aspon na jednoduchem prikladu:
>
> v SQL:
> create table blb1
> (
>  t1 CLOB,
>  t2 CLOB
> );
>
> v perlu:
> ---
> my $sth;
> $sth=$dbh->prepare("insert into blb1 values (?,?)");
> $sth->execute('x','y');
> ---
> funguje...
>
>
> --
> $sth=$dbh->prepare("select * from blb1");
> $sth->execute;
> my $hash_ref;
> while ($hash_ref = $sth->fetchrow_hashref)
> {
>  print "$$hash_ref{t1}         $$hash_ref{t2}\n";
> }
> ---
> uz nefunguje...
>
>
> perl vypise:
> DBD::Oracle::db prepare failed: ORA-03115: unsupported network datatype
>  or representation (DBD: odescr failed) at ../clobtest.pl line 34.
> Can't call method "execute" without a package or object
> reference at ../clobtest.pl line 35.
>
> (34. radek je radek s
> "$sth=$dbh->prepare("insert into blb1 values (?,?)");")
>
> zdravi
> 	Arnost Valicek
> --
> Arnost Valicek <xvalicek na fi.muni.cz>


-- 
Jiri Chaloupka
B2BExpander.com
chaloupka na b2bexpander.com
**********************************************
Have you visited www.b2bexpander.com today?






Další informace o konferenci Databases