2013-09-04 1 views
2

Следующего код хранимой процедуры работа в наших DEV и тестирование, которые работают с Oracle 11G, но не будет работать в нашей 10G PROD среды:Oracle хранимая процедура - разница между 10g и 11g возможно?

первого, я создал свою собственную структуру данных в Oracle для хранения любого массива VARCHAR2:

create or replace 
type MAT_MULTIPLES_ARRAY as table of VARCHAR2(100); 

здесь код процедуры:

create or replace PROCEDURE MAT_SUBMIT_JOB (v_multiples_columns_to_add IN our_schema.MAT_MULTIPLES_ARRAY) 

    v_jobno number; 
    v_job_name VARCHAR2(100); 
    v_error_message VARCHAR2(32000); 

    begin 

    v_job_name := 'doesnt matter right now'; 

    dbms_scheduler.create_job(v_job_name,program_name=>'MAT_JOB_PROGRAM'); 
    dbms_scheduler.set_job_anydata_value(v_job_name,1,sys.anydata.convertCollection(v_multiples_columns_to_add)); 

    dbms_scheduler.enable(v_job_name); 

    end; 

снова, на этот же код работает в 11G в наших DEV и тестирования, и он собирает в нашей 10G среде, но это, кажется, бар f во время выполнения, на второй строке dbms_scheduler (выделено полужирным шрифтом).

Работает ли dbms_scheduler в 10G? Или, возможно, есть проблема с «sys.anydata.convertCollection (v_multiples_columns_to_add)»

Вот сообщение об ошибке:

ORA-22370: неправильное использование метода происходит от линии 19 в моей процедуре.

Строка 19 - это линия с вызовом convertCollection().

Пожалуйста, помогите!

+0

Это не будет компилироваться, или он не будет работать? Какое сообщение об ошибке вы получаете? ('barf' не является сообщением об ошибке, хотя, возможно, должно быть). –

+0

спасибо :) Я отредактирую вопрос. –

+0

(комментирует этот код) –

ответ

1

Я нашел это в документации:

http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_sched.htm#i1000820

SET_JOB_ANYDATA_VALUE требует, чтобы вы были владельцем работы или иметь привилегии ALTER на эту работу. Вы также можете установить значение аргумента задания, если у вас есть привилегия CREATE ANY JOB.

Это также может быть связано, а также: ANYDATA with Collections based on rowtype