Попробуйте это:
CREATE OR REPLACE
FUNCTION CATEGORYTEST(
n IN NUMBER
)
RETURN VARCHAR2
IS
catname VARCHAR2(200);
BEGIN
SELECT NAME AS PARENTCAT
INTO CATNAME
FROM CATEGORY_LANGUAGE
WHERE CATEGORY_ID = (SELECT PARENT_ID
FROM CATEGORY
WHERE ID = 'N'
AND CAT_TYPE_ID = 7
AND IS_ACTIVE = 1
AND IS_DELETED = 0)
AND IS_ACTIVE = 1
AND IS_DELETED = 0;
RETURN CATNAME;
end CATEGORYTEST;
Вам нужны одинарные кавычки вокруг строковых литералов, VARCHAR был изменен на VARCHAR2 и некоторые другие небольшие изменения.
Кстати, ваша переменная catname будет лучше объявлена как:
catname CATEGORY_LANGUAGE.NAME%TYPE;
Возможно, вы захотите взглянуть на тип возвращаемого значения функции, также гибко объявленной, например:
RETURN CATEGORY_LANGUAGE.NAME%TYPE
Надеюсь, это поможет ...