The following lines contain the word 'select', 'insert', 'update' or 'delete':
P_LAST_UPDATED_BY IN NUMBER,
P_LAST_UPDATE_DATE IN DATE,
P_LAST_UPDATE_LOGIN IN NUMBER,
P_LOGICAL_OPERATOR IN VARCHAR2,
P_LEFT_PAREN IN VARCHAR2,
P_COMPARISON_OPERATOR IN VARCHAR2,
P_EXPRESSION IN VARCHAR2,
P_EXPR_TO_BLOCK_ID IN NUMBER,
P_RIGHT_PAREN IN VARCHAR2,
P_SEEDED_FLAG IN VARCHAR2,
X_CHK_RULES_Rec OUT NOCOPY CHK_RULES_Rec_Type
)
IS
BEGIN
X_CHK_RULES_rec.CHECK_ID := P_CHECK_ID;
X_CHK_RULES_rec.LAST_UPDATED_BY := P_LAST_UPDATED_BY;
X_CHK_RULES_rec.LAST_UPDATE_DATE := P_LAST_UPDATE_DATE;
X_CHK_RULES_rec.LAST_UPDATE_LOGIN := P_LAST_UPDATE_LOGIN;
P_LAST_UPDATED_BY IN NUMBER,
P_LAST_UPDATE_DATE IN DATE,
P_LAST_UPDATE_LOGIN IN NUMBER,
P_LOGICAL_OPERATOR IN VARCHAR2,
P_LEFT_PAREN IN VARCHAR2,
P_COMPARISON_OPERATOR IN VARCHAR2,
P_EXPRESSION IN VARCHAR2,
P_EXPR_TO_BLOCK_ID IN NUMBER,
P_RIGHT_PAREN IN VARCHAR2,
P_SEEDED_FLAG IN VARCHAR2,
X_OBJECT_VERSION_NUMBER OUT NOCOPY NUMBER,
X_Return_Status OUT NOCOPY VARCHAR2,
X_Msg_Count OUT NOCOPY NUMBER,
X_Msg_Data OUT NOCOPY VARCHAR2
)
IS
l_CHK_RULES_Rec CHK_RULES_Rec_Type;
P_LAST_UPDATED_BY => P_LAST_UPDATED_BY,
P_LAST_UPDATE_DATE => P_LAST_UPDATE_DATE,
P_LAST_UPDATE_LOGIN => P_LAST_UPDATE_LOGIN,
P_LOGICAL_OPERATOR => P_LOGICAL_OPERATOR,
P_LEFT_PAREN => P_LEFT_PAREN,
P_COMPARISON_OPERATOR => P_COMPARISON_OPERATOR,
P_EXPRESSION => P_EXPRESSION,
P_EXPR_TO_BLOCK_ID => P_EXPR_TO_BLOCK_ID,
P_RIGHT_PAREN => P_RIGHT_PAREN,
P_SEEDED_FLAG => P_SEEDED_FLAG,
X_CHK_RULES_Rec => l_CHK_RULES_Rec
);
CSC_PROFILE_CHECK_RULES_PKG.Insert_Row(
p_CHECK_ID => l_CHK_RULES_rec.CHECK_ID,
p_SEQUENCE => l_CHK_RULES_rec.SEQUENCE,
p_CREATED_BY => FND_GLOBAL.USER_ID,
p_CREATION_DATE => SYSDATE,
p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
p_LAST_UPDATE_DATE => SYSDATE,
p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
p_LOGICAL_OPERATOR => l_CHK_RULES_rec.LOGICAL_OPERATOR,
p_LEFT_PAREN => l_CHK_RULES_rec.LEFT_PAREN,
p_BLOCK_ID => l_CHK_RULES_rec.BLOCK_ID,
p_COMPARISON_OPERATOR => l_CHK_RULES_rec.COMPARISON_OPERATOR,
p_EXPRESSION => l_CHK_RULES_rec.EXPRESSION,
p_EXPR_TO_BLOCK_ID => l_CHK_RULES_rec.EXPR_TO_BLOCK_ID,
p_RIGHT_PAREN => l_CHK_RULES_rec.RIGHT_PAREN,
p_SEEDED_FLAG => l_CHK_RULES_rec.SEEDED_FLAG,
x_OBJECT_VERSION_NUMBER => X_OBJECT_VERSION_NUMBER);
PROCEDURE Update_profile_check_rules(
P_Api_Version_Number IN NUMBER,
P_Init_Msg_List IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
P_Commit IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
p_validation_level IN NUMBER := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
P_CHECK_ID IN NUMBER,
P_BLOCK_ID IN NUMBER,
P_SEQUENCE IN NUMBER,
P_CREATED_BY IN NUMBER,
P_CREATION_DATE IN DATE,
P_LAST_UPDATED_BY IN NUMBER,
P_LAST_UPDATE_DATE IN DATE,
P_LAST_UPDATE_LOGIN IN NUMBER,
P_LOGICAL_OPERATOR IN VARCHAR2,
P_LEFT_PAREN IN VARCHAR2,
P_COMPARISON_OPERATOR IN VARCHAR2,
P_EXPRESSION IN VARCHAR2,
P_EXPR_TO_BLOCK_ID IN NUMBER,
P_RIGHT_PAREN IN VARCHAR2,
P_SEEDED_FLAG IN VARCHAR2,
PX_OBJECT_VERSION_NUMBER IN OUT NOCOPY NUMBER,
X_Return_Status OUT NOCOPY VARCHAR2,
X_Msg_Count OUT NOCOPY NUMBER,
X_Msg_Data OUT NOCOPY VARCHAR2
)
IS
l_CHK_RULES_Rec CHK_RULES_Rec_Type;
P_LAST_UPDATED_BY => P_LAST_UPDATED_BY,
P_LAST_UPDATE_DATE => P_LAST_UPDATE_DATE,
P_LAST_UPDATE_LOGIN => P_LAST_UPDATE_LOGIN,
P_LOGICAL_OPERATOR => P_LOGICAL_OPERATOR,
P_LEFT_PAREN => P_LEFT_PAREN,
P_COMPARISON_OPERATOR => P_COMPARISON_OPERATOR,
P_EXPRESSION => P_EXPRESSION,
P_EXPR_TO_BLOCK_ID => P_EXPR_TO_BLOCK_ID,
P_RIGHT_PAREN => P_RIGHT_PAREN,
P_SEEDED_FLAG => P_SEEDED_FLAG,
X_CHK_RULES_Rec => l_CHK_RULES_Rec
);
Update_profile_check_rules(
P_Api_Version_Number => P_Api_Version_Number ,
P_Init_Msg_List => P_Init_Msg_List,
P_Commit => P_Commit,
p_validation_level => p_validation_level,
P_CHK_RULES_Rec => l_CHK_RULES_Rec,
PX_Object_Version_Number => PX_OBJECT_VERSION_NUMBER,
X_Return_Status => X_Return_Status,
X_Msg_Count => X_Msg_Count,
X_Msg_Data => X_Msg_Data
);
END Update_profile_check_rules;
PROCEDURE Update_profile_check_rules(
P_Api_Version_Number IN NUMBER,
P_Init_Msg_List IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
P_Commit IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
p_validation_level IN NUMBER := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
P_CHK_RULES_Rec IN CHK_RULES_Rec_Type := G_MISS_CHK_RULES_REC,
PX_OBJECT_VERSION_NUMBER IN OUT NOCOPY NUMBER,
X_Return_Status OUT NOCOPY VARCHAR2,
X_Msg_Count OUT NOCOPY NUMBER,
X_Msg_Data OUT NOCOPY VARCHAR2
)
IS
Cursor C_Get_profile_check_rules(c_CHECK_ID NUMBER,c_sequence NUMBER,c_object_version_number NUMBER) IS
Select rowid,
CHECK_ID,
SEQUENCE,
CREATED_BY,
CREATION_DATE,
LAST_UPDATED_BY,
LAST_UPDATE_DATE,
LAST_UPDATE_LOGIN,
LOGICAL_OPERATOR,
LEFT_PAREN,
BLOCK_ID,
COMPARISON_OPERATOR,
EXPRESSION,
EXPR_TO_BLOCK_ID,
RIGHT_PAREN
From CSC_PROF_CHECK_RULES_VL
Where check_id = c_check_id
and sequence = c_sequence
and object_version_number = c_object_version_number
For Update NOWAIT;
l_api_name CONSTANT VARCHAR2(30) := 'Update_profile_check_rules';
SAVEPOINT UPDATE_PROFILE_CHECK_RULES_PVT;
l_old_CHK_RULES_rec.LAST_UPDATED_BY,
l_old_CHK_RULES_rec.LAST_UPDATE_DATE,
l_old_CHK_RULES_rec.LAST_UPDATE_LOGIN,
l_old_CHK_RULES_rec.LOGICAL_OPERATOR,
l_old_CHK_RULES_rec.LEFT_PAREN,
l_old_CHK_RULES_rec.BLOCK_ID,
l_old_CHK_RULES_rec.COMPARISON_OPERATOR,
l_old_CHK_RULES_rec.EXPRESSION,
l_old_CHK_RULES_rec.EXPR_TO_BLOCK_ID,
l_old_CHK_RULES_rec.RIGHT_PAREN;
-- bug 1231208 -- > Validation mode should be UPDATE here
-- Invoke validation procedures
Validate_profile_check_rules(
p_api_name => l_api_name,
p_init_msg_list => CSC_CORE_UTILS_PVT.G_FALSE,
p_validation_level => p_validation_level,
--p_validation_mode => CSC_CORE_UTILS_PVT.G_CREATE,
p_validation_mode => CSC_CORE_UTILS_PVT.G_UPDATE,
P_CHK_RULES_Rec => p_CHK_RULES_Rec,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data);
CSC_PROFILE_CHECK_RULES_PKG.Update_Row(
p_CHECK_ID => csc_core_utils_pvt.get_g_miss_num(l_CHK_RULES_rec.CHECK_ID,l_old_CHK_RULES_rec.CHECK_ID),
p_SEQUENCE => csc_core_utils_pvt.get_g_miss_num(l_CHK_RULES_rec.SEQUENCE,l_old_CHK_RULES_rec.SEQUENCE),
p_LAST_UPDATED_BY => FND_GLOBAL.USER_ID,
p_LAST_UPDATE_DATE => SYSDATE,
p_LAST_UPDATE_LOGIN => FND_GLOBAL.CONC_LOGIN_ID,
p_LOGICAL_OPERATOR =>csc_core_utils_pvt.get_g_miss_char(l_CHK_RULES_rec.LOGICAL_OPERATOR,l_old_CHK_RULES_rec.LOGICAL_OPERATOR),
p_LEFT_PAREN => csc_core_utils_pvt.get_g_miss_char(l_CHK_RULES_rec.LEFT_PAREN,l_old_CHK_RULES_rec.LEFT_PAREN),
p_BLOCK_ID => csc_core_utils_pvt.get_g_miss_num(l_CHK_RULES_rec.BLOCK_ID,l_old_CHK_RULES_rec.BLOCK_ID),
p_COMPARISON_OPERATOR =>csc_core_utils_pvt.get_g_miss_char(l_CHK_RULES_rec.COMPARISON_OPERATOR,l_old_CHK_RULES_rec.COMPARISON_OPERATOR),
p_EXPRESSION => csc_core_utils_pvt.get_g_miss_char(l_CHK_RULES_rec.EXPRESSION,l_old_CHK_RULES_rec.EXPRESSION),
p_EXPR_TO_BLOCK_ID => csc_core_utils_pvt.get_g_miss_num(l_CHK_RULES_rec.EXPR_TO_BLOCK_ID,l_old_CHK_RULES_rec.EXPR_TO_BLOCK_ID),
p_RIGHT_PAREN => csc_core_utils_pvt.get_g_miss_char(l_CHK_RULES_rec.RIGHT_PAREN,l_old_CHK_RULES_rec.RIGHT_PAREN),
p_SEEDED_FLAG => csc_core_utils_pvt.get_g_miss_char(l_CHK_RULES_rec.SEEDED_FLAG,l_old_CHK_RULES_rec.SEEDED_FLAG),
px_OBJECT_VERSION_NUMBER => px_OBJECT_VERSION_NUMBER );
ROLLBACK TO Update_profile_check_rules_PVT;
ROLLBACK TO Update_profile_check_rules_PVT;
ROLLBACK TO Update_profile_check_rules_PVT;
End Update_profile_check_rules;
PROCEDURE Delete_profile_check_rules(
P_Api_Version_Number IN NUMBER,
P_Init_Msg_List IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
P_Commit IN VARCHAR2 := CSC_CORE_UTILS_PVT.G_FALSE,
p_validation_level IN NUMBER := CSC_CORE_UTILS_PVT.G_VALID_LEVEL_FULL,
P_CHECK_ID IN NUMBER,
p_SEQUENCE IN NUMBER,
p_OBJECT_VERSION_NUMBER IN NUMBER,
X_Return_Status OUT NOCOPY VARCHAR2,
X_Msg_Count OUT NOCOPY NUMBER,
X_Msg_Data OUT NOCOPY VARCHAR2
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'Delete_profile_check_rules';
SAVEPOINT DELETE_PROFILE_CHECK_RULES_PVT;
CSC_PROFILE_CHECK_RULES_PKG.Delete_Row(p_CHECK_ID => p_CHECK_ID,
p_SEQUENCE => p_SEQUENCE,
p_OBJECT_VERSION_NUMBER => p_OBJECT_VERSION_NUMBER );
ROLLBACK TO Delete_profile_check_rules_PVT;
ROLLBACK TO Delete_profile_check_rules_PVT;
ROLLBACK TO Delete_profile_check_rules_PVT;
End Delete_profile_check_rules;
Select NULL
From csc_prof_checks_b
where check_id = p_check_id;
ELSIF(p_validation_mode = CSC_CORE_UTILS_PVT.G_UPDATE)
THEN
-- Hint: Validate data
-- IF p_CHECK_ID <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
-- verify if data is valid
-- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
--** update not allowed
NULL;
Select NULL
From csc_prof_check_rules_b
Where check_id = p_Check_id
And sequence = p_sequence;
ELSIF(p_validation_mode = CSC_CORE_UTILS_PVT.G_UPDATE)
THEN
-- Hint: Validate data
-- IF p_SEQUENCE <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
-- verify if data is valid
-- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
--**cannot update sequence as part of pk
NULL;
Select NULL
From csc_prof_blocks_b
Where block_id = p_expr_to_block_id;
ELSIF(p_validation_mode = CSC_CORE_UTILS_PVT.G_UPDATE)
THEN
-- Hint: Validate data
-- IF p_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
-- verify if data is valid
-- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
Select NULL
From csc_prof_blocks_b
Where block_id = p_block_id;
ELSIF(p_validation_mode = CSC_CORE_UTILS_PVT.G_UPDATE)
THEN
-- Hint: Validate data
-- IF p_BLOCK_ID <> CSC_CORE_UTILS_PVT.G_MISS_CHAR
-- verify if data is valid
-- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
rule := 'SELECT 1 FROM dual WHERE';
'EXISTS (SELECT 1 FROM csc_prof_block_results_b WHERE block_id = ' ||
p_Chk_Rules_Tbl(i).block_id || ' AND customer_id = :customer_id' ||
' AND value ' || p_Chk_Rules_Tbl(i).comparison_operator;