Ik heb een package tvl_pck_Shadow waarin ik volgende procedures en functies heb:
Wanneer ik deze package probeer te compileren, krijg ik volgende foutmelding:
PLS-00306: wrong number or types of arguments in call to 'ReplaceCharInString'
Wanneer ik het zonder argumenten compileer (en ook een aanroep zonder argumenten), dan compileert hij wel. Van wanneer ik 1 argument gebruik (dus bv alleen v_temp), dan compileert hij niet meer.
Aan de functie ReplaceCharInString is ook niets mis, als ik de code hierin in commentaar zet, compileert hij ook niet.
Dit alles draait op Oracle 8.1.7.
Hebben jullie een gedacht waaraan dit kan liggen?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| CREATE OR REPLACE PACKAGE BODY tvl_pck_shadow
AS
parse_error EXCEPTION;
PRAGMA EXCEPTION_INIT( parse_error, -20100 );
FUNCTION MLColumnSetString
( p_tablename IN VARCHAR2, p_colinfo IN VARCHAR2, p_objectid IN NUMBER )
RETURN VARCHAR2
IS
v_String VARCHAR2(5000) := '';
v_temp VARCHAR2(32000);
BEGIN
v_String := 'x = ''' ;
v_temp := 'Dit is een voorbeeld';
v_String := v_String || ReplaceCharInString( v_temp, '''', '''''' ) ;
v_String := v_String || '''';
RETURN v_String;
END MLColumnSetString;
FUNCTION ReplaceCharInString
( p_String IN VARCHAR2, p_srchString IN VARCHAR2, p_replaceString IN VARCHAR2 )
RETURN VARCHAR2
IS
v_numerOfLoops NUMBER;
v_returnValue VARCHAR2(32000);
v_tempString varchar2(255);
BEGIN
v_numerOfLoops := MOD(LENGTH(p_String),250);
FOR i in 0..v_numerOfLoops LOOP
v_tempString := substr(p_String, 250 * i, 250 * (i + 1));
v_returnValue := replace( v_tempString, p_srchString, p_replaceString);
END LOOP;
RETURN v_returnValue;
END ReplaceCharInString; |
Wanneer ik deze package probeer te compileren, krijg ik volgende foutmelding:
PLS-00306: wrong number or types of arguments in call to 'ReplaceCharInString'
Wanneer ik het zonder argumenten compileer (en ook een aanroep zonder argumenten), dan compileert hij wel. Van wanneer ik 1 argument gebruik (dus bv alleen v_temp), dan compileert hij niet meer.
Aan de functie ReplaceCharInString is ook niets mis, als ik de code hierin in commentaar zet, compileert hij ook niet.
Dit alles draait op Oracle 8.1.7.
Hebben jullie een gedacht waaraan dit kan liggen?
[ Voor 5% gewijzigd door TrendKiller op 13-01-2004 11:18 ]