Urgent : ADO / OraOLEDB gives random PLS-00306: wrong number or types of arguments
Hi people,
Using our production environment of Win2K AS, IIS 5.0 --> Win2K AS, COM+ / ADO, Oracle OLE DB 9i --> Solaris Oracle 9i we have a month of trace logs telling us that some calls to our PL/SQL package methods have the "PLS-00306: wrong number or types of arguments".
Closer examination of our development systems also revealed these errors that seem to occur fairly randomly. (No recompiles in the database [at least according to USER_OBJECT.TIMESTAMP] and no invalid packages or schema objects).
One call on a session will succeed (so there aren't any obvious syntax or data range boundary issues) and then with no obvious reason, a second call to the same package method will fail with the error message in the subject.
Anyone else seen this behaviour and know of a fix?
Thanks
Lachlan Pitts
Hi,
The temp in the package and the temp in the anonymous block that calls the package are two different data types. They (coincidentally) have exactly the same number and type of elements, just as they (coincidentally) have exactly the same name, but they are still different.
Since the type is declare in the package head, you can reference it from oputside the package. You don't have to create a similar type in the calling block: just reference the package type, like this:
declare
v_out pkg_1.temp;
begin
pkg_1.DoSomething( 'a', 'b', v_out);
dbms_output.put_line(v_out.val1);
end;
Similar Messages
-
PLS-00306: wrong number or types of arguments in call to 'MULTISET_INTERSE
CREATE OR REPLACE PACKAGE pkg_mkt_hub_load_collection
AS
PROCEDURE sp_final_load_mkt_hub;
END pkg_mkt_hub_load_collection;
CREATE OR REPLACE PACKAGE BODY pkg_mkt_hub_load_collection
AS
c_default_limit CONSTANT PLS_INTEGER:=5000;
PROCEDURE sp_final_lvl_idx_mon_hub;
PROCEDURE sp_final_lvl_idx_mon_hub
AS
CURSOR cur_lvl_idx_mon IS
SELECT idxmap.ssia_index_code,idxstg.start_date,idxstg.currency,idxstg.level1,idxstg.type,
idxstg.return_month,idxstg.return_3months, idxstg.return_6months, idxstg.return_ytd, idxstg.return_1year,
idxstg.return_3years, idxstg.return_5years,idxstg.return_10years,idxstg.market_cap,
idxstg.mkt_file_id
FROM mkt_total_lvl_indx_mon_stg idxstg,
md_vendor_index_map idxmap
WHERE idxmap.source = idxstg.source
AND idxmap.base_currency = idxstg.currency
AND idxmap.return_type = idxstg.type
AND idxmap.mkt_index_id = idxstg.vendor_code
AND idxmap.monthly = 'Y'
AND idxmap.file_type = 'T';
TYPE cur_lvl_idx_tab is table of cur_lvl_idx_mon%ROWTYPE;
cur_lvl_idx_rec cur_lvl_idx_tab;
CURSOR cur_idx_mon_hub IS
SELECT idxhub.ssia_index_id,idxhub.effective_date,idxhub.currency,index_level,idxhub.type,
idxhub.return_month,idxhub.return_3months, idxhub.return_6months, idxhub.return_ytd, idxhub.return_1year,
idxhub.return_3years, idxhub.return_5years,idxhub.return_10years,idxhub.market_cap,
idxhub.mkt_file_id
FROM mkt_total_lvl_indx_mon_hub idxhub;
TYPE cur_idx_mon_tab IS TABLE OF cur_idx_mon_hub%ROWTYPE;
cur_idx_mon_rec cur_idx_mon_tab;
l_col_3 cur_idx_mon_tab;
BEGIN
OPEN cur_lvl_idx_mon;
LOOP
FETCH cur_lvl_idx_mon BULK COLLECT INTO cur_lvl_idx_rec LIMIT c_default_limit;
EXIT WHEN cur_lvl_idx_mon%NOTFOUND;
END LOOP;
OPEN cur_idx_mon_hub;
LOOP
FETCH cur_idx_mon_hub BULK COLLECT INTO cur_idx_mon_rec LIMIT c_default_limit;
EXIT WHEN cur_idx_mon_hub%NOTFOUND;
END LOOP;
l_col_3 := cur_lvl_idx_rec MULTISET INTERSECT cur_idx_mon_rec;
CLOSE cur_lvl_idx_mon;
CLOSE cur_idx_mon_hub;
END sp_final_lvl_idx_mon_hub;
PROCEDURE sp_final_load_mkt_hub
AS
BEGIN
NULL;
END sp_final_load_mkt_hub;
END pkg_mkt_hub_load_collection;
show error
error code
Code: [Select all] [Show/ hide]SQL> @pkg_mkt_hub_load_collection.sql
Package created.
Warning: Package Body created with compilation errors.
Errors for PACKAGE BODY PKG_MKT_HUB_LOAD_COLLECTION:
LINE/COL ERROR
57/4 PL/SQL: Statement ignored
PLS-00306: wrong number or types of arguments in call to 'MULTISET_INTERSECT_ALL'
SQL>
please give an idea about this errorDeclaration is already visible.
TYPE cur_lvl_idx_tab is table of cur_lvl_idx_mon%ROWTYPE;The MULTISET operator must be used on collections of the same TYPE. You are attempting to use it on two different TYPEs
Since PL/SQL records cannot be compared for equality (yet) MULTISET operations on collections of PL/SQL record are not supported. You are attempting to use the MULTISET operator on collections of PL/SQL record.
I believe this is possible with a collection of persistent object type with a MAP or ORDER method.
But then again why not just use INTERSECT in SQL? -
PLS-00306: wrong number or types of arguments in call to . Error Help
I have create a algorithm which The member function at the end, returns xc and yc.
ERROR at line 9:
ORA-06550: line 9, column 63:
PLS-00306: wrong number or types of arguments in call to 'o'
ORA-06550: line 9, column 2:
PL/SQL: Statement ignoredGuess your function has: RETURN NUMBER
If so, the statement RETURN 'True' will give you exactly that error.
Also:
Return xc;
Return yc;
does not work as intended. The function will end by returning xc. (If it ever makes it that far) -
PLS-00306: wrong number or types of arguments in call to 'GET_CUST_ID'
i've created the below procedure, whenever i'm trying excuting its giving the following Error.
Please guide me how to solve this issu...........
SQL> create or replace procedure get_cust_id(in_source in varchar2,
2 in_reference_7 in varchar2,
3 cus_name out varchar2)
4 is
5 begin
6 if in_source ='Receivables' then
7 if in_reference_7 is null then
8 cus_name := '';
9 else
10 select cu.customer_name
11 into cus_name
12 from ra_customers cu
13 where cu.customer_id = to_number(in_reference_7);
14 fnd_file.put_line(100, cus_name);
15 end if;
16 end if;
17 end;
18 /
Procedure created.
SQL> exec get_cust_id('Receivables',1000) ;
BEGIN get_cust_id('Receivables',1000) ; END;
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'GET_CUST_ID'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Thanks in Advance.
Srinivas.PVivek L wrote:
Vitor M.A. Rodrigues wrote:
If it has 3 varchar2 parameters then you should give 3 ... It should be something like this:
exec get_cust_id('Receivables','1000','1000') ;
Slight modification Victor.
If you see the signature of procedure, it has 2 IN params and 1 OUT param :
SQL> create or replace procedure get_cust_id(in_source in varchar2,
2 in_reference_7 in varchar2,
3 cus_name out varchar2)
4 isSo for parameter cus_name (which is an out parameter) value can not be assigned , but has to be captured in some local vaiable.
Something like this :
SQL> var t_out varchar2(4000);
SQL> exec get_cust_id(in_source => 'Receivables', in_reference_7 => 1000,cus_name => :t_out );
Sorry didn't see the OUT : (
edit: Vivek L Put the 1000 with '' ;) . Will edit my response : ) -
PLS-00306: wrong number or types of arguments in call to 'Test'
Hi,
I have problem in my package .. here i will give the sample code .. can u please help me to solve
i have
create or replace package TEST is
PROCEDURE WRITE_FILE();
end TEST;
CREATE OR REPLACE PACKAGE BODY TEST IS
TYPE TY_TIPE IS TABLE OF VARCHAR2(120) INDEX BY BINARY_INTEGER;
FUNCTION GET_COLLECTION(IN_INPUT IN VARCHAR2) RETURN TY_TIPE AS
V_TYPE TY_TIPE;
BEGIN
-- SOME OPERATION AND FINALLY
RETURN V_TYPE
END GET_COLLECTION;
PROCEDURE WRITE_FILE() AS
V_TYPE TY_TIPE;
BEGIN
V_TYPE:=GET_COLLECTION('test');
END WRITE_FILE;
END TEST;
At the line in bold .. am getting error "PLS-00306: wrong number or types of arguments in call to 'GET_COLLECTION'" like this
Please help me out
Regards
Prabu.pNo, it is not syntactically fine:
SQL> create or replace package TEST is
2
3 PROCEDURE WRITE_FILE();
4 end TEST;
5
6 /
Warning: Package created with compilation errors.
SQL> show error
Errors for PACKAGE TEST:
LINE/COL ERROR
3/22 PLS-00103: Encountered the symbol ")" when expecting one of the
following:
<an identifier> <a double-quoted delimited-identifier>
current
SQL>
SQL>
SQL> CREATE OR REPLACE PACKAGE BODY TEST IS
2
3 TYPE TY_TIPE IS TABLE OF VARCHAR2(120) INDEX BY BINARY_INTEGER;
4
5 FUNCTION GET_COLLECTION(IN_INPUT IN VARCHAR2) RETURN TY_TIPE AS
6
7 V_TYPE TY_TIPE;
8
9 BEGIN
10
11 -- SOME OPERATION AND FINALLY
12
13 RETURN V_TYPE
14
15 END GET_COLLECTION;
16
17 PROCEDURE WRITE_FILE() AS
18
19 V_TYPE TY_TIPE;
20
21 BEGIN
22
23 V_TYPE:=GET_COLLECTION('test');
24 END WRITE_FILE;
25
26 END TEST;
27 /
Warning: Package Body created with compilation errors.
SQL>
SQL>
SQL> show error
Errors for PACKAGE BODY TEST:
LINE/COL ERROR
15/1 PLS-00103: Encountered the symbol "END" when expecting one of the
following:
. ( * @ % & = - + ; < / > at in is mod remainder not rem
<an exponent (**)> <> or != or ~= >= <= <> and or like LIKE2_
LIKE4_ LIKEC_ between || multiset member SUBMULTISET_
The symbol ";" was substituted for "END" to continue.
17/22 PLS-00103: Encountered the symbol ")" when expecting one of the
following:
<an identifier> <a double-quoted delimited-identifier>
current
SQL> This means that you posted some different code that you actually use,... how do you expect help if you don't show us what you have? -
PLS-00306: wrong number or types of arguments in call to 'P_MAIN' ORA-06550
I have 2 environments: a development environment and a production environment. Both have the same package.
Calling the package from APEX in the production environment it gives a error:PLS-00306: wrong number or types of arguments in call to 'P_MAIN' ORA-06550.but the data is stille be saved.
But calling the package in development environment nothing happened.
What can be the problem???
regards,
ekasThat's not what he asked: is it possible that a package with the same name exists in another schema on the production server - also is it possible that an synonym for the package exists in the production server which doesn't exist in the development? =>All synonym that exist in the production database also exist in the developmenst database.
Also, you haven't provided details of how you performed these tests to establish that one works where the other doesn't. Are you testing the package within the context of an apex application or have you isolated any test case to the PL/SQL code only - could you run a test of the package within something like SQL*Plus (or your favourite IDE)? Are you feeding in identical test data? Indeed, do you have a unit test script which you can run on both development and production?
=> I have test the package in the content of a apex application, and the data in the production enviroment is not the same as in the developement enviroment due to real data in production. -
I have written the following anonymous block. It has a cursor "cur_total_tckt" which select 6 columns. A nested table "total_tckt_colcn" is declared of type "cur_total_tckt". In the dbms_output.put_line I want to print each element of my collection. It is giving me the following error :
PLS-00306: wrong number or types of arguments in call to 'PUT_LINE'
ORA-06550: line 29, column 2:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
I want to print all the 6 columns of an element for 366 such elements.
DECLARE
CURSOR cur_total_tckt
is
select t.ticket_id ticket_id, t.created_date created_date, t.created_by created_by, t.ticket_status ticket_status,
t.last_changed last_changed, h.created_date closed_date
from n01.cc_ticket_info t
inner join n01.cc_ticket_status_history h
on (t.ticket_id = h.ticket_id)
where t.last_changed >= '6/28/2012 17:28:59' and t.last_changed < (sysdate + interval '1' day);
type total_tckt_colcn
is
TABLE OF cur_total_tckt%rowtype;
total_tckt_col total_tckt_colcn;
total_coach_col total_tckt_colcn;
begin
total_tckt_col := total_tckt_colcn ();
total_coach_col := total_tckt_colcn ();
OPEN cur_total_tckt;
loop
fetch cur_total_tckt bulk collect into total_tckt_col limit 100;
dbms_output.put_line(total_tckt_col.last);
FOR i IN total_tckt_col.first..total_tckt_col.last
loop
-- dbms_output.put_line(total_tckt_col(i).ticket_id); -- this line works
dbms_output.put_line(total_tckt_col(i)); -- this line gives error
END LOOP;
exit
WHEN (cur_total_tckt%NOTFOUND);
END LOOP ;
CLOSE cur_total_tckt;
end;No, it wont allow to display two values ,
Other wise we can do ,to display two values by giving separately DBMS_output as shown below.it wont give u ia single row , it will give in row by row.
DECLARE
CURSOR cur_total_tckt
IS
SELECT empno, ename FROM emp;
TYPE total_tckt_colcn IS TABLE OF cur_total_tckt%ROWTYPE;
total_tckt_col total_tckt_colcn;
total_coach_col total_tckt_colcn;
BEGIN
total_tckt_col := total_tckt_colcn ();
total_coach_col := total_tckt_colcn ();
OPEN cur_total_tckt;
LOOP
FETCH cur_total_tckt BULK COLLECT INTO total_tckt_col LIMIT 100;
DBMS_OUTPUT.put_line (total_tckt_col.LAST);
FOR i IN total_tckt_col.FIRST .. total_tckt_col.LAST
LOOP
DBMS_OUTPUT.put_line (total_tckt_col (i).empno);
DBMS_OUTPUT.put_line (total_tckt_col (i).ename);
END LOOP;
EXIT WHEN (cur_total_tckt%NOTFOUND);
END LOOP;
CLOSE cur_total_tckt;
END;
Out put:
12
1236
kenny
2
jhon
1
menies
3
sony
4
endy
5
dennies
1
wolks
2
flora
3
teady
4
furry
5
kune
6
zoel
Cheers! -
PLS-00306: wrong number or types of arguments in call to 'FND_REQUEST$SUBMI
I am trying to submit the payables open interface import program using BPEL process. BUT I am unable to submit the concurrent program. The invoke function is failing with below message.
[2010/08/25 17:06:22] Faulted while invoking operation "OFAPOPIIMPORT" on provider "OFAPOPIIMPORT".less
-<messages>
-<input>
-<Invoke_1_OFAPOPIIMPORT_InputVariable>
-<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="InputParameters">
-<InputParameters xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/XX_BPEL_FND_REQUEST_SUBMIT_REQ/FND_REQUEST-24SUBMIT_REQUEST/" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/XX_BPEL_FND_REQUEST_SUBMIT_REQ/FND_REQUEST-24SUBMIT_REQUEST/">
<db:APPLICATION>200</db:APPLICATION>
<db:PROGRAM>APXIIMPT</db:PROGRAM>
<db:DESCRIPTION>Test</db:DESCRIPTION>
<db:START_TIME/><db:SUB_REQUEST/>
<db:OperatingUnit>NYSIF</db:OperatingUnit>
<db:Source>DBL</db:Source>
<db:Group/>
<db:BatchName>TESTRAMBPEL1</db:BatchName>
<db:HoldName/>
<db:HoldReason/>
<db:GLDate/>
<db:Purge>N</db:Purge>
<db:TraceSwitch>N</db:TraceSwitch>
<db:DebugSwitch>N</db:DebugSwitch>
<db:SummarizeReport>N</db:SummarizeReport>
<db:CommitBatchSize>1000</db:CommitBatchSize>
<db:UserID>4842</db:UserID>
<db:LoginID>1683090</db:LoginID>
</InputParameters>
</part>
</Invoke_1_OFAPOPIIMPORT_InputVariable>
</input>
-<fault>
-<remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
-<part name="code">
<code>6550
</code>
</part>
-<part name="summary">
<summary>
file:/C:/product/10.1.3.1/OraBPEL_1/bpel/domains/default/tmp/.bpel_APOPIIMPORT_1.0_91d4c6c1050ed25d005bc0d396a9db24.tmp/OFAPOPIIMPORT.wsdl [ OFAPOPIIMPORT_ptt::OFAPOPIIMPORT(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'OFAPOPIIMPORT' failed due to: Error while trying to prepare and execute an API.
An error occurred while preparing and executing the APPS.XX_BPEL_FND_REQUEST_SUBMIT_REQ.FND_REQUEST$SUBMIT_REQUEST API. Cause: java.sql.SQLException: ORA-06550: line 1, column 13:
PLS-00306: wrong number or types of arguments in call to 'FND_REQUEST$SUBMIT_REQUEST'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
[Caused by: ORA-06550: line 1, column 13:
PLS-00306: wrong number or types of arguments in call to 'FND_REQUEST$SUBMIT_REQUEST'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
; nested exception is:
ORABPEL-11811
Error while trying to prepare and execute an API.
An error occurred while preparing and executing the APPS.XX_BPEL_FND_REQUEST_SUBMIT_REQ.FND_REQUEST$SUBMIT_REQUEST API. Cause: java.sql.SQLException: ORA-06550: line 1, column 13:
PLS-00306: wrong number or types of arguments in call to 'FND_REQUEST$SUBMIT_REQUEST'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
[Caused by: ORA-06550: line 1, column 13:
PLS-00306: wrong number or types of arguments in call to 'FND_REQUEST$SUBMIT_REQUEST'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Check to ensure that the API is defined in the database and that the parameters match the signature of the API. Contact oracle support if error is not fixable.
</summary>
</part>
-<part name="detail">
<detail>
Internal Exception: java.sql.SQLException: ORA-06550: line 1, column 13:
PLS-00306: wrong number or types of arguments in call to 'FND_REQUEST$SUBMIT_REQUEST'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Error Code: 6550
</detail>
</part>
</remoteFault>
</fault>
</messages>
[2010/08/25 17:06:22] "{http://schemas.oracle.com/bpel/extension}remoteFault" has been thrown. More...
-<remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
-<part name="code">
<code>6550
</code>
</part>
-<part name="summary">
<summary>
file:/C:/product/10.1.3.1/OraBPEL_1/bpel/domains/default/tmp/.bpel_APOPIIMPORT_1.0_91d4c6c1050ed25d005bc0d396a9db24.tmp/OFAPOPIIMPORT.wsdl [ OFAPOPIIMPORT_ptt::OFAPOPIIMPORT(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'OFAPOPIIMPORT' failed due to: Error while trying to prepare and execute an API.
An error occurred while preparing and executing the APPS.XX_BPEL_FND_REQUEST_SUBMIT_REQ.FND_REQUEST$SUBMIT_REQUEST API. Cause: java.sql.SQLException: ORA-06550: line 1, column 13:
PLS-00306: wrong number or types of arguments in call to 'FND_REQUEST$SUBMIT_REQUEST'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
[Caused by: ORA-06550: line 1, column 13:
PLS-00306: wrong number or types of arguments in call to 'FND_REQUEST$SUBMIT_REQUEST'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
; nested exception is:
ORABPEL-11811
Error while trying to prepare and execute an API.
An error occurred while preparing and executing the APPS.XX_BPEL_FND_REQUEST_SUBMIT_REQ.FND_REQUEST$SUBMIT_REQUEST API. Cause: java.sql.SQLException: ORA-06550: line 1, column 13:
PLS-00306: wrong number or types of arguments in call to 'FND_REQUEST$SUBMIT_REQUEST'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
[Caused by: ORA-06550: line 1, column 13:
PLS-00306: wrong number or types of arguments in call to 'FND_REQUEST$SUBMIT_REQUEST'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Check to ensure that the API is defined in the database and that the parameters match the signature of the API. Contact oracle support if error is not fixable.
</summary>
</part>
-<part name="detail">
<detail>
Internal Exception: java.sql.SQLException: ORA-06550: line 1, column 13:
PLS-00306: wrong number or types of arguments in call to 'FND_REQUEST$SUBMIT_REQUEST'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Error Code: 6550
</detail>
</part>
</remoteFault>
I thought I am providing the values for the required parameters. But still I am unable to submit. Could some one help me on fixing this issue?
Thanks,That's probably your problem.
Look at http://download-west.oracle.com/docs/cd/B31017_01/integrate.1013/b28351/T430238T430241.htm
Search for "One-time Workaround for Concurrent Programs" in that document. -
Pl. help debug - PLS-00306: wrong number or types of arguments in call
Hi,
I am trying to create a wrapper function to all a procedure in Oracle EBusiness Suite 11i.
When I compile the following code
==========
CREATE OR REPLACE PROCEDURE gme.KIL_ProcessAlloc IS
vFileName VARCHAR2(30) := '1006251.csv';
vLoc VARCHAR2(20) := '/u041/applmgr/opm/opmappl/utllog';
v_InHandle utl_file.file_type;
vNewLine VARCHAR2(1000);
vLineNo PLS_INTEGER;
c1 PLS_INTEGER;
c2 PLS_INTEGER;
c3 PLS_INTEGER;
c4 PLS_INTEGER;
c5 PLS_INTEGER;
c6 PLS_INTEGER;
c7 PLS_INTEGER;
c8 PLS_INTEGER;
c9 PLS_INTEGER;
c10 PLS_INTEGER;
c11 PLS_INTEGER;
c12 PLS_INTEGER;
c13 PLS_INTEGER;
c14 PLS_INTEGER;
c15 PLS_INTEGER;
c16 PLS_INTEGER;
c17 PLS_INTEGER;
c18 PLS_INTEGER;
c19 PLS_INTEGER;
c20 PLS_INTEGER;
c21 PLS_INTEGER;
c22 PLS_INTEGER;
c23 PLS_INTEGER;
c24 PLS_INTEGER;
c25 PLS_INTEGER;
c26 PLS_INTEGER;
c27 PLS_INTEGER;
c28 PLS_INTEGER;
c29 PLS_INTEGER;
c30 PLS_INTEGER;
c31 PLS_INTEGER;
c32 PLS_INTEGER;
c33 PLS_INTEGER;
c34 PLS_INTEGER;
TYPE AllocArray IS TABLE OF GME_INVENTORY_TXNS_GTMP%ROWTYPE
INDEX BY BINARY_INTEGER;
l_Allocdata AllocArray;
TYPE MtlDetailArray IS TABLE OF gme_material_details%ROWTYPE
INDEX BY BINARY_INTEGER;
l_MtlDetaildata MtlDetailArray;
TYPE xTranArray IS TABLE OF GME_INVENTORY_TXNS_GTMP%ROWTYPE
INDEX BY BINARY_INTEGER;
l_xtrandata xTranArray;
TYPE defTranArray IS TABLE OF GME_INVENTORY_TXNS_GTMP%ROWTYPE
INDEX BY BINARY_INTEGER;
l_deftrandata defTranArray;
t_messagecount number;
t_messagelist varchar2(10000);
t_returnstatus varchar2(1);
BEGIN
v_InHandle := utl_file.fopen(vLoc, vFileName, 'r');
vLineNo := 1;
LOOP
BEGIN
utl_file.get_line(v_InHandle, vNewLine);
EXCEPTION
WHEN NO_DATA_FOUND THEN
EXIT;
END;
vNewLine := TRANSLATE(vNewLine, 'A''', 'A');
c1 := INSTR(vNewLine, ',', 1,1);
c2 := INSTR(vNewLine, ',', 1,2);
c3 := INSTR(vNewLine, ',', 1,3);
c4 := INSTR(vNewLine, ',', 1,4);
c5 := INSTR(vNewLine, ',', 1,5);
c6 := INSTR(vNewLine, ',', 1,6);
c7 := INSTR(vNewLine, ',', 1,7);
c8 := INSTR(vNewLine, ',', 1,8);
c9 := INSTR(vNewLine, ',', 1,9);
c10 := INSTR(vNewLine, ',', 1,10);
c11 := INSTR(vNewLine, ',', 1,11);
c12 := INSTR(vNewLine, ',', 1,12);
c13 := INSTR(vNewLine, ',', 1,13);
c14 := INSTR(vNewLine, ',', 1,14);
c15 := INSTR(vNewLine, ',', 1,15);
c16 := INSTR(vNewLine, ',', 1,16);
c17 := INSTR(vNewLine, ',', 1,17);
c18 := INSTR(vNewLine, ',', 1,18);
c19 := INSTR(vNewLine, ',', 1,19);
c20 := INSTR(vNewLine, ',', 1,20);
c21 := INSTR(vNewLine, ',', 1,21);
c22 := INSTR(vNewLine, ',', 1,22);
c23 := INSTR(vNewLine, ',', 1,23);
c24 := INSTR(vNewLine, ',', 1,24);
c25 := INSTR(vNewLine, ',', 1,25);
c26 := INSTR(vNewLine, ',', 1,26);
c27 := INSTR(vNewLine, ',', 1,27);
c28 := INSTR(vNewLine, ',', 1,28);
c29 := INSTR(vNewLine, ',', 1,29);
c30 := INSTR(vNewLine, ',', 1,30);
c31 := INSTR(vNewLine, ',', 1,31);
c32 := INSTR(vNewLine, ',', 1,32);
c33 := INSTR(vNewLine, ',', 1,33);
c34 := INSTR(vNewLine, ',', 1,34);
-- l_allocdata(vLineNo).sourceno := SUBSTR(vNewLine,1,c1-1);
-- l_allocdata(vLineNo).sizeno := SUBSTR(vNewLine,c1+1,c2-c1-1);
-- l_allocdata(vLineNo).status := SUBSTR(vNewLine,c2+1,c3-c2-1);
-- l_allocdata(vLineNo).latitude := SUBSTR(vNewLine,c3+1,c4-c3-1);
-- l_allocdata(vLineNo).longitude := SUBSTR(vNewLine,c4+1,c5-c4-1);
-- l_allocdata(vLineNo).testfor := SUBSTR(vNewLine,c5+1);
l_allocdata(vLineNo).trans_id := SUBSTR(vNewLine,1,c1-1);
l_allocdata(vLineNo).item_id := SUBSTR(vNewLine,c1+1,c2-c1-1);
l_allocdata(vLineNo).co_code := SUBSTR(vNewLine,c2+1,c3-c2-1);
l_allocdata(vLineNo).orgn_code := SUBSTR(vNewLine,c3+1,c4-c3-1);
l_allocdata(vLineNo).whse_code := SUBSTR(vNewLine,c4+1,c5-c4-1);
l_allocdata(vLineNo).lot_id := SUBSTR(vNewLine,c5+1,c6-c5-1);
l_allocdata(vLineNo).location := SUBSTR(vNewLine,c6+1,c7-c6-1);
l_allocdata(vLineNo).doc_id := SUBSTR(vNewLine,c7+1,c8-c7-1);
l_allocdata(vLineNo).doc_type := SUBSTR(vNewLine,c8+1,c9-c8-1);
l_allocdata(vLineNo).doc_line := SUBSTR(vNewLine,c9+1,c10-c9-1);
l_allocdata(vLineNo).line_type := SUBSTR(vNewLine,c10+1,c11-c10-1);
l_allocdata(vLineNo).reason_code := SUBSTR(vNewLine,c11+1,c12-c11-1);
l_allocdata(vLineNo).trans_date := SUBSTR(vNewLine,c12+1,c13-c12-1);
l_allocdata(vLineNo).trans_qty := SUBSTR(vNewLine,c13+1,c14-c13-1);
l_allocdata(vLineNo).trans_qty2 := SUBSTR(vNewLine,c14+1,c15-c14-1);
l_allocdata(vLineNo).qc_grade := SUBSTR(vNewLine,c15+1,c16-c15-1);
l_allocdata(vLineNo).lot_status := SUBSTR(vNewLine,c16+1,c17-c16-1);
l_allocdata(vLineNo).trans_stat := SUBSTR(vNewLine,c17+1,c18-c17-1);
l_allocdata(vLineNo).trans_um := SUBSTR(vNewLine,c18+1,c19-c18-1);
l_allocdata(vLineNo).trans_um2 := SUBSTR(vNewLine,c19+1,c20-c19-1);
l_allocdata(vLineNo).completed_ind := SUBSTR(vNewLine,c20+1,c21-c20-1);
l_allocdata(vLineNo).staged_ind := SUBSTR(vNewLine,c21+1,c22-c21-1);
l_allocdata(vLineNo).gl_posted_ind := SUBSTR(vNewLine,c22+1,c23-c22-1);
l_allocdata(vLineNo).event_id := SUBSTR(vNewLine,c23+1,c24-c23-1);
l_allocdata(vLineNo).text_code := SUBSTR(vNewLine,c24+1,c25-c24-1);
l_allocdata(vLineNo).transaction_no := SUBSTR(vNewLine,c25+1,c26-c25-1);
l_allocdata(vLineNo).action_code := SUBSTR(vNewLine,c26+1,c27-c26-1);
l_allocdata(vLineNo).material_detail_id := SUBSTR(vNewLine,c27+1,c28-c27-1);
l_allocdata(vLineNo).organization_id := SUBSTR(vNewLine,c28+1,c29-c28-1);
l_allocdata(vLineNo).locator_id := SUBSTR(vNewLine,c29+1,c30-c29-1);
l_allocdata(vLineNo).subinventory := SUBSTR(vNewLine,c30+1,c31-c30-1);
l_allocdata(vLineNo).alloc_um := SUBSTR(vNewLine,c31+1,c32-c31-1);
l_allocdata(vLineNo).alloc_qty := SUBSTR(vNewLine,c32+1,c33-c32-1);
l_allocdata(vLineNo).def_trans_ind := SUBSTR(vNewLine,c33+1,c34-c33-1);
vLineNo := vLineNo+1;
END LOOP;
utl_file.fclose(v_InHandle);
FOR i IN 1..vLineNo-1 loop
GME_API_PUB.insert_line_allocation (
1,
100,
FALSE,
True,
l_allocdata(i),
null,
null,
false,
false,
false,
l_MtlDetailData,
l_xtrandata,
l_deftrandata,
t_messagecount,
t_messagelist,
t_returnstatus);
end loop;
IF (t_returnstatus <> 'S') THEN
for i IN 1 .. t_messagecount LOOP
dbms_output.put_line('The text is '||FND_MSG_PUB.get(i,t_messagelist));
END LOOP;
END IF;
-- COMMIT;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END KIL_ProcessAlloc;
===============
I get this
Warning: Procedure created with compilation errors.
SQL> sho err
Errors for PROCEDURE GME.KIL_PROCESSALLOC:
LINE/COL ERROR
145/8 PLS-00306: wrong number or types of arguments in call to
'INSERT_LINE_ALLOCATION'
145/8 PL/SQL: Statement ignored
=================
The package specs of GME_API_PU is under:
===============
PROCEDURE insert_line_allocation (
p_api_version IN NUMBER := gme_api_pub.api_version
,p_validation_level IN NUMBER := gme_api_pub.max_errors
,p_init_msg_list IN BOOLEAN := FALSE
,p_commit IN BOOLEAN := FALSE
,p_tran_row IN gme_inventory_txns_gtmp%ROWTYPE
,p_lot_no IN VARCHAR2 DEFAULT NULL
,p_sublot_no IN VARCHAR2 DEFAULT NULL
,p_create_lot IN BOOLEAN DEFAULT FALSE
,p_ignore_shortage IN BOOLEAN DEFAULT FALSE
,p_scale_phantom IN BOOLEAN DEFAULT FALSE
,x_material_detail OUT gme_material_details%ROWTYPE
,x_tran_row OUT gme_inventory_txns_gtmp%ROWTYPE
,x_def_tran_row OUT gme_inventory_txns_gtmp%ROWTYPE
,x_message_count OUT NUMBER
,x_message_list OUT VARCHAR2
,x_return_status OUT VARCHAR2);
GME_API_PUB.insert_line_allocation
===========
What am I doing wrong...why am I getting PLS-00306.
Can someone help?
Thank you
Sundar
[email protected]Hi John,
Thanks a ton - a nice Christmas gift. Thank you for being a Santa :-).
I used the same subscript as the one used for in parameter and the procedure compiled without errors.
A corollary: If (any of the) Out parameter is null (all columns of the row/array), will the array row element still be stored ? May be I cross the bridge when I come to it.
Merry Christmas.
Sundar -
PLS-00306: wrong number or types of arguments in call in a for loop
Dear all
I recently put up another post about the same error message but as the message now relates to another part of my programme and, in my mind at least, a different conceptual idea, I thought I should start a new top. If that is not right thing to have done then please let me know. I am working in 10.2.
I am trying to pass through multiple variables. When I run the code at the end of this question I get an error message:
PLS-00306: wrong number or types of arguments in call to 'CUR_MAP_LIST'This relates to the line:
FOR var_map_list IN cur_map_list (par_map_list (n))I think the reason the error message comes up is because par_map_list is a associate array / PL/SQL table and cur_map_list is based on %rowtype. Although I could be wrong. However I am not sure what I should be doing so that I don't get such an error message.
I was reading through page 623 on Web Development 9i (by Brown; pub. McGrew-Hill) and pages 357-358 of Oracle Web Application Programming for PL/SQL Developers (by Boardman, Caffrey, Morse, Rosenzweig; pub. Prentice Hall), in order to try and write my code. As well as Oracle's Application Developer’s Guide - Fundamentals (Release 2), page 11-6. In particular the Web Development book uses the following:
create or replace procedure query_department
(in_dept_no owa_util.ident_arr)
is
cursor dept_cursor (nbt_dept_no emp.deptno%TYPE) is
select empno, ename, mgr, sal, comm
from scott.emp
where deptno = nbt_dept_no;
begin
for x in 1 .. in_dept_no.count loop
for dept_rec in dept_cursor(in_dept_no (x)) loop
end loop;
end loop;
end;In that example the cursor selects empno, ename, mgr, sal and comm from emp. So if it is doing that the cursor must be of a VARCHAR2 and NUMBER data type. What I don't understand is the for dept_rec in part. For a start I am not sure where dept_rec comes from? If it is a NUMBER data type, how can the in_dept_no, which is a owa_util.ident_arr associate array / PL/SQL data type work with it. Unfortunately because the example is incomplete and doesn't include procedures relating to the in variables, I am unable to run it and try and learn from what it is doing, so that I can try and relate the concept to my own work.
My programme is as follows. There may be other errors in the code not relating to this error. If so I hope to find these and resolve them once I understand what I should be doing here:
--Global variables--
gvar_mapviewer_host VARCHAR2(56) := 'http://tiger.iso.port.ac.uk:7785/mapviewer/omserver';
gvar_proc_host VARCHAR2(56) := 'http://tiger.iso.port.ac.uk:7785/www/geg50160';
gvar_xml_request VARCHAR2(100) :='?xml_request=<?xml version="1.0" standalone="yes"?>';
--Main calling programming--
PROCEDURE MAPS AS
empty owa_util.ident_arr;
var_xml_theme VARCHAR2(32767);
BEGIN
PROCMAPLIST (empty, var_xml_theme);
END maps;
--create checkboxes--
PROCEDURE PROCCHECKLIST
(par_check_list IN OUT owa_util.ident_arr,
par_xml_theme OUT VARCHAR2
AS
CURSOR cur_map_list IS
SELECT MT.map_title
MI.map_id
OMSN.map_sheet_number_id
WRMF.web_raster_map_id
FROM MAP_TITLE MT
MAP_INFO MI
MAP_SHEET_NUMBER OMSN,
WEB_RASTER_MAP_FILE WRMF,
WHERE MI.map_title_id = MT.map_title_id
AND MI.map_id = OMSN.map_id
AND WRMF.map_id = MI.map_id
AND WRMF.map_sheet_number_id = OMSN.map_sheet_number_id;
var_map_list cur_map_list%ROWTYPE;
var_xml_theme VARCHAR2(32767);
BEGIN
htp.htmlOpen;
htp.headOpen;
htp.headClose;
htp.bodyOpen;
htp.print('<FORM METHOD = "post"
ACTION = "'||gvar_proc_host||'.mappackage.procdisplay">');
htp.print('<FIELDSET>
<LEGEND> Select the maps you wish to display </LEGEND>');
FOR n IN 1 .. par_map_list.COUNT
LOOP
FOR var_map_list IN cur_map_list (par_map_list (n))
LOOP
htp.print(' <UL>
<LI>
<LABEL FOR = "WRMF'||
var_map_list.web_raster_map_id||'">
<INPUT type = "checkbox"
id = "WRMFB'||
var_map_list.web_raster_map_id||'"
name = "WRMFB'||
var_map_list.web_raster_map_id||'"
value = "'||var_map_list.web_raster_map_id||'"
/>
Map title: '|| var_map_list.map_title||'<BR>
Sheet number: '||var_map_list.map_sheet_number||'');
htp.print('</LABEL>
</LI>
</UL>');
END LOOP;
END LOOP;
htp.print('</FIELDSET>');
htp.print('<p>
<INPUT TYPE = "submit"
NAME = "Display selected maps"
VALUE = "Display selected maps" />
</FORM>');
htp.bodyClose;
END PROCCHECKLIST;Thank you for reading. Kind regards
TimDear everyone
I have now resolved the problems I was having with multiple values and checkboxes, thanks to comments in this thread, read large chucks of Oracle PL/SQL Programming by Steve Feuerstein and suddenly realising where I am going wrong in terms of thinking.
For a start, I when I was dealing with the multiple values, I was trying to get PL/SQL to pass them out. Of course this is done by the action part of the input form. Although I have not done much web coding, I did know about this. However because I was so engrossed in trying to understand how multiple values work, I didn't relate the two ideas. I even mind mapping the problem and still didn't get it.
I also did not think to change my the action from post command to get, so that I could see what was coming out. However that would not have made too much of a difference because the other problem I had was related to where sub programmes were declared. The function which received the values was privately declared, and not in the package spec. This meant the web browser could not find the function as that can only make use of the programmes declared publicly.
Once I made these changes, as well as correcting other minor typing mistakes, the values passed through as expected. The only other mistake I made was to include the name option after the submit input type. In my case I did not need to submit the value of that button. The revised code is as follows. In this version I replaced the function with a procedure that simply prints the checkbox values to screen. I have also made the input form action get, instead of post, so that the values can be seen in the web browser address bar:
create or replace
PACKAGE MAPSITE AS
PROCEDURE MAPS;
PROCEDURE PROCCHECKLIST
(par_check_list IN OUT OWA_UTIL.IDENT_ARR
PROCEDURE PROCDISPLAY
(maplist IN OUT OWA_UTIL.IDENT_ARR);
END MAPSITE;
create or replace
PACKAGE BODY MAPSITE AS
--Global variables--
gvar_mapviewer_host VARCHAR2(56) := 'http://tiger.iso.port.ac.uk:7785/mapviewer/omserver';
gvar_proc_host VARCHAR2(56) := 'http://tiger.iso.port.ac.uk:7785/www/geg50160';
gvar_xml_request VARCHAR2(100) :='?xml_request=<?xml version="1.0" standalone="yes"?>';
--Main calling programming--
PROCEDURE MAPS AS
empty owa_util.ident_arr;
BEGIN
PROCCHECKLIST (empty);
END MAPS;
--create checkboxes--
PROCEDURE PROCCHECKLIST
(par_check_list IN OUT owa_util.ident_arr
AS
CURSOR cur_map_list IS
SELECT MT.map_title,
MI.map_id,
OMSN.map_sheet_number_id,
WRMF.web_raster_map_id
FROM MAP_TITLE MT,
MAP_INFO MI,
MAP_SHEET_NUMBER OMSN,
WEB_RASTER_MAP_FILE WRMF
WHERE MI.map_title_id = MT.map_title_id
AND MI.map_id = OMSN.map_id
AND WRMF.map_id = MI.map_id
AND WRMF.map_sheet_number_id = OMSN.map_sheet_number_id;
BEGIN
htp.htmlOpen;
htp.headOpen;
htp.headClose;
htp.bodyOpen;
htp.print('<FORM METHOD = "post"
ACTION = "'||gvar_proc_host||'.mappackage.procdisplay">');
htp.print('<FIELDSET>
<LEGEND> Select the maps you wish to display </LEGEND>');
FOR var_map_list IN cur_map_list
LOOP
htp.print(' <UL>
<LI>
<LABEL FOR = "WRMF'||
var_map_list.web_raster_map_id||'">
<INPUT type = "checkbox"
id = "WRMFB'||
var_map_list.web_raster_map_id||'"
name = "maplist"
CHECKED = "' ||
par_map_list ||'"
value = "'||var_map_list.web_raster_map_id||'"
/>
Map title: '|| var_map_list.map_title||'<BR>
Sheet number: '||var_map_list.map_sheet_number||'');
htp.print('</LABEL>
</LI>
</UL>');
END LOOP;
htp.print('</FIELDSET>');
htp.print('<p>
<INPUT TYPE = "submit"
VALUE = "Display selected maps" />
</FORM>');
htp.bodyClose;
END PROCCHECKLIST;
---PROCDISPLAY PROCEDURE---
PROCEDURE PROCDISPLAY (maplist IN OUT owa_util.ident_arr)
IS
BEGIN
FOR n IN 1..maplist.COUNT
LOOP
htp.print('Checkbox value i.e. var_map_list.web_raster_map_id is: ' ||maplist(n)||'
<P>');
END LOOP;
END PROCDISPLAY;
END MAPSITE;Kind regards
Tim -
PLS-00306 wrong number or types of arguments in call to 'PUT_LINE'
Hi Guys,
I'm practising the plsql workouts,during a anonymous PL/SQL block i got the below error,what the mistake i did ?
declare
v1 employee_290512%rowtype;
cursor c1 is select * from employee_290512;
begin
open c1;
loop
fetch c1 into v1;
exit when c1% notfound;
dbms_output.put_line(v1);
end loop;
end;
{/code}
And i got the below error
Error:
ORA-06550: line 10, column 1:
PLS-00306: wrong number or types of arguments in call to 'PUT_LINE'
ORA-06550: line 10, column 1:
PL/SQL: Statement ignored
/Error.
Please help me on this.
Regards
ThelakHi there,
i got the same error. kindly check what's wrong with my below coding;
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
2 TYPE Type_Tab_Data IS RECORD
3 (
4 ARMZIG_Q2SFX char(3),
5 somme number(20,2),
6 ARMZIG_Q2AN8 number(8),
7 ARMZIG_Q2DOC number(8),
8 ARMZIG_Q2DCT char(2),
9 ARMZIG_Q2CO varchar2(15 char)
10 );
11 TYPE Tab_Data IS TABLE OF Type_Tab_Data INDEX BY BINARY_INTEGER ;
12 t_flexnum5 Tab_Data;
13 v_test pls_integer;
14 v_text_erreur varchar2(200 char);
15 BEGIN
16 SELECT b.ARMZIG_Q2SFX,a.somme,a.ARMZIG_Q2AN8,a.ARMZIG_Q2DOC,a.ARMZIG_Q2DCT,a.ARMZIG_Q2CO
17 BULK COLLECT INTO t_flexnum5
18 from
19 (
20 SELECT sum(ARMZIG_Q2AAP/100)as somme,ARMZIG_Q2AN8,ARMZIG_Q2DOC,ARMZIG_Q2DCT,ARMZIG_Q2CO
21 from ARMAST_ZIG_EUR
22 where ENVZIG_ID = 'E'
23 group by ARMZIG_Q2AN8,ARMZIG_Q2DOC,ARMZIG_Q2DCT,ARMZIG_Q2CO
24 ) a, ARMAST_ZIG_EUR b
25 where a.ARMZIG_Q2AN8 = b.ARMZIG_Q2AN8
26 and a.ARMZIG_Q2DOC = b.ARMZIG_Q2DOC
27 and a.ARMZIG_Q2DCT = b.ARMZIG_Q2DCT
28 and a.ARMZIG_Q2CO = b.ARMZIG_Q2CO
29 and b.ENVZIG_ID = 'E';
30
31 DBMS_OUTPUT.put_line(t_flexnum5);
32
33 END;
34 /
DBMS_OUTPUT.put_line(t_flexnum5);
ERROR at line 31:
ORA-06550: line 31, column 7:
PLS-00306: wrong number or types of arguments in call to 'PUT_LINE'
ORA-06550: line 31, column 7:
PL/SQL: Statement ignored -
PLS-00306: wrong number or types of arguments in call to 'SHOW'
Statement : declare
rc__ number;
begin
owa.init_cgi_env(:n__,:nm__,:v__);
htp.HTBUF_LEN := 255;
null;
null;
wwv_flow.show(p_request=>:p_request,p_instance=>:p_instance,p_flow_id=>:p_flow_id,p_flow_step_id=>:p_flow_step_id,p_arg_names=>:p_arg_names,p_arg_values=>:p_arg_values);
if (wpg_docload.is_file_download) then
rc__ := 1;
wpg_docload.get_download_file(:doc_info);
null;
null;
commit;
else
rc__ := 0;
null;
null;
commit;
owa.get_page(:data__,:ndata__);
end if;
:rc__ := rc__;
end;
Did someone ever see this ?
My database throws it every time i use an ajax validation with javascript. The application is NOT affected in any way, means the validation is done correct:
function validate(pNumber,i){
var get = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=validate_number',100);
get.add('F500_VALID_NUMBER', pNumber);
gReturn = get.get();
html_GetElement('err'+i).innerHTML=gReturn;
The validate_number Application Process then uses a Stored Function for the "real" validation.
Thanks for help,
JochenJochen,
yes when you trace modplsql, I can see this and I also have an error I don't know why.
<360294694 ms>(wppr.c,497) Pl/sql block parsed...
<360294694 ms>(wpdenv.c,1531) CGI Environment has 31 vars. Max name len 128, Max Value Len 128
<360294694 ms> PLSQL_GATEWAY(14)=(6)WebDb
<360294694 ms> GATEWAY_IVERSION(17)=(2)2
<360294694 ms> SERVER_SOFTWARE(16)=(60)Oracle-Application-Server-10g/10.1.2.2.0 Oracle-HTTP-Server
<360294694 ms> GATEWAY_INTERFACE(18)=(8)CGI/1.1
<360294694 ms> SERVER_PORT(12)=(5)7779
<360294694 ms> SERVER_NAME(12)=(10)net-srv05
<360294694 ms> REQUEST_METHOD(15)=(5)POST
<360294694 ms> PATH_INFO(10)=(15)/wwv_flow.show
<360294694 ms> SCRIPT_NAME(12)=(10)/pls/apex
<360294694 ms> REMOTE_ADDR(12)=(14)172.20.100.77
<360294694 ms> SERVER_PROTOCOL(16)=(9)HTTP/1.1
<360294694 ms> REQUEST_PROTOCOL(17)=(5)HTTP
<360294694 ms> REMOTE_USER(12)=(17)APEX_PUBLIC_USER
<360294694 ms> HTTP_CONTENT_LENGTH(20)=(4)149
<360294694 ms> HTTP_CONTENT_TYPE(18)=(34)application/x-www-form-urlencoded
<360294694 ms> HTTP_USER_AGENT(16)=(51)Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
<360294694 ms> HTTP_HOST(10)=(11)172.18.2.5
<360294694 ms> HTTP_ACCEPT(12)=(4)*/*
<360294694 ms> HTTP_ACCEPT_LANGUAGE(21)=(18)en-us,ar-lb;q=0.5
<360294694 ms> HTTP_COOKIE(12)=(105)LOGIN_USERNAME_COOKIE=usr1234; WWV_CUSTOM-F_941322186522444_101=725E6950E8DF04E5; oracle.uix=0^^GMT+2:00
<360294694 ms> HTTP_REFERER(13)=(53)http://172.18.2.5/pls/apex/f?p=101:1:950664913516045
<360294694 ms> HTTP_ORACLE_ECID(17)=(14)89781163291,1
<360294694 ms> HTTP_ORACLE_CACHE_VERSION(26)=(7)10.1.2
<360294694 ms> WEB_AUTHENT_PREFIX(19)=(1)
<360294694 ms> DAD_NAME(9)=(5)apex
<360294694 ms> DOC_ACCESS_PATH(16)=(5)docs
<360294694 ms> DOCUMENT_TABLE(15)=(23)wwv_flow_file_objects$
<360294694 ms> PATH_ALIAS(11)=(1)
<360294694 ms> REQUEST_CHARSET(16)=(9)AL32UTF8
<360294694 ms> REQUEST_IANA_CHARSET(21)=(6)UTF-8
<360294694 ms> SCRIPT_PREFIX(14)=(5)/pls
<360294694 ms>StrArrPosBind pos 2 Charset Id : 873
<360294694 ms>StrArrPosBind pos 3 Charset Id : 873
<360294694 ms>StrArrPosBind pos 11 Charset Id : 873
<360294704 ms>Execute: ORA-06550: line 33, column 3:
PLS-00306: wrong number or types of arguments in call to 'SHOW'
ORA-06550: line 33, column 3:
PLS-00306: wrong number or types of arguments in call to 'SHOW'
ORA-06550: line 33, column 3:
PL/SQL: Statement ignored
apex team comments are highly appreciated.
one more thing I can see for each ajax request I have in my page a hard parse is happening .
Omar -
PLS-00306: wrong number or types of arguments in call
Hi,
Oracle9i
created a procedure which will retrieve the records.
As the procedure is to only retrieve the records so it does not have any IN parameters
But on executing the procedure gets the below error:
PLS-00306: wrong number or types of arguments in call to 'GET_PRODUCT_DETAILS'
I have called the procedure as below:
=======================
Declare
v_cur ...%type;
BEGIN
Package_name.GET_PRODUCT_DETAILS(v_cur);
END;
Procedure Body
==========
create or replace PROCEDURE GET_PRODUCT_DETAILS( v_cur OUT Cursor)
is
begin
end;
/Try creating the procedure with the out parameter as sys_refcursor.
create or replace PROCEDURE GET_PRODUCT_DETAILS( v_cur OUT sys_refCursor)
And declare the variable in your outer block also as sys_refcursor.
Declare
v_cur sys_refcursor;
BEGIN
Package_name.GET_PRODUCT_DETAILS(v_cur);
END;
Of course this would require that your actual procedure GET_PRODUCT_DETAILS should have a statement like
" open V_cur for some select statement that you use to retrieve the records".
You could also create GET_PRODUCT_DETAILS with the same %type decalration which you use in the outer block
eg
create or replace PROCEDURE GET_PRODUCT_DETAILS( v_cur OUT x.y%type)
Declare
v_cur x.y%type;
BEGIN
Package_name.GET_PRODUCT_DETAILS(v_cur);
END;
/ -
ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments
I am getting an error:
"ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'XYZ' ORA-06550: line 1, column 7: PL/SQL: Statement ignored".
Stored Procedure:
PROCEDURE XYZ
(ip_number IN NUMBER,
op_error_code OUT NUMBER,
op_error_text OUT VARCHAR2,
ret_cursor OUT OUT_CURSOR);
In the procedure I am selecting a details from few tables with respect to the input parameter 'ip_number'.
VB Code:
strConnectionString = CONNECTION_STRING
Set objConnection = Server.CreateObject("ADODB.Connection")
objConnection.Open strConnectionString
Set objCommand = Server.CreateObject("ADODB.Command")
With objCommand
.ActiveConnection = objConnection
.CommandType = adCmdStoredProc
End With
With objCommand
.CommandText = "Pkg_1.XYZ"
.Parameters.Append objCommand.CreateParameter_
("ip_ipnumber",adNumeric,adParamInput,8,strIPNumber)
.Parameters.Append objCommand.CreateParameter_
("op_error_code",adNumeric,adParamOutput,10)
.Parameters.Append objCommand.CreateParameter_
("op_error_text",adVarChar,adParamOutput,512)
Set RS = .Execute()
End With
Its working fine with ASP(VB)+ Oracle9i + Windows2000.
But in ASP(VB) + Oracle 8.1.7 + Windows2000, its giving this error:
"ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'XYZ' ORA-06550: line 1, column 7: PL/SQL: Statement ignored".
Please help.Your procedure has 4 parameters 1 in and 3 out parameter
whereas in your VB code
Parameters.Append objCommand.CreateParameter_
("ip_ipnumber",adNumeric,adParamInput,8,strIPNumber)
.Parameters.Append objCommand.CreateParameter_
("op_error_code",adNumeric,adParamOutput,10)
.Parameters.Append objCommand.CreateParameter_
("op_error_text",adVarChar,adParamOutput,512)
There are only 3 parameter added where is the 4 th one ?
With Warm Regards
SSR -
Encounter PLS-00306: wrong number or types of arguments issue
I came across a issue of PLS-00306: wrong number or types of arguments when I tried to call a stored procedure through Toplink ValueReadquery.
The full error message is:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'FREEZE_REGISTERS'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Error Code: 6550
Call:BEGIN FREEZE_REGISTERS(REGISTRATION_DETAIL_in=>1951, RESERVE_USER_in=>'aUser', RESERVE_BUSINESS_CHANNEL_in=>0, RESERVE_TOKEN_in=>1, RESERVE_DATE_in=>{ts '2007-08-03 10:49:25.39'}, BUSINESS_FUNC_ID_in=>1, UPDATE_COUNT_out=>?); END;
bind => [=> UPDATE_COUNT_out]
Query:ValueReadQuery() ..............
The SP was compiled successfully:
create or replace
Procedure FREEZE_REGISTERS
REGISTRATION_DETAIL_ID_in in NUMBER,
RESERVE_USER_in in VARCHAR2,
RESERVE_BUSINESS_CHANNEL_in in NUMBER,
RESERVE_TOKEN_in in NUMBER,
RESERVE_DATE_in in TIMESTAMP,
BUSINESS_FUNC_ID_in in NUMBER,
UPDATE_COUNT_out OUT NUMBER
IS
BEGIN
UPDATE REGISTER
SET BUSINESS_FUNC_ID = BUSINESS_FUNC_ID_in,
RESERVE_BUSINESS_CHANNEL = RESERVE_BUSINESS_CHANNEL_in,
RESERVE_USER = RESERVE_USER_in,
VERSION_NO = (VERSION_NO + 1),
RESERVE_DATE = RESERVE_DATE_in,
RESERVE_TOKEN = RESERVE_TOKEN_in
WHERE
GEOGRAPHIC_ID in
(SELECT GEOGRAPHIC_ID
FROM LEGAL_INT_TRANS
WHERE REGISTRATION_DETAIL_ID = REGISTRATION_DETAIL_ID_in);
--Assign the number of rows returned to UPDATE_COUNT_out
UPDATE_COUNT_out := SQL%ROWCOUNT;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
END;
However, when I tried to call it in the toplink, I always got that error message. I'd compared the dataType for input values and they are compatible with the arguments defined in the SP.
I have no any clue for this problem. Please help.How are you set the parameters/adding arguments to the ValueReadQuery, can you post the code used to create and execute the query?
Regards,
Chris
Maybe you are looking for
-
Trouble with IIF statement in SSRS report builder
hi.... I have an expression field that isn't working. They are Dynamics GP tables, and I am trying to show converted currencies: =IIF (Fields!Currency.Value=RTrim("Z-US$"), Fields!ORCPTCOST.Value , Fields!ORCPTCOST.Value / CDEC(Fields!ExchangeRate.V
-
Error starting the 9iAS installer on Windows 2000 on P4 laptop
I am having problem running 9iAS Installer on my P4 Laptop. any solution?
-
Reload Adobe Photoshop cs from crashed XP computer to new windows 8 computer.
How do I load an Adobe Photoshop cs that was originally installed on an old PC which crashed ? The old PC had XP and the new computer has windows 8.
-
How Crystal represents currency
Crystal Reports XI When you tell crystal to convert number to Currency, is the result represented as a floating point number? I'm trying to figure out if I have to worry about rounding error when taking the sum of a field formula that has a value lik
-
Long delay for playback after moving a clip in timeline in Premiere CS6
Whenever I move a clip in the timeline I have to wait a really long time for the image to show up in the preview monitor after pressing play. Audio starts ok but I see a black screen for a long time (varies from aprox. 2 to 30 seconds). This is a bit