|
|
|
|
|
|
| Author |
Message |
FERREIRA William (COFRAMI *nix forums beginner
Joined: 07 Mar 2005
Posts: 34
|
Posted: Wed Mar 16, 2005 1:17 pm Post subject:
plPerl subroutine
|
|
|
hi
is it possible to create subroutines with plPerl ?
i tried this :
CREATE OR REPLACE FUNCTION adoc.CREATE_XML_FILE(docId int4, eleId int4, evo
int4, fileName text, fileRelativeDir text)
RETURNS int4 AS
$BODY$
my $theClob='';
my $params = 'select
adoc.GET_XML_FRAG('.$_[0].','.$_[1].','.$_[2].',\''.$theClob.'\','.0;
$params = $params.')';
$theClob = spi_exec_query($params);
elog NOTICE, $theClob;
return 4;
$BODY$
LANGUAGE 'plperl' VOLATILE;
CREATE OR REPLACE FUNCTION adoc.GET_XML_FRAG(docId int4, eleId int4, evo
int4, clob text, indx int4)
RETURNS text AS
$BODY$
my $t_clob = $_[3].'totototototototototot';
return $t_clob;
$BODY$
LANGUAGE 'plperl' VOLATILE;
but the CREATE_XML_FILE doesn't display 'totototototototototot' but
HASH(0xf03fa4)....
is it possible with this solution or does i need to create a module
(including makefile, .pm, ...) ?
if i must create a module, can you explain how to do ?
thanks |
|
| Back to top |
|
 |
Sean Davis *nix forums Guru Wannabe
Joined: 01 Mar 2005
Posts: 172
|
Posted: Wed Mar 16, 2005 2:09 pm Post subject:
Re: plPerl subroutine
|
|
|
My understanding is that pl/perl functions are simply anonymous
coderefs, so they can't call each other. What is it that you REALLY
want to do? (The code looks a bit like a toy example.)
Sean
On Mar 16, 2005, at 9:17 AM, FERREIRA William (COFRAMI) wrote:
| Quote: | hi
is it possible to create subroutines with plPerl ?
i tried this :
CREATE OR REPLACE FUNCTION adoc.CREATE_XML_FILE(docId int4, eleId
int4, evo int4, fileName text, fileRelativeDir text)
RETURNS int4 AS
$BODY$
my $theClob='';
my $params = 'select
adoc.GET_XML_FRAG('.$_[0].','.$_[1].','.$_[2].',\''.$theClob.'\','.0;
$params = $params.')';
$theClob = spi_exec_query($params);
elog NOTICE, $theClob;
return 4;
$BODY$
LANGUAGE 'plperl' VOLATILE;
CREATE OR REPLACE FUNCTION adoc.GET_XML_FRAG(docId int4, eleId int4,
evo int4, clob text, indx int4)
RETURNS text AS
$BODY$
my $t_clob = $_[3].'totototototototototot';
return $t_clob;
$BODY$
LANGUAGE 'plperl' VOLATILE;
but the CREATE_XML_FILE doesn't display 'totototototototototot' but
HASH(0xf03fa4)....
is it possible with this solution or does i need to create a module
(including makefile, .pm, ...) ?
if i must create a module, can you explain how to do ?
thanks
|
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly |
|
| Back to top |
|
 |
Tom Lane *nix forums Guru
Joined: 24 Mar 2005
Posts: 2070
|
Posted: Wed Mar 16, 2005 2:33 pm Post subject:
Re: plPerl subroutine
|
|
|
"FERREIRA William (COFRAMI)" <william.ferreira@airbus.com> writes:
| Quote: | but the CREATE_XML_FILE doesn't display 'totototototototototot' but
HASH(0xf03fa4)....
|
I think what you get back from spi_exec_query is always going to be
a hash, even if it contains only one field. So you need to pick out
the field value.
regards, tom lane
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org) |
|
| Back to top |
|
 |
Harald Fuchs *nix forums addict
Joined: 14 Mar 2005
Posts: 73
|
Posted: Wed Mar 16, 2005 2:37 pm Post subject:
Re: plPerl subroutine
|
|
|
In article <1904E3EB39448246A7ECB76DF34A70B00143B48A@TOCOMEXC03>,
"FERREIRA William (COFRAMI)" <william.ferreira@airbus.com> writes:
| Quote: | CREATE OR REPLACE FUNCTION adoc.CREATE_XML_FILE(docId int4, eleId int4, evo
int4, fileName text, fileRelativeDir text)
RETURNS int4 AS
$BODY$
my $theClob='';
my $params = 'select
adoc.GET_XML_FRAG('.$_[0].','.$_[1].','.$_[2].',\''.$theClob.'\','.0;
$params = $params.')';
$theClob = spi_exec_query($params);
elog NOTICE, $theClob;
return 4;
$BODY$
LANGUAGE 'plperl' VOLATILE;
CREATE OR REPLACE FUNCTION adoc.GET_XML_FRAG(docId int4, eleId int4, evo int4,
clob text, indx int4)
RETURNS text AS
$BODY$
my $t_clob = $_[3].'totototototototototot';
return $t_clob;
$BODY$
LANGUAGE 'plperl' VOLATILE;
but the CREATE_XML_FILE doesn't display 'totototototototototot' but
HASH(0xf03fa4)....
|
.... and rightly so. As documented in The Fine Manual, spi_exec_query
returns a hash reference. Probably you want something like
my $rv = spi_exec_query($params);
$theClob = $rv-.{rows}[0]->{get_xml_frag};
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly |
|
| Back to top |
|
 |
Google
|
|
| Back to top |
|
 |
|
|
The time now is Fri Jan 09, 2009 6:53 am | All times are GMT
|
|
Online Advertising | Notebook Deals | Credit Cards UK | Credit Counseling | Credit Cards
|
|
Copyright © 2004-2005 DeniX Solutions SRL
|
|
|
|
Other DeniX Solutions sites:
Unix/Linux blog |
electronics forum |
medicine forum |
science forum |
|
|
Privacy Policy
|
Powered by phpBB © 2001, 2005 phpBB Group
|
|