From: | 张海峰 <roxetter(at)gmail(dot)com> |
---|---|
To: | rod(at)iol(dot)ie |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Function nesting issue |
Date: | 2010-01-28 13:26:26 |
Message-ID: | 2e91b5481001280526h606d9fe1o3fd7bbca6cf55890@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Actually, the real function name is t_outer and t_inner, a and b is
just for convenience.
So you can see them as
CREATE OR REPLACE FUNCTION a (out ...
and
CREATE OR REPLACE FUNCTION b (out ...
And i call function a by jdbc:
...
conn.setAutoCommit(false);
CallableStatement cs = conn.prepareCall("{ call a( ?, ? ) }");
cs.registerOutParameter(1, Types.INTEGER);
cs.registerOutParameter(2, Types.OTHER);
cs.execute();
ResultSet rs = (ResultSet) cs.getObject(2);
...
2010/1/28 Raymond O'Donnell <rod(at)iol(dot)ie>:
> On 28/01/2010 07:32, 张海峰 wrote:
>> i have 2 functions, naming a and b, both outputing a resultset(cursor)
>> and a integer.
>> a calls b
>>
>> a:
>> CREATE OR REPLACE FUNCTION "public"."t_outer" (out o_rs
>> "pg_catalog"."refcursor", out o_i integer) RETURNS record AS
>> ...
>> select t_inner(o_rs, o_i);
>> ...
>>
>> b:
>> CREATE OR REPLACE FUNCTION "public"."t_inner" (out o_rs
>> "pg_catalog"."refcursor", out o_i integer) RETURNS record AS
>> ...
>>
>> Compilation is ok, but when i call a, it says:
>> ERROR: function b(refcursor, integer) does not exist
>> No function matches the given name and argument types. You might need
>> to add explicit type casts.
>
> Can you post the query that calls the outer function? In the above,
> you've named your functions t_outer() and t_inner(); so if you're trying
> to call a function named b(), then naturally you'll get an error.
>
> BTW, if your function names are all lower-case, you don't need all the
> double-quotes.
>
> Ray.
>
> --
> Raymond O'Donnell :: Galway :: Ireland
> rod(at)iol(dot)ie
>
--
you are my sunshine, my only sunshine...
From | Date | Subject | |
---|---|---|---|
Next Message | Andy Colson | 2010-01-28 15:11:52 | Re: dynamic crosstab |
Previous Message | Ivan Sergio Borgonovo | 2010-01-28 13:23:47 | tsvector minimum match using index |