The following lines contain the word 'select', 'insert', 'update' or 'delete':
procedure INSERT_ROW (
p_MENU_NAME in VARCHAR2
,p_USER_MENU_NAME in VARCHAR2
,p_TYPE in VARCHAR2 := NULL
,p_DESCRIPTION in VARCHAR2 := NULL
,x_MENU_ID in OUT NOCOPY NUMBER
,x_return_status OUT NOCOPY VARCHAR2
,x_msg_count OUT NOCOPY NUMBER
,x_msg_data OUT NOCOPY VARCHAR2
) is
l_rowid VARCHAR2(30);
select menu_name, user_menu_name
into l_menu_name, l_user_menu_name
from fnd_menus_vl
where menu_name = p_menu_name
or user_menu_name = p_user_menu_name;
select FND_MENUS_S.NEXTVAL into l_new_menu_id from dual;
FND_MENUS_PKG.INSERT_ROW(
X_ROWID => l_ROWID,
X_MENU_ID => l_new_menu_id,
X_MENU_NAME => upper(p_MENU_NAME),
X_USER_MENU_NAME => p_USER_MENU_NAME,
X_MENU_TYPE => p_TYPE,
X_DESCRIPTION => p_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.user_id);
end INSERT_ROW;
procedure UPDATE_ROW (
p_MENU_ID in NUMBER
,p_USER_MENU_NAME in VARCHAR2 := BIS_COMMON_UTILS.G_DEF_CHAR
,p_DESCRIPTION in VARCHAR2 := BIS_COMMON_UTILS.G_DEF_CHAR
,x_return_status OUT NOCOPY VARCHAR2
,x_msg_count OUT NOCOPY NUMBER
,x_msg_data OUT NOCOPY VARCHAR2
) is
l_fnd_menu_rec Fnd_Menu_Rec_Type;
select menu_name,
type,
user_menu_name,
description
from fnd_menus_vl
where menu_id = p_MENU_ID;
select count(1)
into l_count
from fnd_menus_vl
where menu_id <> p_menu_id
and user_menu_name = p_user_menu_name;
FND_MENUS_PKG.UPDATE_ROW(
X_MENU_ID => p_MENU_ID,
X_MENU_NAME => l_fnd_menu_rec.menu_name,
X_USER_MENU_NAME => l_fnd_menu_rec.user_menu_name,
X_MENU_TYPE => l_fnd_menu_rec.type,
X_DESCRIPTION => l_fnd_menu_rec.description,
X_LAST_UPDATE_DATE => sysdate,
X_LAST_UPDATED_BY => fnd_global.user_id,
X_LAST_UPDATE_LOGIN => fnd_global.user_id
);
end UPDATE_ROW;
PROCEDURE VALIDATE_DELETE (
p_MENU_ID in VARCHAR2
,x_return_status OUT NOCOPY VARCHAR2
,x_msg_count OUT NOCOPY NUMBER
,x_msg_data OUT NOCOPY VARCHAR2
) IS
cursor cr_menu_usage is
select m.user_menu_name
from fnd_menus_vl m, fnd_menu_entries_vl me
where sub_menu_id = p_menu_id
and me.menu_id = m.menu_id;
select responsibility_name
from fnd_responsibility_vl
where menu_id = p_menu_id;
END VALIDATE_DELETE;
PROCEDURE DELETE_ROW (
p_MENU_ID in VARCHAR2
,x_return_status OUT NOCOPY VARCHAR2
,x_msg_count OUT NOCOPY NUMBER
,x_msg_data OUT NOCOPY VARCHAR2
) IS
l_menu_id number;
validate_delete(p_menu_id, x_return_status, x_msg_count, x_msg_data);
select menu_id into l_menu_id from fnd_menus where menu_id = p_menu_id for update of menu_id nowait;
FND_MENUS_PKG.DELETE_ROW(X_MENU_ID => p_MENU_ID);
FND_MESSAGE.SET_NAME('BIS','BIS_MENU_DELETED_ERROR');
END DELETE_ROW;
PROCEDURE DELETE_ROW_MENU_MENUENTRIES (
p_MENU_ID in VARCHAR2
,x_return_status OUT NOCOPY VARCHAR2
,x_msg_count OUT NOCOPY NUMBER
,x_msg_data OUT NOCOPY VARCHAR2
) IS
l_return_status VARCHAR2(40);
validate_delete(p_menu_id, x_return_status, x_msg_count, x_msg_data);
BIS_MENU_ENTRIES_PUB.DELETE_ROW (X_MENU_ID => p_MENU_ID,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data);
FND_MENUS_PKG.DELETE_ROW(X_MENU_ID => p_MENU_ID);
FND_MESSAGE.SET_NAME('BIS','BIS_MENU_DELETED_ERROR');
END DELETE_ROW_MENU_MENUENTRIES;
, p_last_update_date IN DATE
) IS
l_last_update_date date;
select last_update_date
from fnd_menus
where menu_id = p_menu_id
for update of menu_id nowait;
FETCH cMenu INTO l_last_update_date;
FND_MESSAGE.SET_NAME('BIS','BIS_MENU_DELETED_ERROR');
if p_last_update_date is not null then
if p_last_update_date <> l_last_update_date then
FND_MESSAGE.SET_NAME('BIS','BIS_MENU_CHANGED_ERROR');