2017-02-22 8 views
0

у меня есть следующий код для таблицы значений функции в оракула 12с на Windows8 как следующтаблица синтаксиса функции значение ошибки

CREATE TABLE MisJob 
    (ID RAW(16), 
JobTitle VARCHAR2(35 BYTE), 
MinSalary NUMBER(6,0), 
MaxSalary NUMBER(6,0), 
    PRIMARY KEY (ID) 
) 


CREATE TYPE MISJOBType AS OBJECT (JobTitle VARCHAR2(35 BYTE), MinSalary NUMBER(6,0),MaxSalary NUMBER(6,0)); 

CREATE TYPE MISJOBTypeCol AS TABLE OF MISJOBType; 

CREATE OR REPLACE FUNCTION fEmployee (jobid IN RAW(16)) 
RETURN MISJOBTypeCol PIPELINED IS 
BEGIN 
    FOR i IN (SELECT * FROM MisJob)LOOP 
    PIPE ROW(MISJOBType(i.JobTitle, i.MinSalary,i.MaxSalary)); 
    END LOOP; 
    RETURN; 
END;  

, но я получаю сообщение об ошибке ошибка (2,13): PLS-00103: Обнаружен символ «(« при ожидании одного из следующего:: =.), Символ @% по умолчанию Символ «: =» был заменен на «(« продолжить ».

и я не знаю, почему, хотя я следовал этому примеру Table-Valued Functions in ORACLE 11g ? (parameterized views)

что неправильно

ответ

1

Снимите ограничение размера на формальный аргумент:

CREATE OR REPLACE FUNCTION fEmployee (jobid IN RAW) 
... 

From the documentation:

... вы не можете включить ограничение в официальном объявлении параметра

+0

благодарит за ваш ответ ссылкой на документацию –