PLS-00306,problem while executing procedure from oracle e_comerce [message #290829] |
Tue, 01 January 2008 04:14 ![Go to next message Go to next message](/forum/theme/orafaq/images/down.png) |
ridhi_sundar
Messages: 184 Registered: November 2007 Location: Bangalore
|
Senior Member |
|
|
Hi
I have writen a procedure in oracle.Tere i have a parameter with type varchar2.
While i registered it in e_comerce i choosed the value set as 15characters.
When i am runing the program from my ecomerce application it gives an error as below:
ORACLE error 6550 in FDPSTP
Cause: FDPSTP failed due to ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'PO_OUTPUT'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
.
there is no error when i am executing my procedure in toad/sql+ but this error comes only in e_comerce application.
PLease tell what is the reason and what can be the solution?
|
|
|
Re: PLS-00306,problem while executing procedure from oracle e_comerce [message #290854 is a reply to message #290829] |
Tue, 01 January 2008 10:55 ![Go to previous message Go to previous message](/forum/theme/orafaq/images/up.png) ![Go to next message Go to next message](/forum/theme/orafaq/images/down.png) |
![](http://www.orafaq.com/forum/images/custom_avatars/72104.gif) |
Littlefoot
Messages: 21818 Registered: June 2005 Location: Croatia, Europe
|
Senior Member Account Moderator |
|
|
Oracle | PLS-00306: wrong number or types of arguments in call to 'string'
Cause: This error occurs when the named subprogram call cannot be matched to any declaration for that subprogram name. The subprogram name might be misspelled, a parameter might have the wrong datatype, the declaration might be faulty, or the declaration might be placed incorrectly in the block structure. For example, this error occurs if the built-in square root function SQRT is called with a misspelled name or with a parameter of the wrong datatype.
Action: Check the spelling and declaration of the subprogram name. Also confirm that its call is correct, its parameters are of the right datatype, and, if it is not a built-in function, that its declaration is placed correctly in the block structure.
|
While in TOAD (or SQL*Plus), did you test the procedure using the same parameters as you used in your e-commerce application?
|
|
|
|
|
Re: PLS-00306,problem while executing procedure from oracle e_comerce [message #290945 is a reply to message #290889] |
Wed, 02 January 2008 04:25 ![Go to previous message Go to previous message](/forum/theme/orafaq/images/up.png) ![Go to next message Go to next message](/forum/theme/orafaq/images/down.png) |
ridhi_sundar
Messages: 184 Registered: November 2007 Location: Bangalore
|
Senior Member |
|
|
Thank you for your responce
1. about its call its corect.
2. about data type i am not sure
in my procedure i have type varchar2.where as in the e_comerece application varchar2 is not available in the LOV.hence i have taken 20characters. the same in case of number i have taken 15 digit number.
3. What u mean by placement of declaration in block structure?
|
|
|
Re: PLS-00306,problem while executing procedure from oracle e_comerce [message #291013 is a reply to message #290945] |
Wed, 02 January 2008 12:08 ![Go to previous message Go to previous message](/forum/theme/orafaq/images/up.png) ![Go to next message Go to next message](/forum/theme/orafaq/images/down.png) |
![](http://www.orafaq.com/forum/images/custom_avatars/72104.gif) |
Littlefoot
Messages: 21818 Registered: June 2005 Location: Croatia, Europe
|
Senior Member Account Moderator |
|
|
"20 characters" *smells* like a CHAR variable. If that is true, it is then space/blank padded to its full size. See an example: first, we'll create a table and insert some values in there:SQL> create table test (col_c char(10), col_v varchar2(10));
Table created.
SQL> insert into test (col_c, col_v) values ('test', 'test');
1 row created. Now let's see their lengths:SQL> select length(col_c) len_c, length(col_v) len_v
2 from test;
LEN_C LEN_V
---------- ----------
10 4 See? A CHAR column's length is 10 although we've inserted 'test' in there.
A RTRIM function will remove padded characters and we'll get the correct length:SQL> select length(rtrim(col_c)) len_rc from test;
LEN_RC
----------
4
Now, could you trim the value you pass to the procedure and see what happens?
|
|
|
|
|
|
|
|
|