次のストアド プロシージャ コードは、Oracle 11G で実行される DEV および TEST 環境では機能しますが、10G PROD 環境では機能しません。
まず、VARCHAR2 の任意の配列を保持するために、Oracle で独自のデータ構造を作成しました。
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;
繰り返しになりますが、この同じコードは DEV および TEST 環境の 11G で機能し、10G 環境でコンパイルされますが、実行時に dbms_scheduler の 2 行目 (太字) で barf するように見えます。
dbms_scheduler は 10G で動作しますか? または、「sys.anydata.convertCollection(v_multiples_columns_to_add)」に問題がある可能性があります
エラーメッセージは次のとおりです。
ORA-22370: プロシージャの19行目からメソッドが正しく使用されていません。
19 行目は convertCollection() 呼び出しのある行です。
助けてください!