Re: Calling procedure

From: William Robertson <williamr2019_at_googlemail.com>
Date: Tue, 26 Aug 2008 01:43:37 -0700 (PDT)
Message-ID: <88f260ac-bb16-4d21-9ac9-eb3f17788af3@t54g2000hsg.googlegroups.com>


On Aug 25, 9:36 pm, Mtek <m..._at_mtekusa.com> wrote:
> On Aug 25, 3:31 pm, t..._at_panix.com (Dan Blum) wrote:
>
> I did try prefixing the schema name also:
>
> INSERT_PORTFOLIO_ARR (
>     p_user_id        => p_customer_id,
>     p_portfolio_id   => p_portfolio_id,
>     p_ticker         => v_ticker_tab,
>     p_action         => v_action_tab);
>
> CREATE OR REPLACE PROCEDURE CUSTOMER.INSERT_PORTFOLIO_ARR (
>      p_user_id        NUMBER,
>      p_portfolio_id   NUMBER DEFAULT NULL,
>      p_line           IN_STR_ARR,
>      p_ticker         IN_STR_ARR,
>      p_price          IN_STR_ARR,
>      p_shares         IN_STR_ARR,
>      p_date           IN_STR_ARR,
>      p_comm           IN_STR_ARR,
>      p_action         IN_STR_ARR,
>      p_portfolio_name VARCHAR2 DEFAULT NULL,
>      p_portfolio_des  VARCHAR2 DEFAULT NULL,
>      product          VARCHAR2 DEFAULT NULL) IS

I think the suggestion was to prefix the schema name when calling the procedure, not when creating it.

btw, calling an invalid procedure will give:

PLS-00905: object [procedurename] is invalid

Calling a procedure passing the wrong number of types of arguments will give:

PLS-00306: wrong number or types of arguments in call to '[procedurename]'

If you get "PLS-00302: component 'INSERT_PORTFOLIO_ARR' must be declared", it means INSERT_PORTFOLIO_ARR does not exist in the specified scope, that is, either it does not exist at all, or else it exists in some other schema and you didn't specify the schema or you don't have privileges to execute it, or both. Received on Tue Aug 26 2008 - 03:43:37 CDT

Original text of this message