Oracle SQL Обновление с помощью курсора - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть вопрос о том, как использовать CURSOR для обновления имени домена электронной почты с помощью нового имени домена электронной почты. ex (gmail.com-> hotmail.com)

execute procedure('gmail.com','hotmail.com' )

Вот что я пишу. пожалуйста, помогите мне, спасибо!

create procedure PR_Q3
is P_NewEamil varchar2(50); P_Email_Address varchar2(50); exceptionforemail exception;
cursor E_info is select Email_Address from Broker where P_Email_Address = Email_Address
for update of Email_Address;
begin 
open E_info;
fetch E_info into P_NewEamil;
while E_info%found loop 
if(P_NewEamil like '%.com') then 
update Broker set Email_Address = P_NewEamil where P_Email_Address = Email_Address;

1 Ответ

2 голосов
/ 19 февраля 2020

Почему вы хотите использовать курсор, когда это можно сделать, используя простой оператор update, как указано ниже:

UPDATE BROKER
SET
    EMAIL_ADDRESS = REPLACE(P_NEWEAMIL, :OLD_DOMAIN, :NEW_DOMAIN)
WHERE
    REGEXP_LIKE ( P_NEWEAMIL,'.*@'|| :OLD_DOMAIN|| '$' );

Пожалуйста, добавьте больше WHERE условий в соответствии с вашими требованиями.

Ура !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...