The following lines contain the word 'select', 'insert', 'update' or 'delete':
SELECT
ID,
OBJECT_VERSION_NUMBER,
NAME,
VERSION,
FROM_DATE,
NVL(TO_DATE, G_MISS_DATE) TO_DATE,
NVL(DESCRIPTION, G_MISS_CHAR) DESCRIPTION,
APP_DEBIT_CCID,
APP_CREDIT_CCID,
REV_DEBIT_CCID,
REV_CREDIT_CCID,
NVL(ATTRIBUTE_CATEGORY,G_MISS_CHAR) ATTRIBUTE_CATEGORY,
NVL(ATTRIBUTE1,G_MISS_CHAR) ATTRIBUTE1,
NVL(ATTRIBUTE2,G_MISS_CHAR) ATTRIBUTE2,
NVL(ATTRIBUTE3,G_MISS_CHAR) ATTRIBUTE3,
NVL(ATTRIBUTE4,G_MISS_CHAR) ATTRIBUTE4,
NVL(ATTRIBUTE5,G_MISS_CHAR) ATTRIBUTE5,
NVL(ATTRIBUTE6,G_MISS_CHAR) ATTRIBUTE6,
NVL(ATTRIBUTE7,G_MISS_CHAR) ATTRIBUTE7,
NVL(ATTRIBUTE8,G_MISS_CHAR) ATTRIBUTE8,
NVL(ATTRIBUTE9,G_MISS_CHAR) ATTRIBUTE9,
NVL(ATTRIBUTE10,G_MISS_CHAR) ATTRIBUTE10,
NVL(ATTRIBUTE11,G_MISS_CHAR) ATTRIBUTE11,
NVL(ATTRIBUTE12,G_MISS_CHAR) ATTRIBUTE12,
NVL(ATTRIBUTE13,G_MISS_CHAR) ATTRIBUTE13,
NVL(ATTRIBUTE14,G_MISS_CHAR) ATTRIBUTE14,
NVL(ATTRIBUTE15,G_MISS_CHAR) ATTRIBUTE15,
CREATED_BY,
LAST_UPDATED_BY,
CREATION_DATE,
LAST_UPDATE_DATE,
NVL(LAST_UPDATE_LOGIN,G_MISS_NUM) LAST_UPDATE_LOGIN
FROM OKL_PROVISIONS
WHERE id = p_id;
l_pvnv_rec.LAST_UPDATED_BY,
l_pvnv_rec.CREATION_DATE,
l_pvnv_rec.LAST_UPDATE_DATE,
l_pvnv_rec.LAST_UPDATE_LOGIN;
/* Scenario 2: The Changed Field-Values include that needs Validation and Update
but does not require a new vresion to be created
*/
-- 1) Only End_Date is Changed
ELSIF (p_upd_pvnv_rec.from_date = G_MISS_DATE AND
(p_upd_pvnv_rec.to_date <> G_MISS_DATE OR
-- IS NULL Condition has been added in case end_date was updated to NULL
p_upd_pvnv_rec.to_date IS NULL ) AND
p_upd_pvnv_rec.app_debit_ccid = G_MISS_NUM AND
p_upd_pvnv_rec.app_credit_ccid = G_MISS_NUM AND
p_upd_pvnv_rec.rev_debit_ccid = G_MISS_NUM AND
p_upd_pvnv_rec.rev_credit_ccid = G_MISS_NUM) OR
-- 2) Critical Attributes are Changed but Start_Date is Today or Future
(p_upd_pvnv_rec.from_date = G_MISS_DATE AND
p_db_pvnv_rec.from_date >= p_date AND
(p_upd_pvnv_rec.app_debit_ccid <> G_MISS_NUM OR
p_upd_pvnv_rec.app_credit_ccid <> G_MISS_NUM OR
p_upd_pvnv_rec.rev_debit_ccid <> G_MISS_NUM OR
p_upd_pvnv_rec.rev_credit_ccid <> G_MISS_NUM)) OR
-- 3) Start_Date is Changed , but in Future
(p_upd_pvnv_rec.from_date <> G_MISS_DATE AND
p_db_pvnv_rec.from_date > p_date AND
p_upd_pvnv_rec.from_date >= p_date) THEN
l_action := '2';
PROCEDURE check_updates (p_pvnv_rec IN pvnv_rec_type,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_data OUT NOCOPY VARCHAR2
) IS
l_pvnv_rec pvnv_rec_type;
END check_updates;
/* public api to insert provision type */
OKL_PROVISIONS_PUB.INSERT_PROVISIONS(p_api_version => l_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => l_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pvnv_rec => l_pvnv_rec,
x_pvnv_rec => x_pvnv_rec);
PROCEDURE update_provisions(p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_pvnv_rec IN pvnv_rec_type,
x_pvnv_rec OUT NOCOPY pvnv_rec_type
) IS
l_api_version CONSTANT NUMBER := 1;
l_api_name CONSTANT VARCHAR2(30) := 'update_provisions';
/* public api to update provisions*/
OKL_PROVISIONS_PUB.UPDATE_PROVISIONS(p_api_version => l_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => l_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pvnv_rec => l_upd_pvnv_rec,
x_pvnv_rec => x_pvnv_rec);
/* Scenario 2: The Changed Field-Values include that needs Validation and Update */
ELSIF l_action = '2' THEN
/* create a temporary record with all relevant details from db and upd records */
l_pvnv_rec := p_pvnv_rec;
check_updates(p_pvnv_rec => l_pvnv_rec,
x_return_status => l_return_status,
x_msg_data => x_msg_data);
/* public api to update provisions */
OKL_PROVISIONS_PUB.UPDATE_PROVISIONS(p_api_version => l_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => l_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pvnv_rec => l_upd_pvnv_rec,
x_pvnv_rec => x_pvnv_rec);
/* call verify changes to update the database */
IF l_oldversion_enddate > l_db_pvnv_rec.to_date THEN
check_updates(p_pvnv_rec => l_pvnv_rec,
x_return_status => l_return_status,
x_msg_data => x_msg_data);
/* public api to update provisions */
OKL_PROVISIONS_PUB.UPDATE_PROVISIONS(p_api_version => l_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => l_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pvnv_rec => l_pvnv_rec,
x_pvnv_rec => x_pvnv_rec);
/* call verify changes to update the database */
/* call verify changes to update the database */
IF l_pvnv_rec.from_date > l_db_pvnv_rec.to_date THEN
check_updates(p_pvnv_rec => l_pvnv_rec,
x_return_status => l_return_status,
x_msg_data => x_msg_data);
/* public api to insert provisions */
OKL_PROVISIONS_PUB.INSERT_PROVISIONS(p_api_version => l_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => l_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pvnv_rec => l_pvnv_rec,
x_pvnv_rec => x_pvnv_rec);
END update_provisions;
OKL_PROVISIONS_PUB.INSERT_PROVISIONS(p_api_version => l_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => x_return_Status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pvnv_tbl => p_pvnv_tbl,
x_pvnv_tbl => x_pvnv_tbl);
PROCEDURE update_provisions(
p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_pvnv_tbl IN pvnv_tbl_type,
x_pvnv_tbl OUT NOCOPY pvnv_tbl_type)
IS
l_api_version NUMBER := 1.0;
OKL_PROVISIONS_PUB.UPDATE_PROVISIONS(p_api_version => l_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => x_return_Status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pvnv_tbl => p_pvnv_tbl,
x_pvnv_tbl => x_pvnv_tbl);
END update_provisions;
PROCEDURE delete_provisions(
p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_pvnv_rec IN pvnv_rec_type)
IS
l_api_version NUMBER := 1.0;
OKL_PROVISIONS_PUB.DELETE_PROVISIONS(p_api_version => l_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => x_return_Status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pvnv_rec => p_pvnv_rec);
END delete_provisions;
PROCEDURE delete_provisions(
p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_pvnv_tbl IN pvnv_tbl_type)
IS
l_api_version NUMBER := 1.0;
OKL_PROVISIONS_PUB.DELETE_PROVISIONS(p_api_version => l_api_version,
p_init_msg_list => p_init_msg_list,
x_return_status => x_return_Status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_pvnv_tbl => p_pvnv_tbl);
END delete_provisions;