Понадобилась мне агрегатная функция XOR. Начал писать и столкнулся вот с такой странностью
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> drop FUNCTION Xor;
drop FUNCTION Xor
*
ERROR at line 1:
ORA-04043: object XOR does not exist
SQL> select xor('zz') from dual;
select xor('zz') from dual
*
ERROR at line 1:
ORA-00904: "XOR": invalid identifier
SQL> CREATE FUNCTION Xor (inp VARCHAR2) RETURN VARCHAR2 as begin return inp||'qq'; end;
2 /
Function created.
SQL> select xor('zz') from dual;
select xor('zz') from dual
*
ERROR at line 1:
ORA-06552: PL/SQL: Statement ignored
ORA-06553: PLS-306: wrong number or types of arguments in call to 'XOR'
SQL> CREATE FUNCTION Xor_xor (inp VARCHAR2) RETURN VARCHAR2 as begin return inp||'qq'; end;
2 /
Function created.
SQL> select xor_xor('zz') from dual;
XOR_XOR('ZZ')
--------------------------------------------------------------------------------
zzqq
SQL>
Т.е. oracle позволяет мне назвать функцию как угодно но не XOR. Если называю XOR начинает ругаться не под делу. Или я чего-то не правильно делаю?