Search code examples
sqloracle-databaseprocedureora-06550

SQL Oracle error ORA-06550,Encountered the symbol "SQLDEVBIND1Z_1"


I have this very simple procedure in Oracle 18c that compiles just fine

 CREATE OR REPLACE PROCEDURE quera_vcelar
(v_cislo_ula IN INFORMACIE_ULOV.cislo_ula%TYPE,
v_meno        OUT VARCHAR2,
v_bydlisko    OUT UDAJE_VCELAROV.bydlisko%TYPE)
IS
BEGIN
    SELECT meno || ' ' || priezvisko,bydlisko
        INTO v_meno,v_bydlisko
    FROM UDAJE_VCELAROV uv JOIN INFORMACIE_ULOV iu ON(uv.cislo_ula = iu.cislo_ula)
    WHERE iu.cislo_ula = v_cislo_ula;
END quera_vcelar;
/

But after I initialise the variables and try to run it

VARIABLE p_meno VARCHAR2(30)
VARIABLE p_bydlisko VARCHAR2(20)
EXECUTE quera_vcelar(10, :p_meno :p_bydlisko);
PRINT p_meno p_bydlisko;

I get this error

Error starting at line : 17 in command -
BEGIN quera_vcelar(10, :p_meno :p_bydlisko); END;
Error report -
ORA-06550: line 1, column 42:
PLS-00103: Encountered the symbol "SQLDEVBIND1Z_1" 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 "SQLDEVBIND1Z_1" to continue.
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:

I could not find any answer anywhere sadly.


Solution

  • I think there is just a comma missing in your procedure call.

    EXECUTE quera_vcelar(10, :p_meno  :p_bydlisko)  -- wrong
    EXECUTE quera_vcelar(10, :p_meno, :p_bydlisko)  -- correct
    

    It might well be that someone will close your question as it is only a typo. I hope it will stay open for a bit as I find the "SQLDEVBIND1Z_1" bit very spooky (as @Barbados has noticed as well). It seems to be a SQLcl feature to secure literals, but I need to read up more as I have never seen it before.