DECLARE l_error_flag VARCHAR2(1); l_menu_rowid VARCHAR2(100); l_menu_entity_rowid VARCHAR2(100); l_menu_id NUMBER; l_cnt NUMBER := 0; c_new_menu_code CONSTANT VARCHAR2(50) := 'CUX_MDM_MENU_SYS_GROUP'; ----新的菜单简称 c_new_menu_name CONSTANT VARCHAR2(100) := 'CUX_MDM菜单_运维_集团'; --用户菜单名 c_copied_menu_code CONSTANT VARCHAR2(50) := 'CUX_MDM_MENU_SYS'; --被复制的菜单名 CURSOR csr_menu_entity IS SELECT DISTINCT fme.entry_sequence, fme.sub_menu_id, fme.function_id, fme.grant_flag, fmet.prompt, fmet.description FROM fnd_menu_entries fme, fnd_menu_entries_tl fmet, fnd_menus fm WHERE fme.menu_id = fm.menu_id AND fmet.menu_id = fm.menu_id AND fmet.entry_sequence = fme.entry_sequence AND fm.menu_name = c_copied_menu_code; BEGIN SELECT fnd_menus_s.nextval INTO l_menu_id FROM dual; l_error_flag := 'N'; fnd_menus_pkg.insert_row(x_rowid => l_menu_rowid, x_menu_id => l_menu_id, x_menu_name => c_new_menu_code, x_user_menu_name => c_new_menu_name, x_menu_type => NULL, x_description => NULL, x_creation_date => SYSDATE, x_created_by => fnd_global.user_id, x_last_update_date => SYSDATE, x_last_updated_by => fnd_global.user_id, x_last_update_login => fnd_global.login_id); IF l_menu_rowid IS NULL THEN dbms_output.put_line('error:' || SQLERRM); l_error_flag := 'Y'; ELSE FOR l_menu_entity_rec IN csr_menu_entity LOOP fnd_menu_entries_pkg.insert_row(x_rowid => l_menu_entity_rowid, x_menu_id => l_menu_id, x_entry_sequence => l_menu_entity_rec.entry_sequence, x_sub_menu_id => l_menu_entity_rec.sub_menu_id, x_function_id => l_menu_entity_rec.function_id, x_grant_flag => l_menu_entity_rec.grant_flag, x_prompt => l_menu_entity_rec.prompt, x_description => l_menu_entity_rec.description, x_creation_date => SYSDATE, x_created_by => fnd_global.user_id, x_last_update_date => SYSDATE, x_last_updated_by => fnd_global.user_id, x_last_update_login => fnd_global.login_id); IF l_menu_rowid IS NULL THEN dbms_output.put_line('error:' || SQLERRM); l_error_flag := 'Y'; ELSE l_cnt := l_cnt + 1; END IF; END LOOP; END IF; IF l_error_flag = 'N' AND l_cnt > 0 THEN dbms_output.put_line('提交编译请求:' || fnd_menu_entries_pkg.submit_compile); END IF; EXCEPTION WHEN OTHERS THEN dbms_output.put_line(SQLCODE || ',' || SQLERRM); END;